![]() ![]() ![]() ![]() |
|||||
|
|||||
樓主 4456 ![]()
![]() |
我打的文字是 該裝置的scpi指令 ex: VOLT 5 請問為甚麼 我都會出現 並未將物件參考設定為物件的執行個體 我爬文 說是該new的物件沒有new 我用逐步執行 我還是不懂是甚麼沒有new public partial class Form1 : Form { DateTime LastDataEventDate = DateTime.Now; UsbDevice MyUsbDevice; UsbDeviceFinder MyUsbFinder = new UsbDeviceFinder(0x164E, 0x258B); UsbEndpointWriter writer = null ; UsbEndpointReader reader = null; UsbEndpointWriter writer1; public Form1() { InitializeComponent(); } private void Form1_Load(object sender, EventArgs e) { writer1 = MyUsbDevice.OpenEndpointWriter(WriteEndpointID.Ep03); reader = MyUsbDevice.OpenEndpointReader(ReadEndpointID.Ep02); } private void button1_Click(object sender, EventArgs e) { // Find and open the usb device. MyUsbDevice = UsbDevice.OpenUsbDevice(MyUsbFinder); } private void btnSend_Click(object sender, EventArgs e) { int bytesWritten; try { writer.Write(Encoding.Default.GetBytes(txtSend.Text), 2000, out bytesWritten); } catch (Exception ex) { MessageBox.Show("Error:" + ex.Message); } finally { } } }
搜尋相關Tags的文章:
[ 並未將物件參考設定為物件的執行個體 ] ,
本篇文章發表於2017-10-24 22:20 |
1樓
不錯的參考
Ader Chen ![]() |
不好意思, 我沒用過 LibUsbDotNet (我們大多使用原廠提供的方式),
所以以下姑且參考看看... "並未將物件參考設定為物件的執行個體" 應該是指 Form1_Load 時還沒建立 MyUsbDevice 執行個體, 看您程式似乎是在 button1_Click 才會產生出來, 所以先將 Form1_Load 內的程式註解掉, 移到產生 MyUsbDevice 之後, 例如: 只是這樣就要注意順序, 先 button1_Click 再 btnSend_Click, ...測試時還好, 實用時最好修改嚴謹一點... 以上僅供參考...
本篇文章回覆於2017-10-25 00:06
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔-- |
2樓
最有價值解答
Ader Chen ![]() |
另外, 看程式 MyUsbFinder 在 Load 之前就 new 了,
所以或許也可以將 button1_Click 內的程式都移到 Form1_Load, 例如: 就不用擔心 btnSend_Click 順序. 當然, 我沒用過 LibUsbDotNet, 說不定會有其他問題... 姑且參考看看囉.
本篇文章回覆於2017-10-25 00:14
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔-- |
3樓 |
不好意思, 再囉嗦一下:
最好再加個找不到 USB device 時的處理, 例如在 MyUsbDevice = UsbDevice.OpenUsbDevice(MyUsbFinder); 之後 加個 if (MyUsbDevice == null) 之類的處理程序. 我是蠻懷疑您之前說的 P9611A 能否接受這樣傳 SCPI 指令... 希望您成功.
本篇文章回覆於2017-10-25 00:33
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔-- |
回覆 |
如要回應,請先登入. |