2 回答

TA貢獻(xiàn)1797條經(jīng)驗(yàn) 獲得超4個(gè)贊
經(jīng)過(guò)評(píng)論里和你的討論,我想我可以回答你的問(wèn)題了。
正如您自己發(fā)現(xiàn)的那樣,該錯(cuò)誤絕對(duì)與您懷疑的那行沒(méi)有任何關(guān)系。
您會(huì)收到一個(gè)TimeoutException
有意義的消息,因?yàn)?code>InitilizeSerialPort您將讀取超時(shí)設(shè)置為 10 毫秒。這是非常短的,特別是考慮到您正在讀取整行,而不僅僅是幾個(gè)字節(jié)。
你確實(shí)在那里使用了更大的數(shù)字。默認(rèn)值為 500 毫秒,這是一個(gè)相當(dāng)不錯(cuò)的時(shí)間。如果您確實(shí)需要降低,請(qǐng)嘗試一下,但在大多數(shù)情況下您不需要更改它。由于您正在閱讀一整行,因此實(shí)際上 500 毫秒很可能還不夠,具體取決于您每行獲得的信息量。嘗試一些值,直到它起作用(但如果 90 就足夠了,請(qǐng)不要將其設(shè)置為 100,而是給它一點(diǎn)空間)。
也許值得一提的是,超時(shí)當(dāng)然是最大值。如果指定 1000ms,并且讀取需要 100ms,它將在 100ms 后返回,而不等待超時(shí)。要解決此問(wèn)題,您可以完全刪除設(shè)置 -property 的行ReadTimeout
(它將使用默認(rèn)值 500ms)或自行將其設(shè)置為更高的值。
遺憾的是,我無(wú)法幫助您UnauthorizedAccessException
解決上一條評(píng)論中提到的問(wèn)題,因?yàn)檫@很大程度上取決于您的設(shè)置。如果您需要幫助,您應(yīng)該提出一個(gè)新問(wèn)題。
編輯:
順便說(shuō)一句,你正在TimeoutException
完全吞下GetMessage
. 不要那樣做。當(dāng)另一個(gè)錯(cuò)誤發(fā)生時(shí),您已經(jīng)在編寫控制臺(tái)消息,因此也可以在那里執(zhí)行此操作。同樣的方法也適用于SocketException
剛剛吞下的東西。永遠(yuǎn)不要吞下異常。

TA貢獻(xiàn)1890條經(jīng)驗(yàn) 獲得超9個(gè)贊
您是否檢查過(guò)以確保args[1]
、args[2]
等是您認(rèn)為的那樣?嘗試將 更改args[1]
為args[0]
并將其余部分減少 1?args[2]
->args[1]
等。
- 2 回答
- 0 關(guān)注
- 184 瀏覽
添加回答
舉報(bào)