12
Communication de données
Exemple de codage de l'enregistreur de données
Fonctions d'interrogation de l'enregistreur de données
Dans l'exemple de codage suivant permettant de lire l'enregistreur de données, six fonctions sont
utilisées :
• ahex
// transforme le caractère ASCII reçu en un caractère hexadécimal,
• send_telegramm
// envoie une demande à l'enregistreur de données,
• get_telegramm
// reçoit une réponse émise par l'enregistreur de données,
• time_2_str
// crée à partir d'un caractère ASCII, en tant que valeur hexadécimale, au format d'heure,
• num_2_string
// crée à partir de caractères ASCII, en tant que valeurs hexadécimales, destinés à être introduits
dans un fichier,
• read_datalogger
// traite les données reçues et les écrit dans un fichier.
Exemple de codage pour interroger l'enregistreur de données
char ahex (char a)
char ahex(char a)
{
char i;
char hexa[16]="0123456789abcdef";
for (i = 0; i < 16; i++)
return 0;
}
send_telegramm
void send_telegramm(char *p)
{
char string [15];
unsigned char bcc = 0xFF;
char i;
// Copier télégramme
strncpy (&string[0], „?:xxxx:00::00\r", 14);
// Insérer adresse à 4 chiffres
strncpy (&string[2], p, 4);
// Calculer le total de cont. : XOR inversé de tous les octets.
// sans total de contrôle et <CR>
for (i = 0; i < 11; i ++)
// Copier le total de contrôle
string[11] = hexa(bcc/16);
S
i160 LK / i250 LK
TERI-CYCLE
12-16
if (a == hexa[i])
return (i);
bcc = (bcc^string[i]);
Thermo Scientific