以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  如何用定时器接收串口数据及操作图表  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=175482)

--  作者:hbjzhht
--  发布时间:2022/3/6 22:23:00
--  如何用定时器接收串口数据及操作图表
各位老师:
第一次接触狐表,用的试用版,不能使用串口监视器,采用定时器接收。本次timetick事件有两个问题需要请教
1,运行时报错:给定的端口名称未以 COM/com 开头或未解析为有效的串行端口。
2   定时器画图表时,每秒画一个点,不是一次画10个点或几百个点,该如何编程

请各位老师帮忙指点,谢谢
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:test.table


timetick事件为:

Dim PortName As String =  e.Form.Controls("cmbPort").Value \'获得用户选择的串口名称


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

Dim Chart As WinForm.Chart \'定义一个图表变量
Dim Series As WinForm.ChartSeries \'定义一个图系变量
\'Chart= e.Form.Controls("Chart1") \' 引用窗口中的图表
\'Chart.SeriesList.Clear() \'清除图表原来的图系
Series = Chart.SeriesList.Add() \'增加一个图系
Series.Length = 500 \'新增图系包括10个数据点
If count <500 Then
count = count +1
    Series.X(count) = count \'指定水平坐标
    Series.Y(count) = 100 \'垂直坐标用随机数生成
    
End If


--  作者:有点蓝
--  发布时间:2022/3/6 22:36:00
--  
1、串口只有COM1、COM2、..这种名称,确保窗口已经插上设备,并且可以正常访问,且没有其它程序在使用这个串口
2、图表功能只能一次性全部输出,无法每秒画一个点

--  作者:hbjzhht
--  发布时间:2022/3/7 11:20:00
--  
嗯,好的,有点明白了,我再试试  谢谢您的指点