C#アプリケーションの1つに同期機能を追加することを検討しています。同期オプションの1つは、あるバージョンのアプリがUSBケーブルを介して別のバージョンのアプリと同期できるようにすることを目的としています。
このアプリはクロスプラットフォームであり、現在Monoを使用してWindowsとMacに実装されていますが、最終的にはiOSとAndroidにも移植される予定です。
私がやりたいのは、USBケーブルを介してデータを送受信することだけです。
これは実行可能なもののように聞こえますか?
C#アプリケーションの1つに同期機能を追加することを検討しています。同期オプションの1つは、あるバージョンのアプリがUSBケーブルを介して別のバージョンのアプリと同期できるようにすることを目的としています。
このアプリはクロスプラットフォームであり、現在Monoを使用してWindowsとMacに実装されていますが、最終的にはiOSとAndroidにも移植される予定です。
私がやりたいのは、USBケーブルを介してデータを送受信することだけです。
これは実行可能なもののように聞こえますか?
実行可能ですか?もちろん。単なるシリアルデータ転送です。ポートの開閉とデータの送受信を処理する必要がありますが、それは非常に簡単です。
public void SendDataOverSerial(string data) {
try {
SerialPort port = new SerialPort("COM1", 9600, Parity.None, 8, StopBits.One);
port.Open();
port.Write(data);
}
finally {
port.Close();
}
}
明らかに、データを受け取り、それを使って行うべきことを何でもしたパイプの反対側に何かが必要になります。
これはかなり古い質問ですが、私は最近、これを達成する方法を説明するブログ投稿を書きました。iOSアプリはUSBポートに直接アクセスできないため、SharpUSBLibのようなものを使用するだけでは機能しません。
http://thecodewash.blogspot.com/2017/05/communicating-with-your-ios-app-over.html
あなたの質問に答えるために(したがって、この答えは単なるリンクではありません)、はい、通常iTunesの一部としてインストールされるUSB多重化デーモン(usbmuxd)プログラムを利用してこれを達成することは間違いなく可能です。このプログラムは、USBケーブルを介してiOSデバイスへのソケット接続を作成し、他のソケットと同じようにそのソケット接続を介して通信できるようにします。リンクはさらに詳細になります。
お役に立てれば!