Instrucciones de manejo | HERAcell
13
13
Anexo Comunicación de datos
Anexo Comunicación de datos
50115193 B / 11.2010
®
150i / 240i
// Longitud de los datos útiles enviados
len = (ahex(buffer[7]) * 0x10 + ahex(buffer[8])) / 2;
// Conversión de ristra ASCII en una ristra de números útil
for (i = 0; i < (len); i++)
zahlenstring [i] = (ahex(buffer[10 + (2*i)]) * 0x10 +
ahex(buffer[11 + (2*i)]));
// Cálculo de los paquetes de datos enviados
data = ((len) / SIZE_DATA2);
// Evaluación de todos los paquetes de datos
for (i = 0; i < data; i++)9{
len = 0;
// Escribir hora y fecha en el fichero
len += time_2_str (zahlenstring[1+i*SIZE_DATA2],
&excelstring[len]);
excelstring[len ++] = '.';
len += time_2_str (zahlenstring[2+i*SIZE_DATA2],
&excelstring[len]);
excelstring[len ++] = '.';
len += time_2_str (zahlenstring[3+i*SIZE_DATA2],
&excelstring[len]);
excelstring[len ++] = ';';
len += time_2_str (zahlenstring[4+i*SIZE_DATA2],
&excelstring[len]);
excelstring[len ++] = ':';
len += time_2_str (zahlenstring[5+i*SIZE_DATA2],
&excelstring[len]);
excelstring[len ++] = ':';
len += time_2_str (0, &excelstring[len]);
excelstring[len ++] = ';';
switch (zahlenstring[i*SIZE_DATA2]){
case EVENT_STATUS:
// Comprobar entradas cíclicas en busca de fallos de aparato
status = zahlenstring[6+i*SIZE_DATA2]*0x100+
zahlenstring[7+i*SIZE_DATA2];
if (status & INFO_ERROR){
str_cpy (&excelstring[len], "Error active;", 13);
len += 13;
}
else{
//Consultar todos los fallos de aparato
if (status & DOOR_LONG){
else {
}
// Evaluación de todos los paquetes de datos
·
//
·
//
·
//
·
//
·
//
//y consultar finalmente la entrada de valor real cíclica sin fallo
//de aparato
str_cpy (&excelstring[len], "Door open too long;",
19);
len += 19;
if (status & DOOR_OPEN){
str_cpy (&excelstring[len], "Door open;", 10);
len += 10;
}
145
(ver cap. 13.6.2‚ pág. 140)