c#菜鸟提问,关于COM口通信和TCP协议的

时间:2022-08-31 00:12:06
问题一:有几台数据采集的仪器,连接到计算机的COM口上,现在需要在程序界面上显示出8个类似于红绿灯的东西,标志某台仪器是否正常连接,正常用绿色,否则用红色.

这个该如何去实现,我知道问题很简单,可对我这个刚学C#的菜鸟就难啦
而且以前也没做过COM和TCP方面的.
还有那8个红绿灯,怎么搞出来的,要求是圆的,控件里也没看到有这样的控件


问题二:vs2005开发的程序能不能在WINCE4.2上运行啊


各位大侠帮帮忙啦

18 个解决方案

#1


问题一
-----------
轮询...图片...

问题二
-----------
能...智能设备项目...

#2


system.io.port

#3


vrhero(我是真小人/最烦伪君子...) 
大侠能否说清楚点啊,我刚学C#
第一问题不懂,第二问题我看过只能设备里只有wince5.0的啊

#4


system.io.port
我知道用SerialPort类操作串口
具体怎么去判断每个仪器连接正常?

#5


这个要看看!

#6


可以用SerialPort 的write向串口些命令检查串口的状态

#7


那几个类似与红绿灯的东西可以用按钮来做
先加上8个按钮,在属性列表中把FlatStyle设置为Flat
放上ImageList控件,在里面选择两张图片,一张是绿色的,一张是红色的
然后放上几张图片就可以,默认的比如说是绿色,根据从
端口里面读的数据来改换图片
比如说:
button1.image=imageList1[1];
button1.image=imageList1[0];

#8


图片很简单, 画红圈 和绿圈就可以搞定。 
关键是你哪仪器。
你要把那些仪器和计算机通讯的协议搞过来。 
如果是你买的东西的话, 应该问厂家要。 

#9


仪器是否工作正常, 厂家必须提供给你资料的。 

#10


首先十分感谢楼上的各位
与仪器的通信协议我这有
是这样的:
包头     5字节           数据包头 "@@@@@"
通道状态 12字节          12个通道状态,只用前8个,后4个填"3"未启用
                         "00"停机状态 "01"运行状态 "02"掉线状态 "03"未启用
流量0-7  4*8=32字节      8个流量,每个流量数据占4字节,数据格式为浮点数
                         流量0-3使用,4-7暂不处理填"0"
通道0-7  4*8*12=384字节  8个通道,每通道12种污染物,每个数据占4字节,数据格式为浮点数
保留     4*30=120字节    保留30个浮点数据位置
校验位   1字节           校验值,数据包中除包头包尾和校验位外按字节异或结果
包尾     5字节           数据包尾 "#####"


具体该怎么去判断是否连通呢?

#11


好复杂,我学习

#12


给点建议呀..
我也是刚学C#,碰到难题还望大家多帮忙啊
集思广益呀.

#13


this.serialport1.portname="com1";
this.serialport1.baudrate="9600";
this.serialport1.databits=8;
this.serialport1.parity=parity.none;
this.serialport1.stopbits=syopbits.one;
this.serialport1.write("控制指令\r");

#14


to:ff19191919() 
你这些不只是设置COM口的吗?数据位停止位什么的,这也没有去判断仪器是否连通啊?

#15


没人帮忙了吗?
自己顶..

#16


我帮你顶

#17


问题一:使用串口通讯,SerialPort进行定时查询通讯,通讯协议你必须找仪器厂商咨询,结果回来之后,你想要通过画图或者更改图片都可以


问题二:vs2005开发的程序可以在WINCE4.2上运行,前提是你必须建立适合wince4.2的工程

#18


COMM 口是全双工方式,一般是1对1的数据传输.
LZ所说的8个设备,最好用485总线.

你这个问题主要是设计通讯协议.
把上位机设置成 主控,其他设备为从控. 采取应答式即可

PS:圆形的灯可以用几个红绿图片替代.
   wince你要看vs2005最低支持多少了.估计要5.x

#1


问题一
-----------
轮询...图片...

问题二
-----------
能...智能设备项目...

#2


system.io.port

#3


vrhero(我是真小人/最烦伪君子...) 
大侠能否说清楚点啊,我刚学C#
第一问题不懂,第二问题我看过只能设备里只有wince5.0的啊

#4


system.io.port
我知道用SerialPort类操作串口
具体怎么去判断每个仪器连接正常?

#5


这个要看看!

#6


可以用SerialPort 的write向串口些命令检查串口的状态

#7


那几个类似与红绿灯的东西可以用按钮来做
先加上8个按钮,在属性列表中把FlatStyle设置为Flat
放上ImageList控件,在里面选择两张图片,一张是绿色的,一张是红色的
然后放上几张图片就可以,默认的比如说是绿色,根据从
端口里面读的数据来改换图片
比如说:
button1.image=imageList1[1];
button1.image=imageList1[0];

#8


图片很简单, 画红圈 和绿圈就可以搞定。 
关键是你哪仪器。
你要把那些仪器和计算机通讯的协议搞过来。 
如果是你买的东西的话, 应该问厂家要。 

#9


仪器是否工作正常, 厂家必须提供给你资料的。 

#10


首先十分感谢楼上的各位
与仪器的通信协议我这有
是这样的:
包头     5字节           数据包头 "@@@@@"
通道状态 12字节          12个通道状态,只用前8个,后4个填"3"未启用
                         "00"停机状态 "01"运行状态 "02"掉线状态 "03"未启用
流量0-7  4*8=32字节      8个流量,每个流量数据占4字节,数据格式为浮点数
                         流量0-3使用,4-7暂不处理填"0"
通道0-7  4*8*12=384字节  8个通道,每通道12种污染物,每个数据占4字节,数据格式为浮点数
保留     4*30=120字节    保留30个浮点数据位置
校验位   1字节           校验值,数据包中除包头包尾和校验位外按字节异或结果
包尾     5字节           数据包尾 "#####"


具体该怎么去判断是否连通呢?

#11


好复杂,我学习

#12


给点建议呀..
我也是刚学C#,碰到难题还望大家多帮忙啊
集思广益呀.

#13


this.serialport1.portname="com1";
this.serialport1.baudrate="9600";
this.serialport1.databits=8;
this.serialport1.parity=parity.none;
this.serialport1.stopbits=syopbits.one;
this.serialport1.write("控制指令\r");

#14


to:ff19191919() 
你这些不只是设置COM口的吗?数据位停止位什么的,这也没有去判断仪器是否连通啊?

#15


没人帮忙了吗?
自己顶..

#16


我帮你顶

#17


问题一:使用串口通讯,SerialPort进行定时查询通讯,通讯协议你必须找仪器厂商咨询,结果回来之后,你想要通过画图或者更改图片都可以


问题二:vs2005开发的程序可以在WINCE4.2上运行,前提是你必须建立适合wince4.2的工程

#18


COMM 口是全双工方式,一般是1对1的数据传输.
LZ所说的8个设备,最好用485总线.

你这个问题主要是设计通讯协议.
把上位机设置成 主控,其他设备为从控. 采取应答式即可

PS:圆形的灯可以用几个红绿图片替代.
   wince你要看vs2005最低支持多少了.估计要5.x