Foxtable(狐表)用户栏目专家坐堂 → 求助:身高测量仪串口监视器读取代码


  共有8213人关注过本帖树形打印复制链接

主题:求助:身高测量仪串口监视器读取代码

帅哥哟,离线,有人找我吗?
sophia
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小狐 帖子:334 积分:2722 威望:0 精华:0 注册:2010/5/20 13:07:00
求助:身高测量仪串口监视器读取代码  发帖心情 Post By: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) 结束。

上述代码错误在哪里,应该怎么改


 回到顶部
帅哥哟,离线,有人找我吗?
狐狸爸爸
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By: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
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:867 积分:6210 威望:0 精华:0 注册:2012/11/24 20:44:00
  发帖心情 Post By:2013/2/21 19:51:00 [只看该作者]

好样的,想不到狐表这么有用

 回到顶部
帅哥哟,离线,有人找我吗?
sophia
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小狐 帖子:334 积分:2722 威望:0 精华:0 注册:2010/5/20 13:07:00
  发帖心情 Post By:2013/2/24 9:40:00 [只看该作者]

为了测试测量仪串口的读取能力写了以下代码

Dim s As String = e.Port.ReadExisting()
forms("身高测量").controls("tb1").text =  s

此代码确实能读取测量结果 但是只闪一下就看不见了
此代码有错吗 怎样才能读取到文本框里呢
在超级终端里可是能读取出来数据图片点击可在新窗口打开查看
图片点击可在新窗口打开查看

 回到顶部
帅哥哟,离线,有人找我吗?
lin_hailun
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:狐神 帖子:6708 积分:34304 威望:0 精华:11 注册:2012/8/18 23:10:00
  发帖心情 Post By:2013/2/25 12:26:00 [只看该作者]

 应该不会错吧?这样试一下。

Dim s As String = e.Port.ReadExisting()
msgbox(s)

 回到顶部