以文本方式查看主题

-  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 

但是返回的却是明文!也就是
 !&#0
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
--  
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 &= val(i) & " "
    Next
    e.Form.Controls("TextBox5").value = str
End If

 

https://msdn.microsoft.com/zh-cn/library/system.globalization.numberstyles.aspx

 


--  作者:lhpc120
--  发布时间:2015/6/14 17:09:00
--  
谢谢老师,学习了!