USBHIDDeviceと通信しようとしています。このデバイスはWindowsで正常に動作しており、とを使用してレポートを送信したり、レポートを取り戻したりできWriteFile()
ますReadFile()
。
setReoprt()
Macでは、とを使用してデバイスとのインターフェイスを試みていますgetReport()
。ただしgetReport()
、データは返されませんが、エラーが返されます。
アプリケーションの何が問題になっていますか?
USBHIDDeviceと通信しようとしています。このデバイスはWindowsで正常に動作しており、とを使用してレポートを送信したり、レポートを取り戻したりできWriteFile()
ますReadFile()
。
setReoprt()
Macでは、とを使用してデバイスとのインターフェイスを試みていますgetReport()
。ただしgetReport()
、データは返されませんが、エラーが返されます。
アプリケーションの何が問題になっていますか?
非同期動作を利用するには、getAsyncEventSourceを使用して取得したイベントソースを実行ループに追加する必要があります。
上記の注記は、setReportのコメントの一部です。Uは最初にMacOSでのRunloopのrunloopメカニズムを学ぶ必要があるかもしれません。
ここでメカニズムを説明することは不可能なので。次の関数と順序は、 RunLoopに慣れたときにコーディングに役立つ場合があります(Googleで「CFRunLoop」を検索してみてください)。
CFRunLoopGetCurrent();
CFRunLoopRun();
CFRunLoopAddSource(CFRunLoopRef rl、CFRunLoopSourceRef source、CFStringRefモード);
CFRunLoopStop(CFRunLoopRef rl);(私は通常、コールバックメソッドでこの関数を呼び出します)