0

このデバイスを使用していますが、2 つのインターフェイスがあります。USB デバイスの lsusb 情報は、以下のリンクにあります。 https://github.com/zougloub/libseek

カメラには 2 つのインターフェイスがあり、1 つ目は iAP インターフェイスで、2 つ目は com.thermal.pit206 インターフェイスです。iAP インターフェイスに基づいてアプリケーションを作成した理由は次のとおりです。私が iAP インターフェースを採用した理由は、他の人が GitHub でそうしていたからです。

iAP インターフェイスで Winusb_ControlTrasnfer 関数を使用できます。WinUSB ハンドルを初期化し、それを使用してコマンドを送受信したり、パイプを読み取ったりできます。

ただし、com.thermal.pit206 インターフェイスを使用すると、WinUSB ハンドルを初期化できますが、コマンドを送信または取得できません。

void CommandTransfer(WINUSB_INTERFACE_HANDLE winIHandle, UCHAR requestTypeI, UCHAR requestI, USHORT valueI, USHORT indexI, USHORT lengthI, PUCHAR dataIn)
{
    WINUSB_SETUP_PACKET packet;
    ZeroMemory(&packet, sizeof(WINUSB_SETUP_PACKET));
    packet.RequestType = requestTypeI;
    packet.Request = requestI;
    packet.Value = valueI;
    packet.Index = indexI;
    packet.Length = lengthI;

    ULONG dataLength = 0;

    if (!WinUsb_ControlTransfer(winIHandle, packet, dataIn, lengthI, &dataLength, NULL))
    {
        printf("ERROR: WinUsb_ControlTransfer, Windows Error Code - %d \n", GetLastError());
    }
} 

上記は、コマンドをデバイスに送信するために使用するコードのコピーです。

iAP インターフェイスを使用しているときにデバイスにコマンドを送信できる理由がわかりませんが、com.thermal.pir206 インターフェイスを使用しているときには送信できません。

ありがとう!役立つリンク/情報は大歓迎です。

4

1 に答える 1