From 9bdf2f92bf95c69d668772e1c289ab89868aa738 Mon Sep 17 00:00:00 2001 From: Bernhard Tittelbach Date: Thu, 17 May 2012 06:14:24 +0000 Subject: usb lib git-svn-id: https://svn.spreadspace.org/mur.sat@415 7de4ea59-55d0-425e-a1af-a3118ea81d4c --- .../hhd70dongle/pcusbhid/rawhid_testinterface.c | 76 ++++++++++++++++++++++ 1 file changed, 76 insertions(+) create mode 100644 software/hhd70dongle/pcusbhid/rawhid_testinterface.c (limited to 'software/hhd70dongle/pcusbhid/rawhid_testinterface.c') diff --git a/software/hhd70dongle/pcusbhid/rawhid_testinterface.c b/software/hhd70dongle/pcusbhid/rawhid_testinterface.c new file mode 100644 index 0000000..8f19c4f --- /dev/null +++ b/software/hhd70dongle/pcusbhid/rawhid_testinterface.c @@ -0,0 +1,76 @@ +#include +#include +#include +#include +#include +#include +#if defined(OS_LINUX) || defined(OS_MACOSX) +#include +#include +#elif defined(OS_WINDOWS) +#include +#endif + +#include "hid.h" + + +void sendstr(char * tosend) +{ + rawhid_send(0, tosend, strlen(tosend),1000); +} + +int mtime_diff(struct timeval high,struct timeval low) +{ + int result=1000*(high.tv_sec-low.tv_sec); + result+=high.tv_usec/1000-low.tv_usec/1000; + return result; +} + +#define BUF_LEN 64 + +int main (int argc, char *argv[]) +{ + int i, r, num; + char buf[BUF_LEN]; + // C-based example is 16C0:0480:FFAB:0200 + unsigned int attemtps = 100; + while(attemtps--) + { + r = rawhid_open(1, 0x16C0, 0x0481, 0xFFAB, 0x0200); + if (r > 0) + break; + else + sleep(1.0); + } + if (r <= 0) + { + printf("no rawhid device found\n"); + return -1; + } + printf("found rawhid device\n\n"); + //~ printf("Clearing Buffer\n"); + //~ sendstr("c"); // clear the buffer + size_t len; + //~ struct timeval start_time,stop_time; + //~ gettimeofday(&start_time,NULL); + //~ gettimeofday(&stop_time,NULL); + //~ while (mtime_diff(stop_time,start_time)<1000) { + // check if any Raw HID packet has arrived + + while (1) + { + num = rawhid_recv(0, buf, BUF_LEN, 220); + if (num < 0) + { + printf("\nerror reading, device went offline\n"); + rawhid_close(0); + return 0; + } + else if (num == 0) + { + sleep(1.0); + } + buf[num]='\0'; + printf("%s\n",buf); + } +} -- cgit v1.2.3