Testeur ADSL
Répondre à la discussion
Affichage des résultats 1 à 8 sur 8

Testeur ADSL



  1. #1
    amdouni61

    Testeur ADSL


    ------

    Bonjour,
    Je suis entrain de rechercher une solution pour réaliser une carte électronique afin de pouvoir réaliser une testeur ADSL et je ne sais pas par ou je dois commencer si vous avez une idée merci de me guider un peut pour le départ.

    -----

  2. #2
    HAYAC

    Re : Testeur ADSL

    Bonjour amdouni61,
    Sans vouloir t’embêter, pourquoi réaliser une telle carte alors que c'est une fonction de base de tout routeur ou box x ?
    Autre que bien sur l’électronique pour l’électronique.
    Il y à même des routeurs type DLink, Zyxel, Cisco et bien d'autres qui donne des résultats plus fiable que les données télécoms.
    Cordialement,

  3. #3
    amdouni61

    Re : Testeur ADSL

    je veut réaliser un testeur qui me donne la valeur de synchronisation entre le modem de l'abonné et le DSLAM et cette valeur comme vous l'avez mentionné est plus fiable dans les routeur ... donc je veut lire cette valeur du modem dans mon testeur

  4. #4
    HAYAC

    Re : Testeur ADSL

    Soit,
    Sachant qu'avec, pour exemple un routeur zyxell, les valeurs d'atténuations entre le circuit modem et le circuit routeur sont inférieur à 1db, je ne vois toujours pas l’intérêt.
    Ceci dit, si tu veux réellement réaliser un tel montage, le principe est de ce baser sur la conception d'un modem ADSL2+ (connexion à 20Mbits) puis sur un processeur programmé pour effectuer les tests de trame via le circuit de modem, ce qui me fais revenir sur ma première remarque soit.
    Un routeur le fait très bien.
    Le tous sauf erreur de ma part (après 7 ans de DVI France télécom).
    Cordialement,

  5. A voir en vidéo sur Futura
  6. #5
    amdouni61

    Re : Testeur ADSL

    Voici mon cahier de charge pour que tu puisse comprendre l'interet de ce projet


    a) Origine du projet
    Le Groupe d’Intervention Local Multi-techniques Alsace Sud a pour mission, entre
    autres, de maintenir les équipements ADSL*, et est en charge du test de ceux-ci lors de mises
    en service ou de dérangements, qui sont en nombre toujours croissant, en corrélation directe
    avec l’augmentation de la demande du grand public et des professionnels.
    Ces tests, réalisés au niveau du répartiteur général, sont composés de deux parties
    essentielles :
    - La vérification de la présence de synchronisation au niveau du répartiteur, entre un
    modem de type abonné et un équipement du DSLAM* à tester, ce qui implique la
    présence d’alimentation, de tonalité, et de signal.
    - La vérification de la connexion au FAI*, de la vitesse de connexion (temps
    d’affichage de différentes pages de test, envoi de pièce jointe volumineuse, transfert
    FTP* de fichiers de tests de 100ko, 1Mo et 10Mo) et de l’absence de déconnexion
    intempestive.
    A l’issue de ces tests, si plusieurs équipements (modems au niveau du DSLAM) sur
    une même carte sont défectueux, le GILM procède à son remplacement dans les plus brefs
    délais. Mais attention, un paramètre n’a pas été pris en compte : l’abonné ne se situe pas
    forcément juste à côté du central téléphonique ! Ainsi, si un technicien a obtenu la
    synchronisation de son modem avec le DSLAM au niveau du répartiteur, il est possible qu’il
    ne l’aie pas à quelques dizaines de mètres du central. Et c’est bien là tout le problème : le
    technicien considère que le plot est bon au central, mais ne tient pas compte de
    l’affaiblissement introduit par la ligne qui va jusque chez l’abonné. Il est donc possible qu’un
    abonné situé loin du central ne puisse pas se synchroniser avec le DSLAM, alors qu’un test au
    répartiteur est réussi.
    Bien que les cartes modems des DSLAM soient réalisées en grandes séries, et que les
    composants y soient à la même température, il existe de grandes disparités en matière de
    synchronisation et de connexion d’un équipement à l’autre sur une même carte.
    C’est de cette constatation que je suis parti pour élaborer le sujet de mon projet de fin
    de DUT.
    b) Cahier des charges
    Réaliser un outil permettant de tester les plots ADSL (Asymmetric Digital Subscriber
    Line) signalés hors service en simulant une ligne téléphonique d’abonné et indiquer jusqu’à
    quel affaiblissement le modem de l’abonné se synchronise avec le DSLAM (Digital
    Subscriber Line Access Multiplexer).
    Le but de cette étude est donc de concevoir un appareil doté d’une ligne artificielle à
    affaiblissement variable qui teste la synchronisation entre un modem donné et l’équipement à
    tester pour différentes valeurs d’affaiblissement et de donner la valeur maximale, pour savoir
    si un plot ADSL peut être remis à la disposition d’un client.

  7. #6
    HAYAC

    Re : Testeur ADSL

    C'est effectivement beaucoup plus claire comme projet ,
    Mais là je ne vais pas t’être d'un grand secoure.
    Par simple curiosité, excuse moi si j'ai pas tout saisi, ou seront effectués les tests ? Chez l'abonné ou au répartiteur ?
    Cette question est simplement pour exclure toutes causes autres qu'électronique (Ex: installation filaire client vétuste, Raccordement clients défectueux, Présence des vieux condensateurs de test de boucle dans les prises...).
    Et dans quel sens ? vers le modem ou routeur de l'abonné ou vers les équipements du provideur ?
    En y réfléchissant d'avantage, les deux seraient utile !

  8. #7
    Tropique

    Re : Testeur ADSL

    Citation Envoyé par amdouni61 Voir le message
    Ainsi, si un technicien a obtenu la
    synchronisation de son modem avec le DSLAM au niveau du répartiteur, il est possible qu’il
    ne l’aie pas à quelques dizaines de mètres du central. Et c’est bien là tout le problème : le
    technicien considère que le plot est bon au central, mais ne tient pas compte de
    l’affaiblissement introduit par la ligne qui va jusque chez l’abonné. Il est donc possible qu’un
    abonné situé loin du central ne puisse pas se synchroniser avec le DSLAM, alors qu’un test au
    répartiteur est réussi.
    Je vois une quantité assez effrayante de problème potentiels, mais on va s’intéresser à ce qui est mentionné.
    C'est vrai qu'un test local ne sera généralement pas représentatif de la situation réelle, mais ce n'est pas (beaucoup) pour les raisons évoquées: dans de bonnes conditions, les modems DSL sont capables de synchroniser avec des atténuations (pures) hallucinantes: ce n'est pas là qu'est le problème.
    Ce qui cause réellement les problèmes est une dégradation du rapport S/N, et la présence de bruit impulsif.
    Le bruit provient en premier lieu des autres paires DSL sur le même câble (FEXT et NEXT), et des perturbateurs indépendants: station de radio AM, équipements de chauffage RF et autres. Si le signal désiré est atténué et que des perturbateurs sont présents, il y a un moment ou le rapport S/N va devenir trop faible. Si on ne simule que la composante "atténuation ligne", on aura des résultats complètement irréalistes
    Bien que les cartes modems des DSLAM soient réalisées en grandes séries, et que les
    composants y soient à la même température, il existe de grandes disparités en matière de
    synchronisation et de connexion d’un équipement à l’autre sur une même carte.
    C’est de cette constatation que je suis parti pour élaborer le sujet de mon projet de fin
    de DUT.
    Le hardware n'est pour rien dans le variations observées: sauf panne véritable, les canaux sont interchangeables dans une même carte, ou même dans deux cartes différentes mais de même niveau: il va y avoir des différences de port à port, parce que certaines paires sont plus exposées au crosstalk notamment, et il va y avoir des différences aléatoires selon le moment où le bruit survient pendant la procédure de handshaking: celle-ci est très complexe et comporte typiquement des centaines d'étapes sur différentes couches du protocole: il y aura inévitablement des différence de résultat même dans des conditions apparemment totalement identiques, une fois ça marche, une fois ça ne marche pas.
    b) Cahier des charges
    Réaliser un outil permettant de tester les plots ADSL (Asymmetric Digital Subscriber
    Line) signalés hors service en simulant une ligne téléphonique d’abonné et indiquer jusqu’à
    quel affaiblissement le modem de l’abonné se synchronise avec le DSLAM (Digital
    Subscriber Line Access Multiplexer).
    Le but de cette étude est donc de concevoir un appareil doté d’une ligne artificielle à
    affaiblissement variable qui teste la synchronisation entre un modem donné et l’équipement à
    tester pour différentes valeurs d’affaiblissement et de donner la valeur maximale, pour savoir
    si un plot ADSL peut être remis à la disposition d’un client.
    S'il s'agit de reproduire simplement les paramètres d'une ligne de longueur variable, ce n'est pas très compliqué, des dizaines de simulateurs de ligne présents sur le marché le font, et très bien, et de manière programmable à distance si on veut. Par contre, sans introduire de bruit, ça ne signifie pas grand chose: dans des conditions "calmes", une synchro doit être possible autour de -100dBm, mais introduire du bruit de manière aveugle ne sert pas à grand chose non plus, sachant que ce sera généralement la cause réelle des problèmes constatés.

    Quant à vraiment s'introduire au niveau des couches basses du protocole, c'est probablement irréaliste vu l'extrême complexité, et le fait que le hardware ne vient que de quelques fondeurs qui ne donnent leur datasheets qu'à des acteurs reconnus, sous NDA.
    Pas de complexes: je suis comme toi. Juste mieux.

  9. #8
    amdouni61

    Re : Testeur ADSL

    Bonsoir tous le monde , j'aimerais bien vous montrer l'étape ou je suis arriver et j'ai besoin de votre aide pour m'aider à corriger quelques problémes dans la programmation et la conception de ma carte de testeur ADSL: j'ai un probléme avec la simulation sur isis, je sais pas comment faire la simulation on absence du signal ADSL donc comment je peut générer un signal semblant au signal ADSL,
    La carte et composé de 3 partie :
    Modification au modem pour l'acquisition du signal de synchronisation
    Carte principale
    et ligne d'affaiblissement artificiel variable.
    La réalisation des lignes d’affaiblissement, dont la géométrie en H s’est imposée
    naturellement pour simuler une ligne bifilaire torsadée. Chaque cellule de la ligne
    d’affaiblissement artificielle est composée de 5 impédances, qui sont des
    combinaisons de résistances. Les calculs effectués pour trouver la valeur de ces
    composants ont été vus au chapitre précédent, dans l’ « application sur les lignes
    d’affaiblissement artificielles »
    Le circuit entourant le microcontrôleur : quartz, reset, programmation, ainsi que les
    entrées/sorties, c’est à dire l’arrivée du signal de synchronisation et la commutation
    des relais, et l’allumage ou l’extinction des leds appropriées.
    Les pattes spécifiques du microcontrôleur :
    - VDD est relié au potentiel 5V
    - VSS est relié à la masse
    - le reset fonctionne en ramenant le potentiel 0V sur la patte « masterclear » MCLR\
    - Un quartz de 4 MHz est branché entre les pattes « oscillator1 » OSC1 et
    « oscillator2 » OSC2, et chaque patte du quartz est reliée à la masse par un
    condensateur de petite valeur, pour permettre l’oscillation.
    - J’ai mis un connecteur DB9 sur le boîtier pour réaliser la programmation ICSP : In
    Circuit Serial Programming, de ce connecteur arrivent les signaux masterclear, data,
    et clock sur les broches masterclear, RB7, et RB6.
    Les entrées-sorties :
    - Il n’y a qu’une seule entrée dans mon circuit : le signal de synchronisation venant du
    modem arrive sur la patte RA2.
    - Les pattes RB1 à RB5 sont les sorties qui vont sur le driver de relais, et qui
    permettent de commuter les relais pour sélectionner l’une ou l’autre des cellules
    d’affaiblissement.
    - Les pattes RA0 et RA1 sont reliées à la led bicolore, RA0 commande le rouge, RA1
    le vert.
    - On commande l’allumage ou l’extinction des leds rouges (valeur de
    l’affaiblissement) grâce à un circuit en collecteur ouvert sur RA4. Au final, j’ai préféré
    toujours laisser allumé les leds indiquant la valeur de l’affaiblissement en cours pour
    savoir où en est le test.

    - La modification du modem : deux solutions se présentaient à moi pour extraire le
    signal de synchronisation du modem et le ramener en entrée du microcontrôleur : soit
    prendre directement le signal ADSL, ce qui aurait nécessité un traitement du signal
    pour détecter la synchronisation, soit capter le signal lumineux de la diode
    électroluminescente de synchronisation du modem, c’est la solution que j’ai retenue
    pour des raisons de praticité, puisqu’il suffit de suivre l’état de la led pour savoir si le
    modem est synchronisé, la gestion au niveau du microcontrôleur est donc plus facile.
    Le but du petit circuit que j’ai implanté dans le modem de test est d’extraire le
    signal de synchronisation : j’ai donc soudé une résistance de 4,7k entre la cathode de
    la led de synchronisation et la base d’un transistor PNP, dont le collecteur alimente un
    opto-coupleur, dont la sortie est ramenée sur un fil disponible du connecteur RJ45 du
    modem. Ainsi, quand on branche le câble qui relie mon outil de test et le modem, le
    signal de synchronisation est ramené vers le microcontrôleur.

    Conception initiale du programme – Description
    Au début du test du modem du DSLAM, le microcontrôleur attend qu’une première
    synchronisation ait lieu à 0 dB d’affaiblissement, c’est à dire que le modem est directement
    relié au DSLAM via le répartiteur général. Après cette première synchronisation réussie, le
    microcontrôleur sélectionne un affaiblissement de 50 dB et attend la synchronisation. La suite
    de la recherche est dichotomique : on peut rechercher une synchronisation au maximum
    jusqu’à 77 dB.
    Les sorties 1 à 5 du port B du 16F84 sont associées à chacune des cellules
    d’affaiblissement : ainsi, en combinant les sorties, on obtient des affaiblissements de 0, 2, 5, 7,
    10, 12, 15, 17, 20, 22, 25, 27, 30, 32, 35, 37, 40, 42, 45, 47, 50, 52, 55, 57, 60, 62, 65, 67, 70,
    72, 75 et 77 dB.
    Ainsi, pour faire un test de synchronisation à 27 dB :
    ------- 40dB ------- 20dB ------- 10dB ------- 5dB ------- 2dB -------
    Patte du 16F84 : RB5 RB4 RB3 RB2 RB1
    Exemple pour 27dB : 0 1 0 1 1
    D’où la valeur du port B en binaire : 0001 0110

    Le programme principal : Il a pour rôle d’initialiser le microcontrôleur et les variables,
    ainsi que de choisir l’affaiblissement utilisé pour réaliser les tests en fonction de la présence
    ou non de synchronisation, indication transmise par la routine d’interruption via une variable.
    En cours et en fin de programme, le programme principal affiche :
    - l’état courant sur la led bicolore :
    Si la diode électroluminescente bicolore d’état est rouge, le modem n’est pas
    synchronisé, en attente d’une tentative de synchronisation.
    Si elle est verte clignotante, cela signifie que le test de synchronisation s’est bien
    déroulé.
    Si elle est de couleur orange, le test de l’équipement du DSLAM est achevé.
    - l’affaiblissement maximal avec lequel le DSLAM et le modem de test ont pu se
    synchroniser.
    La fonction d’interruption : Le signal de synchronisation est ramené du modem sur
    une des pattes du microcontrôleur. J’utilise une fonction d’interruption qui analyse l’état de
    led de synchronisation du modem toutes les 65ms et détecte ses changements d’état. La led de
    synchronisation du modem clignotant avec une période d’environ une seconde, la fonction
    d’interruption confirme l’état « synchronisé » ou « non synchronisé » si la led ne change pas
    d’état pendant plus de deux secondes, si des changements interviennent, on est dans l’état « en
    cours de synchronisation ».
    La fonction d’interruption a également pour rôle de décrémenter un compteur qui est
    utilisé dans les autres sous programmes, il est donc facile de gérer une temporisation.
    Les sous-programmes : ils sont au nombre de 5.
    - Le premier n’est utilisé qu’une fois au début du programme, il a pour rôle d’attendre
    la première synchronisation réussie, de manière à ce que le programme principal ne considère
    pas le plot mauvais, puisque les modems des DSLAM de marque LUCENT doivent essayer
    de se synchroniser plusieurs fois avant d’y parvenir, cela permet également ne pas considérer
    un plot hors service, alors que le connecteur de test n’est pas branché au répartiteur.
    - Le second a pour rôle d’attendre un état stable, « synchronisé » ou « non
    synchronisé », ce qui permet de passer au test suivant.
    - Le troisième, qui attend l’état « en cours de synchronisation», est inséré dans le
    programme entre un changement d’affaiblissement et le sous-programme qui attend un état
    fixe (« synchronisé » ou « non synchronisé »), de façon à ne pas considérer un équipement
    mauvais, alors que le DSLAM n’a pas eu temps de tenter une nouvelle synchronisation.
    - Le quatrième sous-programme a été conçu après les premiers tests et sert à « faire
    décrocher » le modem de test. En effet, si un test de synchronisation était réussi, et que le saut
    d’affaiblissement n’était pas assez important, le modem, dans certains cas, restait synchronisé,
    et faussait ainsi le test suivant. On introduit donc entre deux tests l’affaiblissement le plus
    important (77 dB), le modem se désynchronise à coups sûr.
    - Le dernier sous-programme est une simple temporisation qui utilise la scrutation de
    variable.

    carte principale.jpgLAAV.jpgLAAV1.jpgmodification modem.jpg
    Le Program en C++: (PIC C Compiler)

    #include <16f877.h>
    #fuses HS,NOWDT,NOPROTECT,NOLVP
    #use delay(clock=20Mhz)
    #include <lcd.c>

    #define "0db" 0b00000000
    #define "2db" 0b00000010
    #define "5db" 0b00000100
    #define "7db" 0b00000110
    #define "10db" 0b00001000
    #define "12db" 0b00001010
    #define "15db" 0b00001100
    #define "17db" 0b00001110
    #define "20db" 0b00010000
    #define "22db" 0b00010010
    #define "25db" 0b00010100
    #define "27db" 0b00010110
    #define "30db" 0b00011000
    #define "32db" 0b00011010
    #define "35db" 0b00011100
    #define "37db" 0b00011110
    #define "40db" 0b00100000
    #define "42db" 0b00100010
    #define "45db" 0b00100100
    #define "47db" 0b00100110
    #define "50db" 0b00101000
    #define "52db" 0b00101010
    #define "55db" 0b00101100
    #define "57db" 0b00101110
    #define "60db" 0b00110000
    #define "62db" 0b00110010
    #define "65db" 0b00110100
    #define "67db" 0b00110110
    #define "70db" 0b00111000
    #define "72db" 0b00111010
    #define "75db" 0b00111100
    #define "77db" 0b00111110

    #define led_rouge PIN_A0
    #define led_verte PIN_A1
    #define vesu_led PIN_A4
    #define opto PIN_A2

    #define EN_COURS 0
    #define NOK 1
    #define OK 2
    #define INDEFINI 3

    #define UNE_MINUTE 900
    #define DEUX_SECONDES 30
    #define UNE_SECONDE 15
    #define DEMIE_SECONDE 8
    #define QUART_SECONDE 3

    static unsigned synchro, attend, variation, niveau, i, poids;
    static unsigned int temp;
    static int8 etat_precedent;
    static void attend_ok(void);
    static void attend_ok_nok(void);
    static void attend_en_cours(void);
    static void tempo(void);
    static void decrochage_modem(void);

    static void interrupt_isr(void)
    {
    if (opto == etat_precedent)
    {
    if (attend == 0)
    {
    variation = 0;
    if (etat_precedent == 0)
    {
    OUTPUT_LOW(PIN_A0);
    OUTPUT_HIGH(PIN_A1);
    synchro = OK;
    delay_ms(1000);
    lcd_init();
    printf(lcd_putc,"\fSynchro");
    }
    else
    {
    OUTPUT_HIGH(PIN_A0);
    OUTPUT_LOW(PIN_A1);
    synchro == NOK;
    delay_ms(1000);
    lcd_init();
    printf(lcd_putc,"\fNo Synchro");
    }
    attend= delay_ms(2000);
    }
    else
    attend--;
    }
    else
    {
    etat_precedent = opto;
    OUTPUT_LOW(PIN_A0);
    PIN_A1==!etat_precedent;
    variation = variation + 1;
    delay_ms(2000);
    if(variation > 3)
    synchro = EN_COURS;
    else
    synchro = INDEFINI;

    }
    if (temp != 0)
    temp--;
    }
    void main()
    {
    {
    SET_TRIS_A (0b11101100);
    SET_TRIS_C (0b11000000);
    OUTPUT_A(0b00010011);
    OUTPUT_C (0b00000000);
    }

    OUTPUT_A(0b00000011);
    poids = 0b00000001;

    for(i=0;i<6;i++)
    {
    OUTPUT_C (poids);
    temp = QUART_SECONDE;
    tempo();
    poids =2;
    }
    for(i=0;i<6;i++)
    {
    OUTPUT_B(poids);
    temp = QUART_SECONDE;
    tempo();
    poids =2;
    }

    OUTPUT_C(0b00000000);
    variation = 0;
    attend = DEUX_SECONDES;
    etat_precedent = opto;
    niveau = 0b00000000;
    attend_ok();
    decrochage_modem();
    OUTPUT_C("50dB");
    attend_en_cours();
    attend_ok_nok();
    if(synchro == OK)
    {
    niveau = "50dB";
    decrochage_modem();
    OUTPUT_C("60dB");
    attend_en_cours();
    attend_ok_nok();

    if(synchro == OK)
    {
    niveau = "60dB";
    decrochage_modem();
    OUTPUT_C ("70dB");
    attend_en_cours();
    attend_ok_nok();

    if(synchro == OK)
    {
    niveau ="70dB";
    decrochage_modem();
    OUTPUT_C("75dB");
    attend_en_cours();
    attend_ok_nok();

    if(synchro == OK)
    {
    niveau = "75dB";
    OUTPUT_C("77dB");
    attend_en_cours();
    attend_ok_nok();

    if(synchro == OK)
    {
    niveau = "77dB";
    }
    }
    else
    {
    OUTPUT_C ("72dB");
    attend_en_cours();
    attend_ok_nok();

    if(synchro == OK)
    niveau = "72dB";
    }
    }
    else
    {
    OUTPUT_C("65dB");
    attend_en_cours();
    attend_ok_nok();

    if(synchro == OK)
    {
    niveau = "65dB";
    decrochage_modem();
    OUTPUT_C("67dB");
    attend_en_cours();
    attend_ok_nok();

    if(synchro == OK)
    niveau = "67dB";
    }
    else
    {
    OUTPUT_C ("62dB");
    attend_en_cours();
    attend_ok_nok();

    if(synchro == OK)
    niveau = "62dB";
    }
    }
    }
    else
    {
    OUTPUT_C("55dB");
    attend_en_cours();
    attend_ok_nok();

    if(synchro == OK)
    {
    niveau = "55dB";
    decrochage_modem();
    OUTPUT_C("57dB");
    attend_en_cours();
    attend_ok_nok();

    if(synchro == OK)
    niveau = "57dB";
    }
    else
    {
    OUTPUT_C("52dB");
    attend_en_cours();
    attend_ok_nok();

    if(synchro == OK)
    niveau = "52dB";
    }
    }
    }
    else
    {
    OUTPUT_C("25dB");
    attend_en_cours();
    attend_ok_nok();

    if(synchro == OK)
    {
    niveau = "25dB";
    decrochage_modem();
    OUTPUT_C("37dB");
    attend_en_cours();
    attend_ok_nok();

    if(synchro == OK)
    {
    niveau = "37dB";
    decrochage_modem();
    OUTPUT_C("45dB");
    attend_en_cours();
    attend_ok_nok();

    if(synchro == OK)
    {
    niveau = "45dB";
    decrochage_modem();
    OUTPUT_C("47dB");
    attend_en_cours();
    attend_ok_nok();

    if(synchro == OK)
    {
    niveau = "47dB";
    }
    }
    else
    {
    OUTPUT_C("42dB");
    attend_en_cours();
    attend_ok_nok();

    if(synchro == OK)
    {
    niveau = "42dB";
    }
    else
    {
    OUTPUT_C("40dB");
    attend_en_cours();
    attend_ok_nok();

    if(synchro == OK)
    {
    niveau = "40dB";
    }
    }
    }
    }
    else
    {
    OUTPUT_C("32dB");
    attend_en_cours();
    attend_ok_nok();

    if(synchro == OK)
    {
    niveau = "32dB";
    decrochage_modem();
    OUTPUT_C("35dB");
    attend_en_cours();
    attend_ok_nok();

    if(synchro == OK)
    {
    niveau = "35dB";
    }
    }
    else
    {
    OUTPUT_C("27dB");
    attend_en_cours();
    attend_ok_nok();

    if(synchro == OK)
    {
    niveau = "27dB";
    decrochage_modem();
    OUTPUT_C("30dB");
    attend_en_cours();
    attend_ok_nok();

    if(synchro == OK)
    {
    niveau = ("30dB");
    }
    }
    }
    }
    }
    else
    {
    OUTPUT_C("12dB");
    attend_en_cours();
    attend_ok_nok();

    if(synchro == OK)
    {
    niveau = "12dB";
    decrochage_modem();
    OUTPUT_C("17dB");
    attend_en_cours();
    attend_ok_nok();

    if(synchro == OK)
    {
    niveau = "17dB";
    decrochage_modem();
    OUTPUT_C("20db");
    attend_en_cours();
    attend_ok_nok();

    if(synchro == OK)
    {
    niveau = "20dB";
    decrochage_modem();
    OUTPUT_C("22dB");
    attend_en_cours();
    attend_ok_nok();

    if(synchro == OK)
    {
    niveau = "22dB";
    }
    }
    }
    else
    {
    OUTPUT_C("15dB");
    attend_en_cours();
    attend_ok_nok();

    if(synchro == OK)
    {
    niveau = "15dB";
    }
    }
    }
    else
    {
    OUTPUT_C("5dB");
    attend_en_cours();
    attend_ok_nok();

    if(synchro == OK)
    {
    niveau = "5dB";
    decrochage_modem();
    OUTPUT_C("7dB");
    attend_en_cours();
    attend_ok_nok();

    if(synchro == OK)
    {
    niveau = "7dB";
    decrochage_modem();
    OUTPUT_C("10dB");
    attend_en_cours();
    attend_ok_nok();

    if(synchro == OK)
    {
    niveau = "10dB";
    }
    }
    }
    else
    {
    OUTPUT_C("2dB");
    attend_en_cours();
    attend_ok_nok();

    if(synchro == OK)
    {
    niveau = "2dB";
    }
    }
    }
    }
    }

    OUTPUT_C(niveau);
    OUTPUT_A(0b00000011);
    }



    static void attend_ok(void)
    {
    while(true)

    if(synchro == OK)
    break;

    }


    static void attend_ok_nok(void)
    {
    temp=UNE_MINUTE;
    while(temp>1)
    {
    if((synchro == OK) | (synchro == NOK))
    break;
    }
    }

    static void attend_en_cours(void)
    {
    temp=UNE_MINUTE;
    while(temp>1)
    {
    if(synchro == EN_COURS)
    break;
    }
    }

    static void decrochage_modem(void)
    {
    OUTPUT_B("77dB");
    while(true)
    {
    if(synchro == NOK)
    break;
    }
    }

    static void tempo(void)
    {
    while(temp != 0)
    {
    }
    }
    Dernière modification par amdouni61 ; 01/05/2013 à 17h25.

Discussions similaires

  1. Pb.TESTEUR D'ALIMENTATION
    Par invitedf63f764 dans le forum Électronique
    Réponses: 3
    Dernier message: 10/04/2012, 11h20
  2. testeur
    Par azerty2010 dans le forum Électronique
    Réponses: 5
    Dernier message: 09/08/2010, 18h03
  3. testeur de cable
    Par tsoin1 dans le forum Électronique
    Réponses: 5
    Dernier message: 28/04/2009, 11h11
  4. Un testeur de carte
    Par invitedc4856d4 dans le forum Électronique
    Réponses: 5
    Dernier message: 05/12/2006, 22h31
  5. testeur RJ45
    Par invitea78c836f dans le forum Électronique
    Réponses: 5
    Dernier message: 16/03/2006, 20h32
Découvrez nos comparatifs produits sur l'informatique et les technologies.