12
Comunicación de datos
Ejemplos de códigos del registrador de datos
Funciones para consultar el registrador de datos
En el siguiento ejemplo de código se emplean seis funciones para la selección del registrador de datos:
• ahex
// convierte el signo ASCII recibido en un número hexadecimal,
• send_telegramm
// envía una demanda al registrador de datos,
• get_telegramm
// recibe una respuesta del registrador de datos,
• time_2_str
// hace de un valor hexadecimal signos ASCII en formato horario,
• num_2_string
// hace de un valor hexadecimal signos ASCII a introducir en un fichero,
• read_datalogger
// procesa los datos recibidos y los escribe en un fichero.
Ejemplo de código para consultar el registrador de datos
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;
// Copiar telegrama
strncpy (&string[0], „?:xxxx:00::00\r", 14);
// Introducir dirección de 4 dígitos
strncpy (&string[2], p, 4);
// Calcular suma de prueba: XOR invertido de todos los bytes
// sin suma de prueba y <CR>
for (i = 0; i < 11; i ++)
// Copiar suma de prueba
string[11] = hexa(bcc/16);
string[12] = hexa(bcc%16);
S
i160 LK / i250 LK
TERI-CYCLE
12-16
if (a == hexa[i])
return (i);
bcc = (bcc^string[i]);
Thermo Scientific