2 回答
TA贡献1797条经验 获得超4个赞
经过评论里和你的讨论,我想我可以回答你的问题了。
正如您自己发现的那样,该错误绝对与您怀疑的那行没有任何关系。
您会收到一个TimeoutException
有意义的消息,因为InitilizeSerialPort
您将读取超时设置为 10 毫秒。这是非常短的,特别是考虑到您正在读取整行,而不仅仅是几个字节。
你确实在那里使用了更大的数字。默认值为 500 毫秒,这是一个相当不错的时间。如果您确实需要降低,请尝试一下,但在大多数情况下您不需要更改它。由于您正在阅读一整行,因此实际上 500 毫秒很可能还不够,具体取决于您每行获得的信息量。尝试一些值,直到它起作用(但如果 90 就足够了,请不要将其设置为 100,而是给它一点空间)。
也许值得一提的是,超时当然是最大值。如果指定 1000ms,并且读取需要 100ms,它将在 100ms 后返回,而不等待超时。要解决此问题,您可以完全删除设置 -property 的行ReadTimeout
(它将使用默认值 500ms)或自行将其设置为更高的值。
遗憾的是,我无法帮助您UnauthorizedAccessException
解决上一条评论中提到的问题,因为这很大程度上取决于您的设置。如果您需要帮助,您应该提出一个新问题。
编辑:
顺便说一句,你正在TimeoutException
完全吞下GetMessage
. 不要那样做。当另一个错误发生时,您已经在编写控制台消息,因此也可以在那里执行此操作。同样的方法也适用于SocketException
刚刚吞下的东西。永远不要吞下异常。
TA贡献1890条经验 获得超9个赞
您是否检查过以确保args[1]
、args[2]
等是您认为的那样?尝试将 更改args[1]
为args[0]
并将其余部分减少 1 args[2]
->args[1]
等。
- 2 回答
- 0 关注
- 118 浏览
添加回答
举报