2011-08-11 63 views
1

我需要從USB端口讀取數據,對其進行處理,然後將其傳輸到服務器。服務器與USB端口位於同一臺PC上。如何將數據從USB傳輸到服務器?

我想知道什麼是最好的方式去做這件事。

我已經想到了這種可能性是:

  • 桌面應用程序讀取從USB端口的數據,處理它,然後將其添加到服務器
  • 桌面應用程序的後端數據庫從USB讀取數據,處理並寫入服務器網頁目錄中的文本文件
  • 將原始USB數據傳輸到後端數據庫,然後在Web服務器頁面中處理它。

我在想第一個選項可能是最好的方法。如果是這樣,是否有任何好的庫/ API可以幫助我從USB讀取/添加到數據庫?如果這不是解決這個問題的最好方法,那會是什麼?

編輯:USB數據將來自芯片,可能是一個字符串,它不是來自usb棒的預格式化文件。我需要創建一個USB驅動程序還是什麼?

+0

什麼樣的數據? USB棒上的文件? – therealmarv

+0

@therealmarv某種字符串或緩衝區,我編輯了OP – Michael

回答

0

主要你需要一個芯片的驅動程序,以便Windows可以識別芯片並處理它的數據。對於這一點,你可能想使用Windows驅動程序工具包(http://msdn.microsoft.com/en-us/library/ff554690%28v=VS.85%29.aspx

的USB驅動程序,下面的文章將幫助您開始:http://blogs.msdn.com/b/usbcoreblog/archive/2009/10/10/getting-started-with-usb-driver-development.aspx

根據您的需求,然後在桌面,網絡或服務的應用程序可以執行數據傳輸到數據庫,我認爲這可能是微不足道的任何方式。

0

你需要有一個USB數據傳輸線(也稱爲USB數據連接線),這

支持API或SDK,然後使用下面的代碼:

void CU2uDlg::OnOK() 
{ 
BYTE  buf[65530]; 
LPU2URET pU2uRet; 
BOOL  bRet; 
int   ret; 
CString  msgstr; 

ret = u2u_open(); 
if (ret == -1){ 
    AfxMessageBox("Open U2U device Success."); 
}else{ 
    msgstr.Format("Open U2U device fail,return:%d", ret); 
    AfxMessageBox(msgstr); 
    return; 
} 

//send data 
bRet = u2u_SendData(buf, 65530, ret); 
if(!bRet) 
{ 
    msgstr.Format("Send data error,return:%d", ret); 
    AfxMessageBox(msgstr); 
    return; 
} 

//receive data 
bRet = u2u_RecvData(recvData, dataLen, ret); 
if(!bRet) 
{ 
    msgstr.Format("Receive data error,return:%d", ret); 
    AfxMessageBox(msgstr); 
    return; 
} 
u2u_close(FALSE); 

} 

參見:

Reference1Reference2

相關問題