if (!len) {
// Nueva demanda
send_telegramm („2402");
len = get_telegramm (buffer);
// Nuevamente ningún telegrama recibido
if (!len) return 1;
}
// Elevar contador de telegramas
GetTele ++;
// 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 < (string); 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]){
//Comprobar entradas cíclicas en busca de fallos de aparato
status = zahlenstring[6+i*SIZE_DATA2]*0x100+
zahlenstring[7+i*SIZE_DATA2];
Thermo Scientific
GetError ++;
case EVENT_STATUS:
if (status & INFO_ERROR){
str_cpy (&excelstring[len], „Error active;", 13);
len += 13;
}
else{
12
Comunicación de datos
Ejemplos de códigos del registrador de datos
S
i160 LK / i250 LK
TERI-CYCLE
12-19