'**************************************************** '* declaration des variables globales * '**************************************************** dim MOswitch '* B inhibe les sub numeliste_onmouseover et _onmouseleave pendant l'exécution d'un test dim messagerie '* S type de communication utilisé : ReprogOnK ou DiagOnCan dim catsel '* S catégorie sélectionnée (basic, erasing...) dim effetsel '* S critÅre d'effet du test (no_change, erase, reload) dim clesel '* S critÅre de clé appli (etude ou serie) dim avsel '* S critÅre dim SpecType
dim Session '* session ouverte sur la page ddt2000/scan dim btpdata '* xml exporté de BTP contenant les données relatives Ä… l'UCE dim addressdata '* xml contenant les adresses spécifiques dim H '* directReprogHandler (ReprogOnK ou DiagOnCan selon 'messagerie') dim B '* BTPprogramer dim doc '* document xml contenant les requetes et passé Ä… session.send dim dlock ' objet déverrouillage sur lr serveur dim IdentType ' ident Renault or Nissan dim ServerName
'* docs xml preparés Ä… l'avance dim docWriteAKparRL '* ecriture cle appli avec un mauvais repere logique dim docWriteAKparLB '* ecriture cle appli avec un mauvais octet longueur dim docWriteAKparAdr '* ecriture cle appli avec une adresse <> 00 00 00
dim docDownload0parRL '* telechargement avec un mauvais repere logique dim docDownload0parLB '* telechargement avec un mauvais octet longueur (taille réelle cohérente) dim docDownload0parAdr '* telechargement Ä… une adresse protégée (plage entrée manuellement)
dim docUploadparRL '* relecture avec un mauvais repere logique dim docUploadparLB '* relecture avec un mauvais octet longueur dim docUploadparAdr '* relecture Ä… une adresse protégée (plage entrée manuellement) dim docReadMemByAdr '* read memory by address dim docWriteMemByAdr '* write memory by address dim docUPall '* relecture complete dim docDownAll '* telechargement global dim docDownTun '* telechargement calibration dim docDownCorrupt '* telechargement avec données corrompues
dim docWriteLog0parRL '* ecriture histo avec un mauvais repere logique dim docWriteLog0parLB '* ecriture histo avec un mauvais octet longueur dim docWriteLog0parAdr '* ecriture histo avec une adresse <> 00 00 00
dim testNode '* pointe dans campagne.xml sur le node du test selectionné dim alistenode '* liste des nodes "s" et "r" du doc xml (en sortie de session.send) dim acnode '* node courant de alistenode (reconstitution des requetes et des reponses a partir des trames can)
dim testOK '* B resultat du test. le test s'arrete s'il passe Ä… faux dim strRequete '* S contient la requete envoyée. affiché par displayStep dans etapeliste dim strReponse '* S idem avec la reponse dim baReponse '* ByteArray contient la reponse de l'UCE dim stepcount '* I compteur pour l'exécution des etapes successives d'un test dim continueTest '* B marque la fin du test dim preparationOK '* B vrai si les doc xml specifiques ont été préparés
dim ECUident '* S zone ident de l'UCE (reponse Ä… 2180) dim ECUadr '* I identificateur de l'UCE (lu dans le xml BTP) dim curHisto '* S histo courant (21FE 21FF) dim firstHisto '* S histo courant (21F0 21F1) dim maxDL '* I maxdownload value (lu dans le xml BTP) dim granularite '* I granularité (calculée dans le xml BTP) dim ECUname '* S nom de l'UCE (lu dans le xml BTP) dim ECUfunction '* S fonction de l'UCE (lu dans le xml BTP) dim nonCorruptedSeg '* node du fichier btp xml (le 1er de la calib) dim CorruptedSeg '* le mÄ™me node, dont le 1er octet a été incrémenté dim EraseByte '* premier octet de la valeur d'effacement dim totalbytes '* nombre d'octest téléchargés
dim arDLstartAdr() '* Tableau des adresses limites des zones autorisées en ecriture (calculées Ä… partir du xml BTP) dim arDLendAdr() '* Tableau des adresses limites des zones autorisées en ecriture dim arUPstartAdr() '* Tableau des adresses limites des zones autorisées en lecture dim arUPendAdr() '* Tableau des adresses limites des zones autorisées en lecture
dim globaleraseMapping dim tuningeraseMapping dim nowriteMapping dim globalwriteMapping dim tuningwriteMapping dim softwriteMapping dim nbrglobseg dim nbrcaliseg dim nbrglobsegerase dim nbrcalisegerase dim mini dim maxi dim reprogcount
dim TV_Adr, EU_Adr, AK_Adr '* adresses des octets tentative de viol, etat UCE et appli key (rentrées Ä… la main sur la page) dim CRCUplCode '* &H80 ou &H84 selon que l'UCE repond avec ou sans CRC Ä… un upload dim softAdr, calibAdr '* adresses valides calib et soft (lu dans le xml BTP) dim invalidStartAdr, invalidEndAdr '* zone interdite en lecture/ecriture (rentrées Ä… la main sur la page) dim listeRL '* (&H82, &H81) dim listeStatus '* (8,4) dim listeZone '* (0,1) dim zone '* globalZone ou calibZone dim listeAdr '* tableau (softAdr, calibAdr) dim SA1Count dim debut dim LockKey dim NbReprog
dim strDoc '* S concatenation des docs xml du dernier test lancé dim strVar '* S liste des variables globales et leur valeur dim strExtract '* S requetes et reponses du dernier test lancé dim annonce '* S annonce de renvoi a la page scan
'**************************************************** '* constantes et tableaux de constantes * '**************************************************** Const waitError = true Const waitOk = false
'**************************************************** '* listes des sous-programmes : affichage.txt * '**************************************************** ' 'sub conditions_initiales() ' lancé par window_onload ' préselectionne la messagerie DiagOnCan ' préselectionne les tests qui n'effacent pas l'UCE et qui ne touche pas Ä… la clé appli
'sub lister_numero() ' cache la zone de description ' prend en compte les criteres (categorie, effet...) selectionnés et fait un selectnodes sur campagne.xml ' affiche la liste resultat
'sub afficheComment() ' affiche les données relatives Ä… un test dans la zone de description ' calcule l'etat final... ' lancé par numeliste_onmouseover, _onmouseleave
'sub afficheDetail() ' affiche le détail des tests
'function num2sub(num) ' transforme une chaine "9.2.a" ( du test dans campagne.xml) en "test92a" (nom du sous-prog)
'sub numeliste_onclick() ' MOswitch Ä… faux pour inhiber les sub _onclick, _onmouseover... ' initialise toutes les variables : testOK, continueTest, strRequete, strReponse, stepcount, zone, strDoc, strExtract ' efface etapeliste ' crée les nodes d'avancement dans campagne.xml ' lance doTest
'sub DoTest() ' incremente stepcount ' appelle le sous-prog de test pour l'exécution de l'étape n° stepCount ' lance fintest
'sub finTest() ' fin du test : refait un stop ' rempli les nodes d'avancement ' reinitialise les flags MOswitch, force, interrupt
'sub Attente() ' lancé lors de l'interruption d'un test Ä… l'étape specifiée dans la case 'laststep' ' envoi periodique de requetes testerPresent pour maintenir la com et permettre l'envoi de requetes manuelles
'sub save_onclick() ' sauve les tests exécutés de campagne.xml dans un document 'rapport'
'sub send_onclick() ' envoi le contenu de la case 'alamain'
'sub selcritere(idVar) ' lancé qd on clique sur un critere de selection des tests ' recupere la bonne ligne, la met en jaune, et enregistre le critere dans la variable dont le nom est passé en paramÅtre
'sub numeliste_onmouseover() ' affiche et rempli la zone de description du test
'sub numeliste_onmouseleave() ' revient au dernier test exécuté
'sub displayStep(strDescription, strAttendu) ' affiche une ligne supplémentaire dans le tableau des etapes ' prend en compte les variables globales strRequete et strReponse
'sub viewDoc_onclick() ' affiche strDoc
'sub viewExt_onclick() ' affiche strExtract
'sub viewTool_onclick() ' affiche les switchs force et interrupt
'sub viewVar_onclick() ' crée et affiche strVar
'sub viewDescr_onclick() ' crée et affiche strDescr
'**************************************************** '* listes des sous-programmes : traitement.txt * '**************************************************** '
'sub extract(docu) ' parcours le doc xml (apres session.send) et extrait les requetes et les reponses
'sub testerPresent() ' envoie Ä… l'UCE une requete tester_present pour garder la comm ' lancé par extract
'sub etape() ' lancé Ä… chaque etape d'un test ' envoi le doc xml global 'doc' et lance trameReq et trameRep ' met Ä… jour strDoc et strExtract (lance extract)
'sub etape2(docu) ' comme etape() mais avec le doc xml passé en argument
'function trameReq(SRnode) ' reconstruit la requete (string) Ä… partir du premier node SRnode ' a la fin SRnode pointe sur le dernier morceau de la trame (permet d'enchainer si on est en )
'function trameRep(SRnode) ' reconstruit la reponse (ByteArray) Ä… partir du premier node
' actualisation des variables rentrées Ä… la main sur la page
'sub caseBTPdata_onchange() ' charge le fichier xml ' lance displayIdentMode, createAddressArrays '
'******************************************************** '* listes des sous-programmes : briques_generales.txt * '******************************************************** ' les fonctions req*, qui se trouvent dans les fichiers briques_*.txt, ' renvoient le doc xml contenant les requetes et les reponses attendues '
'function reqMan(trame) ' requete manuelle, pas de balise
'function reqStop(waitErr) ' 82 ou 1081 selon la messagerie. reponse positive ou negative selon waitErr
'function reqTesterPresent() ' 3E
'function reqTesterPresentNeg() ' 3E rep negative attendue
'function reqSA1(replyCode, waitErr) ' 2781. le replycode ne sert qu'en cas de reponse negative attendue
'function reqSA2unlock(replyCode, waitErr) ' 2782 xx xx xx xx, avec xx... calculé par l'objet SecurityAccess