visual c++ - microsoft - vc++ 6.0 serial communicaton
serial communication microsoft (2)
Es poco probable que lo resuelva a menos que sepa con qué se está comunicando y cómo se comunica con usted. (Sugerencia: puedes intentar decirnos)
En vc ++ estoy usando MScomm para comunicación en serie, recibí datos en este formato 02120812550006050.0, no estoy obteniendo cómo leer esto, en qué formato es, comenzando el fotograma de inicio y en el archivo de final de finalización, no recuerdo.
EDIT 1:
contiene fecha e información de cómo puedo separar este
Los divertidos personajes son marcadores que indican cosas como inicio de registro, final de registro, separador de campo, etc. Sin saber el protocolo real, es un poco difícil de decir.
La información es mucho más fácil.
Entre los marcadores 000f y 0002, tiene un campo de fecha / hora, 2 de diciembre de 2008, 12:55:00.
Entre el marcador 0002 y 0003, se ve como un simple flotador que podría ser un valor en dólares o cualquier otra cosa, depende de lo que se encuentre al otro extremo del enlace.
Para separarlo, asumo que lo has leído en una matriz de caracteres variable de algún tipo. Solo busca los marcadores y extrae los campos entre ellos.
La fecha / hora es de tamaño fijo y el valor probablemente también (ya que tiene un 0 inicial), por lo que probablemente podría simplemente usar memcpy''s para extraer la información que necesita del búfer, null terminarlos, convertir el valor a flotar, y voila.
Si se trata de un formato fijo, puede usar algo como:
static void extract (char *buff, char *date, char *time, float *val) {
// format is "/x01/x0fDDMMYYhhmmss/x02vvvvvvv/x03/x04"
char temp[8];
memcpy (date, buff + 2, 6); date[6] = ''/0'';
memcpy (time, buff + 8, 6); time[6] = ''/0'';
memcpy (temp, buff + 15, 7); temp[7] = ''/0'';
*val = atof (temp);
}
y llámalo con:
char buff[26]; // must be pre-filled before calling extract()
char dt[8];
char tm[8];
float val;
extract (buffer, dt, tm, &val);
Si no se trata de un formato fijo, solo tiene que escribir el código para detectar las posiciones de los separadores de campo y extraer lo que hay entre ellos.