c# 上位机接受数据 100

数据格式:1.上位机发数据055H:请求数据传送开始则下位机回复:0F0H(开始),0FFH,记录数,记录数,0C0H(结束)。2.上位机发数据0A0H:请求传送下一个测... 数据格式:
1.上位机发数据055H:请求数据传送开始
则下位机回复:0F0H(开始),0FFH,记录数,记录数,0C0H(结束)。
2. 上位机发数据0A0H:请求传送下一个测量记录
下位机:0F0H,020H,RECORD0,RECORD1….RECORD31,CHKSUM,0C3H
数据头,数据个数,数据… …, 校验和, 数据尾
共36byte;
CHKSUM=~(RECORD0+RECORD1+…..+RECORD31)+1
如上式不成立,说明传输有误,请求重新发送。
3.上位机发数据0AAH:请求重新传送上一个记录,格式同2。
4.下位机回复:0F0H,0H,记录数,记录数,0C0H(结束)。
表示无数据或传输完毕。
5. 长时间未得到设备回应,提示传输错误。

这个用C#如何实现功能?
展开
 我来答
捐你妹8
2015-07-07 · TA获得超过638个赞
知道小有建树答主
回答量:351
采纳率:0%
帮助的人:360万
展开全部
在不说驱动的情况下说上下位机,我表示你在耍流氓……
如果是用串口,我大致说一下。
首先根据动作(请求开始还是下一个数据),组包。你好像没有下发帧结构……这个也应该设计的。
然后下位机的动作由下位机处理。你只管接收数据。
在接收的时候做你说的判断,如果正确则发送一个正确的Ack包,否则发送错误的Ack包(这个你也没有设计……)。
超时就加上一个计时功能就可以了。在发送的时候计时开始,在接收到数据的时候计时结束,如果长时间没有结束就认为是超时。
更多追问追答
追问
就是串口。。疏忽了。。。下发帧结构是怎么弄的?新手见谅。。。
追答
这个是根据你们自己设计的,一般包括:帧头,帧体,帧尾。
帧头可以包括:帧头标志,全帧帧长,帧头校验。
帧体可以包括:指令,帧号,数据。其中数据也可以再包含微帧。微帧是相对于外部帧来说的,就是一个完整帧中的小帧,其结构可以和外部一致,但帧头标志不可以一致。
帧尾一般仅仅含有一个校验位。
至于这里每个部分具体怎么设置,那就看你的需要了。
比如你这个,可能就只需要帧头的完整部分/帧体的数据部分/帧尾就可以了。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式