#include #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 #define NUM_DEVICE_IDS 3 uint16_t dev_ids[] = {0x0481, 0x0480, 0x0482}; int main (int argc, char *argv[]) { int r, num, d; char buf[BUF_LEN]; // C-based example is 16C0:0480:FFAB:0200 unsigned int attemtps = 100; while(attemtps--) { for (d=0; d 0) break; } 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"); while (1) { num = rawhid_recv(0, buf, BUF_LEN, 250); if (num < 0) { printf("\nerror reading, device went offline\n"); rawhid_close(0); return 0; } if (num > 0) { buf[num]='\0'; printf("%s\n",buf); fflush(0); } } }