X-Git-Url: https://git.realraum.at/?a=blobdiff_plain;f=rf433rcv%2Fpc%2Frawhid_test.c;h=38f34015ccbe11323f5b4597f2e7d9f8ffb86170;hb=ac71234587241032871cfb0745471f011fcbb943;hp=7bea89248fc67ba51844261b45a6516ff835ef06;hpb=deb2b278d460a716e0e2d8be370b1ee8f8963e34;p=svn42.git diff --git a/rf433rcv/pc/rawhid_test.c b/rf433rcv/pc/rawhid_test.c index 7bea892..38f3401 100644 --- a/rf433rcv/pc/rawhid_test.c +++ b/rf433rcv/pc/rawhid_test.c @@ -1,6 +1,7 @@ #include #include #include +#include #if defined(OS_LINUX) || defined(OS_MACOSX) #include @@ -14,12 +15,15 @@ static char get_keystroke(void); +void sendstr(char * tosend) +{ + rawhid_send(0, tosend, strlen(tosend),1000); +} -int main() +int main (int argc, char *argv[]) { int i, r, num; char c, buf[64]; - // C-based example is 16C0:0480:FFAB:0200 r = rawhid_open(1, 0x16C0, 0x0480, 0xFFAB, 0x0200); if (r <= 0) { @@ -30,34 +34,63 @@ int main() return -1; } } - printf("found rawhid device\n"); - - while (1) { - // check if any Raw HID packet has arrived - num = rawhid_recv(0, buf, 64, 220); - if (num < 0) { - printf("\nerror reading, device went offline\n"); - rawhid_close(0); - return 0; - } - if (num > 0) { - printf("\nrecv %d bytes:\n", num); - for (i=0; i= 32) { - printf("\ngot key '%c', sending...\n", c); - buf[0] = c; - for (i=1; i<64; i++) { - buf[i] = 0; - } - rawhid_send(0, buf, 64, 100); - } - } +// printf("found rawhid device\n"); + if (argc>1) + { + FILE * f = fopen (argv[1], "r"); + if (!f) + return -3; + printf("Clearing Buffer\n"); + sendstr("c"); // clear the buffer + buf[0]='f'; + while ( fread(buf+1, 1, 63, f) ) + { + + rawhid_send(0, buf, 64, 1000); //fill the buffer + printf("Sending Buffer\n"); + } + printf("Executing Send command\n"); + sendstr("s\x10"); // send 4 times + size_t len = rawhid_recv(0, buf, 64, 255); + for(i=0;i= 32) { + printf("\ngot key '%c', sending...\n", c); + buf[0] = c; + for (i=1; i<64; i++) { + buf[i] = 0; + } + rawhid_send(0, buf, 64, 100); + } + } + } } #if defined(OS_LINUX) || defined(OS_MACOSX)