以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 请问能否直接读取来自COM口的十进制ASCII码? (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=69990) |
|
-- 作者:lhpc120 -- 发布时间:2015/6/14 11:17:00 -- 请问能否直接读取来自COM口的十进制ASCII码? 来自com口设备的数据是十进制ASCII码,但是通过串口监视器读到的却是明文,也就是利用十进制ASCII码转换后的字符串,请问能否获取不转换的? 因为还要将十进制ASCII转换后再进行计算里面的某些值~
|
|
-- 作者:大红袍 -- 发布时间:2015/6/14 12:55:00 -- 不是可以读取字节的么?
http://www.foxtable.com/help/topics/1979.htm
|
|
-- 作者:lhpc120 -- 发布时间:2015/6/14 16:33:00 -- 读取的是字节数? |
|
-- 作者:lhpc120 -- 发布时间:2015/6/14 16:35:00 -- Dim cnt As Integer = Ports("COM3").BytesToRead If cnt > 0 Then \'缓冲区是否有数据 Dim Val(cnt - 1) As Byte Ports("COM3").Read(val,0,cnt) For i As Integer = 0 To val.Length - 1 val(i) = Byte.Parse(val(i), System.Globalization.NumberStyles.HexNumber) Next Dim bstr As String = val e.Form.Controls("TextBox5").value = bstr End If 小弟比较拙,没明白里面的用法?我想怎么才能把接收到的数据传送到TextBox5控件呢?请明示!
|
|
-- 作者:lhpc120 -- 发布时间:2015/6/14 16:41:00 -- 也就是说,我录入的是 02 21 26 03 希望返回的也是 02 21 26 23 30 0A 34 31 33 31 36 37 37 39 32 39 24 31 38 33 0A 03 但是返回的却是明文!也就是 !� 4131677929$183 如果能做到不返回明文而是返回ASCII呢?
|
|
-- 作者:大红袍 -- 发布时间:2015/6/14 16:57:00 -- Dim cnt As Integer = Ports("COM3").BytesToRead If cnt > 0 Then \'缓冲区是否有数据 Dim Val(cnt - 1) As Byte Ports("COM3").Read(val,0,cnt) Dim str As String = "" For i As Integer = 0 To val.Length - 1 str &= Byte.Parse(val(i), System.Globalization.NumberStyles.HexNumber) & " " Next e.Form.Controls("TextBox5").value = str End If |
|
-- 作者:lhpc120 -- 发布时间:2015/6/14 16:58:00 -- 谢谢老师,我测试下 |
|
-- 作者:lhpc120 -- 发布时间:2015/6/14 17:05:00 -- 老师,跟着问,请问转换十进制的枚举类是什么呢?这个您应该用的C#里面的内容吧? |
|
-- 作者:大红袍 -- 发布时间:2015/6/14 17:08:00 --
https://msdn.microsoft.com/zh-cn/library/system.globalization.numberstyles.aspx
|
|
-- 作者:lhpc120 -- 发布时间:2015/6/14 17:09:00 -- 谢谢老师,学习了! |