#include #include #define LINESIZE 82 //2 + 12 + 4 + 64 = 82 int plotdate = 20091125; int main(int argc, char **argv) { FILE *fin; char buffer[4096]; char *ptr; int i; int lines = 0; int mydate,myhour,mymin,mysec; int myticks,nbsensors,tempval,sensorid; float mytime,value; if (argc != 3) { printf("Usage: %s file YYYYMMDD",argv[0]); return 1; } fin = fopen(argv[1],"r"); plotdate = atoi(argv[2]); if (fin != NULL) { while (fgets(buffer,sizeof(buffer),fin) != NULL) { ptr = buffer; if (*ptr++ == '[') { lines++; ptr = strtok(ptr,"]"); if (ptr != NULL) { sscanf(ptr,"%8d%2d%2d%2d",&mydate,&myhour,&mymin,&mysec); if (mydate == plotdate) { ptr = strtok(NULL,"\n"); if (*ptr++ == 'T') { sscanf(ptr,"%4X",&myticks); ptr += 4; sscanf(ptr,"%4X",&nbsensors); mytime = (float)(myhour * 3600 + mymin * 60 + mysec) / 3600.; printf("%8.4f %6d ",mytime,myticks); for (i = 0; i < nbsensors; i++) { ptr += 4; sscanf(ptr,"%4X",&sensorid); ptr += 4; sscanf(ptr,"%4X",&tempval); value = (float) tempval/2.0; printf("%6d %6.2f",sensorid,value); } putchar('\n'); } } } } } } else { printf("Could not open file %s\n",argv[1]); } return 0; }