Notice d'utilisation | HERAcell
15
15
Annexe Communication de données
Annexe Communication de données
50115192 / 07.2008
®
150 i / 240 i
}
// Augmenter le compteur de télégramme
GetTele ++;
// Longueur des données utilisateur transmises
len = (ahex(buffer[7]) * 0x10 + ahex(buffer[8])) / 2;
// Conversion chaîne ASCII en chaîne de nombres utilisable
for (i = 0; i < (len); i++)
chaîne de chiffres [i] = (ahex(buffer[10 + (2*i)]) * 0x10 +
ahex(buffer[11 + (2*i)]));
// Calcul des paquets de données transmis
data = ((len) / SIZE_DATA2);
// Analyse de tous les paquets de données
for (i = 0; i < data; i++)9{
len = 0;
// Ecrire l'heure et la date dans le fichier
len += time_2_str (chaîne de chiffres[1+i*SIZE_DATA2],
&excelstring[len]);
excelstring[len ++] = '.';
len += time_2_str (chaîne de chiffres[2+i*SIZE_DATA2],
&excelstring[len]);
excelstring[len ++] = '.';
len += time_2_str (chaîne de chiffres[3+i*SIZE_DATA2],
&excelstring[len]);
excelstring[len ++] = ';';
len += time_2_str (chaîne de chiffres[4+i*SIZE_DATA2],
&excelstring[len]);
excelstring[len ++] = ':';
len += time_2_str (chaîne de chiffres[5+i*SIZE_DATA2],
&excelstring[len]);
excelstring[len ++] = ':';
len += time_2_str (0, &excelstring[len]);
excelstring[len ++] = ';';
switch (chaîne de chiffres[i*SIZE_DATA2]){
case EVENT_STATUS:
// Vérifier l'absence d'erreurs système dans les enregistrements
// cycliques
status = chaîne de chiffres[6+i*SIZE_DATA2]*0x100+
chaîne de chiffres[7+i*SIZE_DATA2];
// Interroger l'ensemble des erreurs système
(voir chapitre 15.6.2‚ page 143)
//
// Interroger maintenant le reste des erreurs système
//
//
if (status & INFO_ERROR){
str_cpy (&excelstring[len], "Error active;", 13);
len += 13;
}
else{
if (status & DOOR_LONG){
str_cpy (&excelstring[len], "Door open too long;",
19);
len += 19;
else{
if (status & DOOR_OPEN){
str_cpy (&excelstring[len], "Door open;", 10);
len += 10;
}
}
·
·
148