--- temper-1.0/temper.c 2009-10-17 08:26:46.000000000 +0100 +++ temper-1.0.new/temper.c 2011-02-06 16:49:24.511084503 +0000 @@ -49,7 +49,7 @@ t = calloc(1, sizeof(*t)); t->device = dev; - t->debug = debug; + t->debug = 0; t->timeout = timeout; t->handle = usb_open(t->device); if(!t->handle) { @@ -190,7 +190,7 @@ int TemperGetTemperatureInC(Temper *t, float *tempC) { - char buf[256]; + unsigned char buf[256]; int ret, temperature, i; TemperSendCommand(t, 10, 11, 12, 13, 0, 0, 2, 0); @@ -204,9 +204,7 @@ return -1; } - temperature = (buf[1] & 0xFF) + (buf[0] << 8); - temperature += 1152; // calibration value - *tempC = temperature * (125.0 / 32000.0); + *tempC=buf[0]+((float)buf[1])/256; return 0; } @@ -253,29 +251,15 @@ TemperSendCommand(t, 0, 0, 0, 0, 0, 0, 0, 0); */ - bzero(buf, 256); - ret = TemperGetOtherStuff(t, buf, 256); - printf("Other Stuff (%d bytes):\n", ret); - for(i = 0; i < ret; i++) { - printf(" %02x", buf[i] & 0xFF); - if(i % 16 == 15) { - printf("\n"); - } - } - printf("\n"); - - for(;;) { - float tempc; - - if(TemperGetTemperatureInC(t, &tempc) < 0) { - perror("TemperGetTemperatureInC"); - exit(1); - } - printf("temperature %.2fF %.2fC\n", (9.0 / 5.0 * tempc + 32.0), - tempc); - sleep(10); - } - return 0; + float tempc; + + if(TemperGetTemperatureInC(t, &tempc) < 0) { + perror("TemperGetTemperatureInC"); + exit(1); + } + printf("temperature %.2fF %.2fC\n", (9.0 / 5.0 * tempc + 32.0), + tempc); + fflush(stdout); /* flush the stdout buffer */ } #endif