看板 C_and_CPP 關於我們 聯絡資訊
開發平台(Platform): (Ex: VC++, GCC, Linux, ...) VC2013 問題(Question): 目前嘗試用usb port去跟儀器溝通,在google與參考後 我的流程如下: 1.先建立DEV_BROADCAST_DEVICEINTERFACE struct去定義dbcc name等相關參數 2.呼叫RegisterDeviceNotification 3.接著讓程式跑到OnSystemDeviceChanged與DeviceChangeHandler,讓程式開始 偵測device 這時候debug一下,發現在第二步時,dbcc(像是dbcc size等參數)所有參數都是空的 接著不管怎麼插拔device,程式都無法在OnSystemDeviceChanged去切換USB狀態 想請問問題會不會在GUID_DEVINTERFACE_LIST的陣列中的數值是否需要修改? static const GUID GUID_DEVINTERFACE_LIST[] = { // GUID_DEVINTERFACE_USB_DEVICE { 0xA5DCBF10, 0x6530, 0x11D2, { 0x90, 0x1F, 0x00, 0xC0, 0x4F, 0xB9, 0x51, 0xED } }, // GUID_DEVINTERFACE_DISK { 0x53f56307, ...................................(略) }}, ... ... }; 另外如果確定儀器的port是固定的話,是否可以省略哪些步驟呢? 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 36.224.101.70 ※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1433429735.A.4C1.html
celen99: 什麼儀器 儀器應該有user guide可參考 06/05 08:56
flylover: 推樓上,或問廠商有沒有提供library 06/05 21:10
是Aeroflex 8331,user guide上只有告訴我如何下指令而已 另外想請問,若連上儀器後,他是用什麼方式跟儀器溝通呢? 我猜想應該是WIN API吧,不過不知道用什麼API溝通 不知道有大大知道嗎?謝謝 ※ 編輯: williamsm (114.36.232.18), 06/06/2015 00:01:57 ※ 編輯: williamsm (114.36.232.18), 06/06/2015 09:03:31
celen99: 他有一個demo的tool裡面應該有usb driver 06/06 11:39
celen99: 第一步應該要先得到儀器的address 06/06 11:40
celen99: 它看起來是透NI visa溝通 06/06 11:44
williamsm: 儀器上只有usb與rs232沒有gpib 06/06 11:51
williamsm: 請問c大 address指的是GUID碼或是PID? 06/06 11:53
celen99: 不是 visa是儀器溝通的語言 06/06 12:58
sd016808: 除非是想練功 不然怎麼不用NI VISA或者CSerialPort之類 06/06 12:58
sd016808: 你只要看儀器Command下對應的read write 這樣比較省事 06/06 13:00
celen99: 就visa address. Usb::開頭的字樣 06/06 13:02
celen99: 對用rs-232也行 設對baud rate就可以控制 06/06 13:07
我的目的只是想成功控制儀器,至於方式不限 剛剛用S大的方式,用CSerial::Open有成功連結com port 但下command時,read回來的是儀器一開始進去的值文字,這邊還在確認問題那哪裡 (例如我下reset command,儀器回覆是Welcome Axxxx...) 不好意思,請問c大指的visa address. Usb::是否有關鍵字可參考呢? 謝謝 ※ 編輯: williamsm (114.36.232.18), 06/06/2015 15:56:01
celen99: comport有看到東西 就先用超級終端機類似的工具 先手動下 06/06 16:52
celen99: 命令 當整個流程都了解 再自動化 06/06 16:52