以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 求助:身高测量仪串口监视器读取代码 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=28897) |
-- 作者:sophia -- 发布时间:2013/2/21 19:15:00 -- 求助:身高测量仪串口监视器读取代码 今天写了一个身高测量仪的串口数据代码但是报错 说明书的说明是这样 二 直接传送 此种方式下人体秤不受计算机控制,每测量完成后立即通过串口发送测量结果。发送格式如下: 例:W:0825 H:1825 表示体重=82.5kg 身高=182.5cm 注: 1 字符为ASCII码,并以回车(0d) 换行(0a) 结束。 2
此方式是人体秤开机后默认通讯方式。
三 通讯协议 通讯协议:RS-232 通讯格式:波特率=4800bt 起始位=1bit 数据位=8bit 停止位=1 我只想读取身高数据到数据库相应字段里,代码如下 Dim s As String = e.Port.ReadExisting Dim Values() As String Values = s.split(":") Dim r As Row =Tables("驾证业务").current r("身高") = Values(2) forms("身高测量").controls("sh").text = Values(2) & "cm" 执行后提示: 错误代码位置:串口监视器.DataReceived system.IndexOutOutOfRangeException:索引超出了数组界限。 在 UserCode.DataReceived(DataReceivedEventArgs e) 不知为何 是不是因为 注: 1 字符为ASCII码,并以回车(0d) 换行(0a) 结束。
上述代码错误在哪里,应该怎么改 |
-- 作者:狐狸爸爸 -- 发布时间:2013/2/21 19:20:00 -- Dim s As String = e.Port.ReadExisting Dim Values() As String If s.Indexof(":") >0 Then Values = s.split(":") Dim r As Row =Tables("驾证业务").current r("身高") = Values(2) forms("身高测量").controls("sh").text = Values(2) & "cm" Else MessageBox.show("数据格式错误") End if |
-- 作者:zerov -- 发布时间:2013/2/21 19:51:00 -- 好样的,想不到狐表这么有用 |
-- 作者:sophia -- 发布时间:2013/2/24 9:40:00 -- 为了测试测量仪串口的读取能力写了以下代码 Dim s As String = e.Port.ReadExisting() forms("身高测量").controls("tb1").text = s 此代码确实能读取测量结果 但是只闪一下就看不见了 此代码有错吗 怎样才能读取到文本框里呢 在超级终端里可是能读取出来数据
|
-- 作者:lin_hailun -- 发布时间:2013/2/25 12:26:00 -- 应该不会错吧?这样试一下。 Dim s As String = e.Port.ReadExisting() msgbox(s) |