串口读取数据如何以表格形式实时显示

cl0201 2015-07-18 10:25:34
各位,本人纯菜鸟,刚接触C#没几天,想要用串口读取下位机数据并在上位机上以表格形式显示,类似下图所示的。在网上看了看,有的说是要用datagridview还要连接数据库,但是不太明确实施的步骤。请教各位指点一下思路,比如应该用什么控件,先干什么,后干什么等等,先谢过。
...全文
755 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
cl0201 2015-07-28
  • 打赏
  • 举报
回复
引用 6 楼 diaodiaop 的回复:
假设你的通讯协议解析之后有以下几个字段 itemID,itemValue 是多条记录的. 假设有一组数据(01-00-02-05-03-08) 3条记录 itemID分别是01 02 03 值分别是00 05 08 你就要构造出来以下的datatable itemID itemValue 01 00 02 05 03 08 那你实例化的时候 就应该这样(手写可能有误)

datatable dt=new datatable();
dt.colums.add("itemID",typeof(string));
dt.colums.add("itemname",typeof(string));
这样一个符合你协议的结果集的容器就有了. 然后你要循环你的"数据"(01-00-02-05-03-08)

for (int i=0;i<data.length/2;i++)
{
  //因为2个字节是一组,所以要循环一半就够了.
  dt.rows.add("","");//第一次01 00  第二次02 05 第三次 03 08
}
然后在执行DataSource绑定足以
感谢这么详细的指导,按照你的步骤我基本上已经能够将数据以表格的形式显示。 我现在还有个想法,就是在我1楼提到的那个表格中,除了参数值到时候需要动态刷新之外,其他几项一旦确定就不用再变,所以我想能够第一次通过串口通讯得到这5项数据后(参数值可以设置一个默认值),能够生成一个类似数据库或者项目文件的东西,并且这个东西在未连接串口通讯的时候可以在表格中打开并且符合这个表格的格式,使操作者能够查看参数的ID、参数描述等。然后当使用一个按钮使能串口接收数据之后再将参数值这一项动态的刷新。 请教这个应该怎么操作,是否要用到数据库的相关知识?先谢过。
by_封爱 版主 2015-07-21
  • 打赏
  • 举报
回复
假设你的通讯协议解析之后有以下几个字段 itemID,itemValue 是多条记录的. 假设有一组数据(01-00-02-05-03-08) 3条记录 itemID分别是01 02 03 值分别是00 05 08 你就要构造出来以下的datatable itemID itemValue 01 00 02 05 03 08 那你实例化的时候 就应该这样(手写可能有误)

datatable dt=new datatable();
dt.colums.add("itemID",typeof(string));
dt.colums.add("itemname",typeof(string));
这样一个符合你协议的结果集的容器就有了. 然后你要循环你的"数据"(01-00-02-05-03-08)

for (int i=0;i<data.length/2;i++)
{
  //因为2个字节是一组,所以要循环一半就够了.
  dt.rows.add("","");//第一次01 00  第二次02 05 第三次 03 08
}
然后在执行DataSource绑定足以
cl0201 2015-07-20
  • 打赏
  • 举报
回复
引用 1 楼 caoqinghua 的回复:
1.连接串口采集数据 2.将采集到的数据整理存储到datatable 3.将datatable绑定到datagridview
请教第二步具体如何实现,尤其是在vs中可视化界面下如何建立datatable并将数据存储到其中?本人初学,很多基础的东西还不太会,有没有相关的资料或者例程推荐的?
by_封爱 版主 2015-07-20
  • 打赏
  • 举报
回复
首先 你得会串口 最简单的 也要通过DataReceived把需要的数据读取完整...这是第一点.. 其次 解析出来的byte[] 得按照你的硬件协议来解析.比如10个字节 第一个代表XX 第二个代表OO 以此类推.. 然后 你要实例化一个结果集 比如List<T>或者是datatable之类的"容器" 把你上面找到的记录装到这个容器中(可能有多条记录) 最后拖一个datagridview把设置他的DataSource是上面的结果集就行了. 不最要注意下串口的DataReceived不是UI线程..所以要

 datagridview.Invoke(new Action(() =>
            {
                datagridview.DataSource=XXOO;
            }));
caoqinghua 2015-07-20
  • 打赏
  • 举报
回复
1.连接串口采集数据 2.将采集到的数据整理存储到datatable 3.将datatable绑定到datagridview
cl0201 2015-07-20
  • 打赏
  • 举报
回复
引用 2 楼 diaodiaop 的回复:
首先 你得会串口 最简单的 也要通过DataReceived把需要的数据读取完整...这是第一点.. 其次 解析出来的byte[] 得按照你的硬件协议来解析.比如10个字节 第一个代表XX 第二个代表OO 以此类推.. 然后 你要实例化一个结果集 比如List<T>或者是datatable之类的"容器" 把你上面找到的记录装到这个容器中(可能有多条记录) 最后拖一个datagridview把设置他的DataSource是上面的结果集就行了. 不最要注意下串口的DataReceived不是UI线程..所以要

 datagridview.Invoke(new Action(() =>
            {
                datagridview.DataSource=XXOO;
            }));
我已经能接收串口数据了,正是用的DataReceived。 后边的步骤正是我困惑的,我先按照你说的试试,有问题再请教
cl0201 2015-07-20
  • 打赏
  • 举报
回复
引用 1 楼 caoqinghua 的回复:
1.连接串口采集数据 2.将采集到的数据整理存储到datatable 3.将datatable绑定到datagridview
感谢指点
!!!超级单片机开发工具!!! 单片机开发过程中用到的多功能工具,包括热敏电阻RT值--HEX数据转换;3种LED编码;色环电阻计算器;HEX/BIN 文件互相转换;eeprom数据到C/ASM源码转换;CRC校验生成;串口调试,带简单而实用的数据分析功能;串口/并口通讯监视等功能. 用C++ Builder开发,无须安装,直接运行,不对注册表进行操作。纯绿色软件。 1. 模拟/数字转换表计算 本功能主要用于准备用于查表计算的 R/T 表格,主要用于温度、浊度等模拟量的测量,根据电路分压电阻的位置分为两种,可以参看图示选择正确的电路连接形式;可自定义分压电阻阻值;目前支持8位 /10位转换精度;可选择生成汇编/C源代码格式的数据等。 2. LED 编码器 本功能主要用于自动根据图形信息、段位置信息生成可保存在单片机程序存储器中供查表使用的数据。可自行定义字符的图形及各段的位置信息;可以选择LED类型,目前有 7段、14段、16段三种类型;自带图形定义,也可自定义并能保存自定义方案;自定义位置信息并可保存;可以生成 8位、4位编码,4位编码主要针对一些有 4个COM端的LED/LCD驱动器;同样可以保存为C/ASM格式数据。 3. 色环电阻阻值计算 本功能主要为记不住色环值的人(像我)用的,比较简单,单击相应环的相应颜色,阻值将实时给出。 4. Hex/Bin转换 Intel Hex格式文件和Bin格式文件相互转换,本功能使用机会较少。 Hex/Bin文件转换为文本方式(变量定义方式),将Hex文件或Bin文件转换为C/ASM源代码格式的数据。 CRC计算,提供3种计算方法。 5. 串口调试器 可以通过串口接收/发送数据,作为普通的串口调试器,可以手动发送所填内容,也可以发送整个文件; 内存映射功能,对于监控单片机内存非常方便,还可以定义内存变量,自动从接收到的数据中提取变量值,支持字节型、整型、长整型、浮点型、双精度型、位掩码(可用于位变量)、数组型(其他不规则变量)等,同时支持10进制、16进制、2进制显示;可以自由选择需要实时监测的变量;变量方案可以存盘等等;可以设为固定长度或定义首/尾标志,设置内存中实际起始地址,显示时和计算变量时用;由map文件自动读取内存变量(因条件所限,目前只支持由 ImageCraft C(ICC) 编译器产生的map文件,欢迎提供其他编译器的map文件样本); 变量组合,适用于文本方式的变量监测,例如: Var1=1111#var2=2222#var3=333.333 通讯时可以选择二进制、文本方式显示;可设置自动滚屏;设置最大显示行数; 可以选择多命令交互方式通讯,且可以作为主发方、从发方;主发时可以循环发送所选命令;从发时可以定义自动应答命令,即接收到表中所列的命令后,自动用相应内容应答,是不是很实用? 可以设为手动发送或定时发送。 可自定义通讯超时时间。 可以保存历史数据,包括发送和接收数据! 计划加入调制解调器控制。 6. 端口监视器 监视所选串口/并口的一切通讯活动而不占用其资源,可以设置过滤条件,可同时监视多个端口,可以保存数据,可以直接记录到文件中。 本功能可以用来分析未知的通讯协议...
MCUTool.exe 源代码 !!!超级单片机开发工具!!! 单片机开发过程中用到的多功能工具,包括热敏电阻RT值--HEX数据转换;3种LED编码;色环电阻计算器;HEX/BIN 文件互相转换;eeprom数据到C/ASM源码转换;CRC校验生成;串口调试,带简单而实用的数据分析功能;串口/并口通讯监视等功能. 用C++ Builder开发,无须安装,直接运行,不对注册表进行操作。纯绿色软件。 1. 模拟/数字转换表计算 本功能主要用于准备用于查表计算的 R/T 表格,主要用于温度、浊度等模拟量的测量,根据电路分压电阻的位置分为两种,可以参看图示选择正确的电路连接形式;可自定义分压电阻阻值;目前支持8位 /10位转换精度;可选择生成汇编/C源代码格式的数据等。 采用AD转换方式作为按键输入时键值的计算,与温度/数字转换和用。此时 温度 列作为按键序列号。 2. LED 编码器 本功能主要用于自动根据图形信息、段位置信息生成可保存在单片机程序存储器中供查表使用的数据。可自行定义字符的图形及各段的位置信息;可以选择LED类型,目前有 7段、14段、16段三种类型;自带图形定义,也可自定义并能保存自定义方案;自定义位置信息并可保存;可以生成 8位、4位编码,4位编码主要针对一些有 4个COM端的LED/LCD驱动器;同样可以保存为C/ASM格式数据。 3. 色环电阻阻值计算 本功能主要为记不住色环值的人(像我)用的,比较简单,单击相应环的相应颜色,阻值将实时给出。 4. Hex/Bin转换 Intel Hex格式文件和Bin格式文件相互转换,本功能使用机会较少。 Hex/Bin文件转换为文本方式(变量定义方式),将Hex文件或Bin文件转换为C/ASM源代码格式的数据。 CRC计算,提供3种计算方法。 二进制比较,主要用于产品首件确认时,源hex文件与从产品中读出的文件进行比较。(注意未用字节的填充值如果不同,将会认为有差别) 5. 串口调试器 可以通过串口接收/发送数据,作为普通的串口调试器,可以手动发送所填内容,也可以发送整个文件; 内存映射功能,对于监控单片机内存非常方便,还可以定义内存变量,自动从接收到的数据中提取变量值,支持字节型、整型、长整型、浮点型、双精度型、位掩码(可用于位变量)、数组型(其他不规则变量)等,同时支持10进制、16进制、2进制显示;可以自由选择需要实时监测的变量;变量方案可以存盘等等;可以设为固定长度或定义首/尾标志,设置内存中实际起始地址,显示时和计算变量时用;由map文件自动读取内存变量(因条件所限,目前只支持由 ImageCraft C(ICC) 编译器产生的map文件,欢迎提供其他编译器的map文件样本); 变量组合,适用于文本方式的变量监测,例如: Var1=1111#var2=2222#var3=333.333 通讯时可以选择二进制、文本方式显示;可设置自动滚屏;设置最大显示行数; 可以选择多命令交互方式通讯,且可以作为主发方、从发方;主发时可以循环发送所选命令;从发时可以定义自动应答命令,即接收到表中所列的命令后,自动用相应内容应答,是不是很实用? 可以设为手动发送或定时发送。 可自定义通讯超时时间。 可以保存历史数据,包括发送和接收数据! 计划加入调制解调器控制。 6. 端口监视器 监视所选串口/并口的一切通讯活动而不占用其资源,可以设置过滤条件,可同时监视多个端口,可以保存数据,可以直接记录到文件中。 本功能可以用来分析未知的通讯协议...
书名:《LabVIEW虚拟仪器从入门到测控应用130例》(电子工业出版社.李江全.任玲.廖结安.温宝琴) PDF格式扫描版,全书分为13章,共486页。2013年4月出版。 内容简介 本书从实际应用出发,通过130个典型实例系统地介绍了LabVIEW语言的程序设计方法及其测控应用技术,入门基础篇包括第0~10章,主要内容有LabVIEW基础、数值型数据、布尔型数据、字符串数据、数组数据、簇数据、数据类型转换、程序结构、变量与节点、图形显示和文件I/O;测控应用篇包括第11~13章,主要内容有PC通信与单片机测控、远程YO模块与PLC测控及LabVIEW数据采集。提供的实例由实例说明、设计任务和任务实现等部分组成,并有详细的操作步骤。 注:原书没有书签。为了方便阅读,本人在上传前添加了完整详细的书签。 目 录 入门基础篇 第0章 LabVIEW基础 0.1 LabVIEW概述 0.2 LabVIEW的编程环境 0.3 LabVIEW的基本概念 0.4 前面板对象设计基础 0.5 数据类型及其运算 0.6 VI调试方法 第1章 数值型数据 实例基础 数值型数据概述 实例1 数值输入与显示 实例2 时间标识输入与显示 实例3 滑动杆输出 实例4 旋钮与转盘输出 实例5 滚动条与刻度条 实例6 数值算术运算 实例7 数值常量 第2章 布尔型数据 实例基础 布尔型数据概述 实例8 开关与指示灯 实例9 数值比较 实例10 数值逻辑运算 实例11 真常量与假常量 实例12 确定按钮 实例13 停止按钮 实例14 单选按钮 实例15 按钮的快捷键设置 第3章 字符串数据 实例基础 字符串数据概述 实例16 计算字符串的长度 实例17 连接字符串 实例18 截取字符串 实例19 字符串大小写转换 实例20 替换子字符串 实例21 搜索替换字符串 实例22 格式化日期/时间字符串 实例23 格式化写入字符串 实例24 搜索/拆分字符串 实例25 选行并添加至字符串 实例26 匹配字符串 实例27 匹配真/假字符串 实例28 组合框 第4章 数组数据 实例基础 数组数据概述 实例29 初始化数组 实例30 创建数组 实例31 计算数组大小 实例32 求数组最大值与最小值 实例33 删除数组元素 实例34 数组索引 实例35 替换数组子集 实例36 提取子数组 实例37 数组插入 实例38 拆分一维数组 实例39 一维数组排序 实例40 搜索一维数组 实例41 二维数组转置 实例42 数组元素算术运算 第5章 簇数据 实例基础 簇数据概述 实例43 捆绑 实例44 解除捆绑 实例45 按名称捆绑 实例46 按名称解除捆绑 实例47 创建簇数组 实例48 索引与捆绑簇数组 第6章 数据类型转换 实例基础 数据类型转换概述 实例49 字符串至路径转换 实例50 路径至字符串转换 实例51 数值至字符串转换 实例52 字符串至数值转换 实例53 字节数组至字符串转换 实例54 字符串至字节数组转换 实例55 数组至簇转换 实例56 簇至数组转换 实例57 布尔数组至数值转换 实例58 数值至布尔数组转换 实例59 布尔值至0,1转换 第7章 程序结构 实例60 For循环结构 实例61 While循环结构 实例62 条件结构 实例63 层叠式顺序结构 实例64 平铺式顺序结构 实例65 定时循环结构 实例66 定时顺序结构 实例67 事件结构 实例68 禁用结构 第8章 变量与节点 实例69 局部变量 实例70 全局变量 实例71 公式节点 实例72 反馈节点 实例73 表达式节点 实例74 属性节点 实例75 子程序设计 实例76 菜单设计 第9章 图形显示 实例77 波形图表 实例78 波形图 实例79 XY图 实例80 强度图 第10章 文件I/O 实例基础 文件I/O概述 实例81 写入文本文件 实例82 读取文本文件 实例83 写入二进制文件 实例84 读取二进制文件 实例85 写入波形至文件 实例86 从文件读取波形 实例87 写入电子表格文件 实例88 读取电子表格文件 测控应用篇 第11章 PC通信与单片机测控 实例89 PC与PC串口通信 实例90 PC双串口互通信 实例91 PC与单个单片机串口通信 实例92 PC与多个单片机串口通信 实例93 单片机模拟电压采集 实例94 单片机模拟电压输出 实例95 单片机开关信号输入 实例96 单片机开关信号输出 实例97 单片机温度测控 实例98 单台智能仪器温度检测 实例99 多台智能仪器温度检测 实例100 短信接收与发送 实例101 网络温度监测 第12章 远程I/O模块与PLC测控 实例102 远程I/O模块模拟电压采集 实例103 远程I/O模块模拟电压输出 实例104 远程I/O模块数字信号输入 实例105 远程I/O模块数字信号输出 实例106 远程I/O模块温度测控 实例107 三菱PLC模拟电压采集 实例108 三菱PLC模拟电压输出 实例109 三菱PLC开关信号输入 实例110 三菱PLC开关信号输出 实例111 三菱PLC温度测控 实例112 西门子PLC模拟电压采集 实例113 西门子PLC模拟电压输出 实例114 西门子PLC开关信号输入 实例115 西门子PLC开关信号输出 实例116 西门子PLC温度测控 第13章 LabVIEW数据采集 实例117 PCI-6023E数据采集卡模拟电压采集 实例118 PCI-6023E数据采集卡数字信号输入 实例119 PCI-6023E数据采集卡数字信号输出 实例120 PCI-6023E数据采集卡温度测控 实例121 PCI-1710HG数据采集卡模拟电压采集 实例122 PCI-1710HG数据采集卡模拟电压输出 实例123 PCI-1710HG数据采集卡数字信号输入 实例124 PCI-1710HG数据采集卡数字信号输出 实例125 PCI-1710HG数据采集卡脉冲信号输出 实例126 PCI-1710HG数据采集卡温度测控 实例127 声卡的双声道模拟输入 实例128 声卡的双声道模拟输出 实例129 声音信号的采集与存储 实例130 声音信号的功率谱分析 参考文献

110,534

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧