From d7dedd3baa819cfe36ec85efd94733e0339d472f Mon Sep 17 00:00:00 2001 From: Kai Lauterbach Date: Wed, 19 Oct 2011 00:12:00 +0200 Subject: [PATCH] Clean up the testcode --- client/Makefile | 2 +- client/set-led | Bin 23439 -> 0 bytes client/{set-led.c => test.c} | 105 +++++++++++++---------------------- 3 files changed, 41 insertions(+), 66 deletions(-) delete mode 100644 client/set-led rename client/{set-led.c => test.c} (50%) diff --git a/client/Makefile b/client/Makefile index 5894ca8..29dd094 100644 --- a/client/Makefile +++ b/client/Makefile @@ -22,7 +22,7 @@ EXE_SUFFIX = #USBLIBS = -L/usr/local/lib -lusb #EXE_SUFFIX = .exe -NAME = set-led +NAME = test OBJECTS = opendevice.o $(NAME).o diff --git a/client/set-led b/client/set-led deleted file mode 100644 index ec840111837e87ed0c9b1f4d57fbaac2e64d6f43..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 23439 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 diff --git a/client/set-led.c b/client/test.c similarity index 50% rename from client/set-led.c rename to client/test.c index 52b2a3b..e94047c 100644 --- a/client/set-led.c +++ b/client/test.c @@ -27,30 +27,16 @@ respectively. #include "../firmware/requests.h" /* custom request numbers */ #include "../firmware/usbconfig.h" /* device's VID/PID and names */ -static void usage(char *name) -{ - fprintf(stderr, "usage:\n"); - fprintf(stderr, " %s on ....... turn on LED\n", name); - fprintf(stderr, " %s off ...... turn off LED\n", name); - fprintf(stderr, " %s status ... ask current status of LED\n", name); -#if ENABLE_TEST - fprintf(stderr, " %s test ..... run driver reliability test\n", name); -#endif /* ENABLE_TEST */ -} - int main(int argc, char **argv) { usb_dev_handle *handle = NULL; const unsigned char rawVid[2] = {USB_CFG_VENDOR_ID}, rawPid[2] = {USB_CFG_DEVICE_ID}; char vendor[] = {USB_CFG_VENDOR_NAME, 0}, product[] = {USB_CFG_DEVICE_NAME, 0}; char buffer[4]; -int cnt, vid, pid, isOn; +int cnt, vid, pid; usb_init(); - if(argc < 2){ /* we need at least one argument */ - usage(argv[0]); - exit(1); - } + /* compute VID/PID from usbconfig.h so that there is a central source of information */ vid = rawVid[1] * 256 + rawVid[0]; pid = rawPid[1] * 256 + rawPid[0]; @@ -81,55 +67,44 @@ int cnt, vid, pid, isOn; } #endif - if(strcasecmp(argv[1], "status") == 0){ - cnt = usb_control_msg(handle, USB_TYPE_VENDOR | USB_RECIP_DEVICE | USB_ENDPOINT_IN, CUSTOM_RQ_GET_STATUS, 0, 0, buffer, sizeof(buffer), 5000); - if(cnt < 1){ - if(cnt < 0){ - fprintf(stderr, "USB error: %s\n", usb_strerror()); - }else{ - fprintf(stderr, "only %d bytes received.\n", cnt); - } - }else{ - printf("LED is %s\n", buffer[0] ? "on" : "off"); - } - }else if((isOn = (strcasecmp(argv[1], "on") == 0)) || strcasecmp(argv[1], "off") == 0){ - cnt = usb_control_msg(handle, USB_TYPE_VENDOR | USB_RECIP_DEVICE | USB_ENDPOINT_OUT, CUSTOM_RQ_SET_STATUS, isOn, 0, buffer, 0, 5000); - if(cnt < 0){ - fprintf(stderr, "USB error: %s\n", usb_strerror()); - } -#if ENABLE_TEST - }else if(strcasecmp(argv[1], "test") == 0){ - int i; - srandomdev(); - for(i = 0; i < 50000; i++){ - int value = random() & 0xffff, index = random() & 0xffff; - int rxValue, rxIndex; - if((i+1) % 100 == 0){ - fprintf(stderr, "\r%05d", i+1); - fflush(stderr); - } - cnt = usb_control_msg(handle, USB_TYPE_VENDOR | USB_RECIP_DEVICE | USB_ENDPOINT_IN, CUSTOM_RQ_ECHO, value, index, buffer, sizeof(buffer), 5000); - if(cnt < 0){ - fprintf(stderr, "\nUSB error in iteration %d: %s\n", i, usb_strerror()); - break; - }else if(cnt != 4){ - fprintf(stderr, "\nerror in iteration %d: %d bytes received instead of 4\n", i, cnt); - break; - } - rxValue = ((int)buffer[0] & 0xff) | (((int)buffer[1] & 0xff) << 8); - rxIndex = ((int)buffer[2] & 0xff) | (((int)buffer[3] & 0xff) << 8); - if(rxValue != value || rxIndex != index){ - fprintf(stderr, "\ndata error in iteration %d:\n", i); - fprintf(stderr, "rxValue = 0x%04x value = 0x%04x\n", rxValue, value); - fprintf(stderr, "rxIndex = 0x%04x index = 0x%04x\n", rxIndex, index); - } - } - fprintf(stderr, "\nTest completed.\n"); -#endif /* ENABLE_TEST */ - }else{ - usage(argv[0]); - exit(1); - } + int i,x,y,z,onoff = 0; + while (1) + { + onoff = (onoff == 0) ? 1 : 0; + for (x = 0; x <3; x++) + for (y = 0; y <3; y++) + for (z = 0; z <3; z++) + { + for (i = 0; i < 4; i++) + { + int v = 0; + if (i == 0) + v = x; + if (i == 1) + v = y; + if (i == 2) + v = z; + if (i == 3) + v = onoff; + cnt = -1; + do { + sleep(1); + cnt = usb_control_msg(handle, USB_TYPE_VENDOR | USB_RECIP_DEVICE | USB_ENDPOINT_OUT, CUSTOM_RQ_SET_STATUS, v, 0, buffer, 0, 5000); + if (cnt < 0) + { + if(usbOpenDevice(&handle, vid, vendor, pid, product, NULL, NULL, NULL) != 0){ + fprintf(stderr, "Could not find USB device \"%s\" with vid=0x%x pid=0x%x\n", product, vid, pid); + exit(1); + } + } + } while (cnt < 0); + + } + + fprintf(stdout, "%d %d %d %d\n",x,y,z,onoff); + } + } + usb_close(handle); return 0; }