- for (;;)
- {
- byte req[8];
- put_u32_be(req, 1);
- put_u32_be(req+4, (1 << tst));
- tst = (tst+1) % 4;
-
- int transferred;
- if (err = libusb_bulk_transfer(devh, 0x01, req, 8, &transferred, 2000))
- die("Transfer failed: error %d\n", err);
- // printf("Transferred %d bytes\n", transferred);
-
- unsigned char resp[64];
- int received;
- if (err = libusb_bulk_transfer(devh, 0x82, resp, 64, &received, 2000))
- die("Receive failed: error %d\n", err);
- // printf("Received %d bytes\n", received);
-
- if (received >= 4)
- {
- int status = get_u32_be(resp);
- if (status)
- msg(L_ERROR, "Received error status %08x", status);
- }
- else
- msg(L_ERROR, "Received short packet");
-
- put_u32_be(req, 2);
- put_u32_be(req+4, 0);
- if (err = libusb_bulk_transfer(devh, 0x01, req, 8, &transferred, 2000))
- die("Transfer failed: error %d\n", err);
- if (err = libusb_bulk_transfer(devh, 0x82, resp, 64, &received, 2000))
- die("Receive failed: error %d\n", err);
- if (received >= 4)
- {
- int status = get_u32_be(resp);
- if (status)
- msg(L_ERROR, "Received error status %08x", status);
- else
- msg(L_INFO, "Temperature: %d\n", get_u32_be(resp+4));
- }
- else
- msg(L_ERROR, "Received short packet");