3

Xubuntu 12.04 で libusb と libhid を使用して Measurement Computing 1208FS デバイスにデータを送信しようとしています。デバイスとそのエンドポイントを正常に識別し、プログラムのインターフェイスを要求することができました。

hid_interrupt_write() または libusb_interrupt_transfer() でエンドポイントに書き込もうとすると、「デバイスまたはリソースがビジーです」というエラー メッセージが表示されます。このエラーは通常、デバイスがドライバーに接続されているときに発生するようですが、ドライバーを切り離すことができたので、私の場合は問題ないと思います。

通信しようとしているエンドポイントとして現在 0x83 を使用しているコード スニペットを次に示します。

void SendToUSB(int value, HIDInterface* hid)
{
    hid_return ret;
    char packet[] = {value};
    unsigned int timeout = 1000;
    ret = hid_interrupt_write(hid, 0x83,  packet, 1, timeout); 

    if (ret == HID_RET_SUCCESS) printf("SUCCESS calling hid_interrupt_write\n");
    else printf("FAILURE calling hid_interrupt_write(): %s\n", strerror(errno));
}

私は USB デバイスのプログラミングにかなり慣れていないので、非常に些細なことを台無しにしてしまった可能性があります。どんな助けでも大歓迎です。

4

0 に答える 0