2013-01-23 40 views
0

我正在尋找將同步功能添加到我的一個C#應用程序。目的是,1個同步選項允許一個版本的應用程序通過USB電纜同步到另一個版本的應用程序。使用USB編寫C#同步應用程序

該應用程序是跨平臺的,現在使用Mono在Windows和Mac上實現,但最終還會移植到iOS和Android。

我想要做的就是通過USB電纜發送和接收數據。

這聽起來像是可行的東西?

+0

有關在此提出的問題類型的信息,請參閱FAQ。 –

+1

我覺得這裏沒有任何研究。我們在這裏引導有特定錯誤的人,而不是回答「我該怎麼做?」。的問題。 – Destrictor

+0

不正確的,我做了相當多的研究,但我沒有設法找到任何討論PC到PC數據通過USB僅PC到設備的數據傳輸,所以我想知道它是否可行。 –

回答

0

可行嗎?當然。這只是一個串行數據傳輸。您將不得不處理端口的打開和關閉以及數據的發送/接收,但這非常簡單。

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();  
    } 
} 

很明顯,你需要對收到的數據,做了什麼,那就是它應該用它做管道的另一端的東西。

+0

我想我正在努力通過USB,你的例子談論COM1這是一個串行端口。大概你建議可以打開一個USB端口,就好像它是一個串口一樣? –

+0

如果'port'爲null或在finally塊中處於無效狀態,它將拋出一個異常,這是你不應該做的事情。在這種情況下使用'使用'可能更好 –

+0

USB是一種串行協議。這不是COM,但基本原理是一樣的。爲USB選擇一個coms庫(http://code.google.com/p/csharp-usb-hid-driver/,http://www.icsharpcode.net/OpenSource/SharpUSBLib/default.aspx,不管)並對其進行編碼。 – Heather

0

這是一個非常古老的問題,但我最近寫了一篇博客文章描述如何實現這一點。簡單地使用像SharpUSBLib這樣的東西是行不通的,因爲你的iOS應用程序不能直接訪問USB端口。

http://thecodewash.blogspot.com/2017/05/communicating-with-your-ios-app-over.html

要回答你的問題(所以這個答案不只是一個鏈接),是的,它是絕對有可能這種利用USB即通常安裝iTunes的一部分複用守護進程(usbmuxd)程序來實現。該程序可以通過USB電纜創建與iOS設備的套接字連接,並允許您像使用其他套接字一樣通過套接字連接進行通信。該鏈接進入更多的細節。

希望這會有所幫助!