| 477 | } |
| 478 | |
| 479 | long |
| 480 | MainWindow::onTimeout(FXObject *sender, FXSelector sel, void *ptr) |
| 481 | { |
| 482 | unsigned char buf[256]; |
| 483 | int res = hid_read(connected_device, buf, sizeof(buf)); |
| 484 | |
| 485 | if (res > 0) { |
| 486 | FXString s; |
| 487 | s.format("Received %d bytes:\n", res); |
| 488 | for (int i = 0; i < res; i++) { |
| 489 | FXString t; |
| 490 | t.format("%02hhx ", buf[i]); |
| 491 | s += t; |
| 492 | if ((i+1) % 4 == 0) |
| 493 | s += " "; |
| 494 | if ((i+1) % 16 == 0) |
| 495 | s += "\n"; |
| 496 | } |
| 497 | s += "\n"; |
| 498 | input_text->appendText(s); |
| 499 | input_text->setBottomLine(INT_MAX); |
| 500 | } |
| 501 | if (res < 0) { |
| 502 | input_text->appendText("hid_read() returned error\n"); |
| 503 | input_text->setBottomLine(INT_MAX); |
| 504 | } |
| 505 | |
| 506 | getApp()->addTimeout(this, ID_TIMER, |
| 507 | 5 * timeout_scalar /*5ms*/); |
| 508 | return 1; |
| 509 | } |
| 510 | |
| 511 | long |
| 512 | MainWindow::onMacTimeout(FXObject *sender, FXSelector sel, void *ptr) |