Foxtable(狐表)用户栏目专家坐堂 → COM端口数据识别问题


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

主题:COM端口数据识别问题

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


加好友 发短信
等级:三尾狐 帖子:688 积分:4903 威望:0 精华:0 注册:2013/10/27 17:14:00
COM端口数据识别问题  发帖心情 Post By:2014/8/11 22:16:00 [显示全部帖子]

COM5端口数据监控采集的问题:

端口数据参数为

 

波特率:9600

1位起始位,8个数据位,1位停止位,无效验

数据以ASCII 码(及文本格式)发送,每个测量数据后以回车符结束,不断主动地发送。

 

如何一个一个地识别为正常的字符,并存到表中?

[此贴子已经被作者于2014-8-11 22:16:53编辑过]

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


加好友 发短信
等级:三尾狐 帖子:688 积分:4903 威望:0 精华:0 注册:2013/10/27 17:14:00
  发帖心情 Post By:2014/8/11 22:45:00 [显示全部帖子]

谢谢 这么晚了还在回复

 

这个串口通讯读了好几变了,但实无串口数据处理经验

 

Forms("窗口1").Controls("Label1").Text = e.Port.ReadExisting()

  使用这个直接输出的字符为 ?等一些特殊字符

 

Dim cnt As Integer = Ports("COM2").BytesToRead
If
cnt > 0 Then '缓冲区是否有数据
    Dim
Val(cnt - 1) As Byte
   
Ports("COM2").Read(val,0,cnt)
End If

 

这段代码也试用过,但不知啥意思,也没有效果。

 

使用COM端口调试软件获取的数据形式为:

 

C1 00 00 22 62 18 17

 

如果正确解析为:1通道 数据为8.93mm

 

请明示 如何获取解析数据8.93mm


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


加好友 发短信
等级:三尾狐 帖子:688 积分:4903 威望:0 精华:0 注册:2013/10/27 17:14:00
  发帖心情 Post By:2014/8/14 14:18:00 [显示全部帖子]

       这个数据的接收处理较复杂,对方提供了开发包有VB6实例,和VC实例程序,可以接受处理这个COM口的数据,现在想用VC开发一个OCX的COM控件,专门负责接收处理数据。然后再在狐表中调用这个COM控件,直接从COM控件里接收数据,这种方案能行不。

      如果能行,这个COM控件开发需要满足哪些特殊要求,从而方便与狐表配合处理?

  

      当然如果狐表能根据VB6的DEMO程序进行编程,从而直接通过狐表编程实现数据直接从COM口读取那更好。

 

[此贴子已经被作者于2014-8-14 14:19:33编辑过]

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


加好友 发短信
等级:三尾狐 帖子:688 积分:4903 威望:0 精华:0 注册:2013/10/27 17:14:00
  发帖心情 Post By:2014/8/14 14:36:00 [显示全部帖子]

这是VB6的DEMO COM端口数据接收处理示例程序,请官方帮看一下,如何在狐表中实现数据处理

 

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:vb6.rar


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


加好友 发短信
等级:三尾狐 帖子:688 积分:4903 威望:0 精华:0 注册:2013/10/27 17:14:00
  发帖心情 Post By:2014/8/17 23:15:00 [显示全部帖子]

用VS2010写了个OCX控件,已在系统中注册了。

 

OCX控件的使用说明 为

 

1.  ULONG OpenDevice(void);

首先要执行这一步,方可执行其它函数。

返回值:非0表示成功。如果返回0,那么打开不成功,后续无法操作。

 

2.  ULONG SetMeasureParameters(ULONG dbBaudRate, DOUBLE dbMultiplier, ULONG uDecCount);

功能:设置参数

参数说明:dbBaudRate:波特率,9600或4800

          dbMultiplier:放大倍数

uDecCount: 小数位数

   返回值:如果参数设置失败,返回0,否则返回非0值。

 

3.  ULONG IsInstantDataAvailable(void);

功能:查询即时测量数据是否已经收到。返回非0值时,可以开始读取即时测量数据,否则不能读取。

 

4.  ULONG IsPressedDataAvailable(void);

功能:查询是否有按钮按下时测量到的数据。返回值为非0值时,可以开始读取按钮按下的测量数据。

 

5.  ULONG ReadInstantData(ULONG* pID, DOUBLE* pdbData);

功能:读取即时测量数据

参数:pID:传递指针,返回本次读到的数据的通道号

     pdbData:指针,返回本次读到的即时数据值

 

6.  ULONG ReadPressedData(ULONG* pID, DOUBLE* pdbData);

功能:同上。读取的是按钮按下时测量到的数据。


 

那么FT系统能使用这个控件不

 


 回到顶部