diff --git a/cmdline/read-temp.c b/cmdline/read-temp.c index 47efe30..62ccc7a 100644 --- a/cmdline/read-temp.c +++ b/cmdline/read-temp.c @@ -29,7 +29,7 @@ respectively. #include "../firmware/masterchip/usbdrv/usbconfig.h" /* device's VID/PID and names */ void usage() { - printf("Usage: read-temp [spi|temp|dbg] [[opcode] [addr] [value]]\n"); + printf("Usage:\tread-temp [spi|temp|dbg] [[opcode] [addr] [value]]\n\tread-temp [offset] [channel]\n"); } int main(int argc, char **argv) @@ -128,7 +128,6 @@ int cnt, vid, pid; int dbg_getchar[] = {6, 0, 0}; int *rq; - fprintf(stdout, "answer: value=0x%04x (%i)\n", 1,1); while(1) { // check whether we have new rq = dbg_getchar; @@ -146,6 +145,39 @@ int cnt, vid, pid; fflush(stdout); } } + } else if(strcasecmp(argv[1], "offset") == 0) { + if(argc != 3) { + usage(); + return 0; + } + + int chan; + int *rq; + chan = atoi(argv[2]); + int offset_start[] = {6,1,chan}; + int offset_stop[] = {6,2,chan}; + + rq = offset_start; + + fprintf(stdout, "starting offset measuring for channel %i", chan); + cnt = usb_control_msg(handle, USB_TYPE_VENDOR | USB_RECIP_DEVICE | USB_ENDPOINT_IN, rq[0], rq[1], rq[2], buffer, sizeof(buffer), 5000); + if(cnt < 0){ + fprintf(stdout, "\nUSB error in iteration ?!?: %s\n", usb_strerror()); + } + + sleep(10); + + rq = offset_stop; + fprintf(stdout, "stopping and retrieving..."); + cnt = usb_control_msg(handle, USB_TYPE_VENDOR | USB_RECIP_DEVICE | USB_ENDPOINT_IN, rq[0], rq[1], rq[2], buffer, sizeof(buffer), 5000); + if(cnt < 0){ + fprintf(stdout, "\nUSB error in iteration ?!?: %s\n", usb_strerror()); + } + rxIndex = ((int)buffer[1] & 0xff) | (((int)buffer[0] & 0xff) << 8); + fprintf(stdout, "measured offset %i", rxIndex); + + + } else { usage(); }