Bonjour à tous ^^
Je suis pas sur que ce soit le bon forum sur lequel je doit posté, excusez moi si je me trompe
C'est une longue Histoire ^^
Je suis en train de développer une application qui controle la concentration de CO2 (dans une étuve par exemple). Je suis tombé sur les produits SenseAir et en particulier sur le aSense.
D'apres le Data Sheet et la technical doc proposés par SenseAir (PDF : Serial Communications/Protocol in SenseAir Products) je cite (page 6, Exemple 2) :
J'ai donc essayé avec un terminal qui prend en compte l'emission et la reception de données en Hexa.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 external computer Tx---<FE>-----<82><16><98>------------------------------- sensor UART Tx-------<DF>--------------<86><CO2hi><CO2lo><chksm>-----
Voila ce que j'ai eu comme resultat
Donc le matériel repond qu'il est prés, mais qd je demande les valeurs(high et low) du CO2, pas de réponse; à chaque fois que j'envoie la commande <FE> il répond bien <DF> ....
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 external computer Tx---<FE>-----<82><16><98>------------------------------- sensor UART Tx-------<DF>--------------------------------------------
J'ai meme essayé plusieurs autre combinaisants mais rien ...
2eme étape:
J'ai télécharger le logiciel proposé par SenseAir (LoggingProgram) qui est normalement utiliser pour recupérer la valeur du CO2; en fouinant un peu et en demandant l'aide des techniciens de SenseAir, j'ai récuperer la dll (SACOM3.dll) qu'il utilise pour communiquer avec les aSense (le matériel).
J'ai biduler un petit code en C# qui utilise cette dll et ça a fonctionnée, j'été tres content ; dans la dll y'a une fonction tres interessante, elle permet de voir les actions que fait le programme; une ligne m'a interpelé (biensure celle qui récupere la valeur du CO2 )
Revenons au Data Sheet et au PDF déja cité;
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 Reading 2 Byte From address 22 RAM
Page 4 : Standard Commands (read/write RAM)
c'est exactement le meme code
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 Traduction de la ligne précedente, d'après le data sheet Read from RAM : {1 0 0 0 0} 2 Byte : {0 1 0} - Read from Ram 2 Byte : 1 0 0 0 0 0 1 0 = 0x82 - Addess 22 : 0x16 - Checksum : 0x82 + 0x16 = 0x98 ==> <82><16><98> notre Exemple
donc, si je ne suis pas béte, leur prgramme (ou la dll), envoie sur le port Serie la commande 0x82 0x16 0x98 pour recuperer la valeur du CO2 ....
J'ai tenté en vin plusieurs combinaisons pour lire des byte du matériel, mais sans succès.
La DLL étant énorme (645Ko), je ne peu pas l'intégré dans un PIC, j'aimerai juste recuperer la séquence de code (en héxa ou en assembleur) qui permet d'aller recuperer la valeur CO2; ils y arrivent bien!!!!! Pourquoi pas moi???!!!!
je m'en remet a vous et à vos connaissances
Merci (meme pour celui qui répondra : Désolé, je ne peu pas t'aider, ou va te faire soigner, et des trucs du genres )
Partager