- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
C语言与通讯数据处理实验报告a选编
C语言与通讯数据处理实验报告
实验目的
1、熟悉c语言的编译,链接和运行过程
2、掌握c语言的数据类型,熟悉整型,实型,字符型变量的定义方式与赋值,掌握不同类型数据之间赋值规则和赋值方法
3、掌握数组的定义,赋值引用及输入输出方法,并正确用字符数组储存字符串,学会字符串的使用
4、掌握结构体变量的定义和使用
5、掌握指针变量和指向指针的指针变量的定义及使用
6、熟悉通讯数据的处理规则及不同处理方法的优缺点
7、掌握VS中简单的界面编辑能力及编辑框的关联变量的定义
实验平台:
Microsoft Visual Studio 2010
实验内容
1、编写界面,在预先给定的对话框中添加静态文本框和编辑框,设置静态文本框内容和编辑框的关联变量,变量保存在ComDateProcessDlg.h文件中
2、按钮编辑
1)、发送按钮
将不同格式数据赋给预先定义的对应格式的变量之中
2)、接收按钮
将发送按钮中已赋值的变量中数据赋值给界面编辑框相对应的关联变量
3、调试程序
实验步骤
1、了解通讯协议
数据格式如下:
地址码长度状态量无符号整数符号
整数无符号长整数符号长整数无符号
定点小数浮点数双精
度数校验码1字节1字节2字节2字节2字节4字节4字节2字节4字节8字节1字节说明:
1)、状态量定义如下:
1514131211109876543210状态码保留开关7开关6开关5开关4开关3开关2开关12)、无符号定点小数定义如下:
高9位:整数,低7位:小数
3)、校验码:
为校验码之前所有字节的求和。
界面编辑
在界面添加静态文本框以及编辑框,编辑文本框内容与编辑框将显示的数据一一对应,并为每个编辑框添加对应的关联变量,优化界面。
3、发送和接收数据处理:
打开ComDataProcessDlg,cpp文件对按钮进行编译
1)、首先定义中间变量,即通讯数据的储存变量
unsigned short *pishort;
float *pf;
unsigned long *pulong;
long *plong;
…
2)、运用指针变量进行赋值:
sendbuf[0]=0x01;//地址号
sendbuf[1]=31;//数据帧长度
pishort=(unsigned short *)(sendbuf+2);
*pishort=0xf03e;//状态码
pishort=(unsigned short *)(sendbuf+4);
*pishort=255;
---
3)、状态量处理:
状态量前五位为状态码,后为七位开关变量,中间四位保留
首先定义变量
unsigned char sw1,sw2,…sw7;
unsigned char statecode;
unsigned short statecode16;//16位临时状态变量
unsigned short status;//前面定义的状态变量
……
状态码及开关的获取:用关系运算符“”来选择位置,并用移位运算符“”将高位数字移至最低位
statecode16= status0xf800;//1111 1000 0000 0000
statecode= (unsigned char)(statecode1611);
statecode16= status0x0040;//0000 0000 0100 0000
sw7= (unsigned char)(statecode166);
……
4)、定点小数的转化:
在给中间变量赋值时,先给定点小数赋一个无符号整形变量,在编写接收按钮时除以2^n确定小数点的位置,即将小数点前移n位
m_fixeddecimal=(float)(16 utmp)/128.0f
5)、方法缺陷:
由于使用了数组指针进行赋值,对每个变量的位置和长度也就固定了下来,所以对于数据类型的修改会比较困难
了解并应用通讯协议的数据结构
针对上述问题,可使用结构变量进行优化
1)、结构的重要特征:
(1)、数据集中存放
(2)、数据按定义的先后顺序存放
、结构体字节对齐规则
(1)、结构体成员按低地址到高地址的顺序储存在内存,即按声明的顺序储存
(2)、每个成员的地址必须满足:是sizeof(该成员)的整数倍
(3)、总的字节数是最大内置(就是基本类型)成员所占字节的整数倍
为满足以上规则,通讯协议改进如下:
地址码长度状态量无符号整数符号
整数无符号长整数符号长整数双精
度数浮点数无符号
定点小数校验码1字节1字节2字节2字
您可能关注的文档
最近下载
- 第一章 第一节 物质的分类和转化ppt— 上学期高一化学人教版(2019)必修第一册.pptx VIP
- 浙江省宁波市余姚中学2024-2025学年高二上学期10月月考地理.doc VIP
- 建筑装饰行业数字化转型升级分析报告:2025年现状与未来十年展望.docx
- 拼读小能手(彩色版).pdf VIP
- 国际投资(经管专业)全套教学课件.pptx
- 进化生态学课程-康乐讲授-生态基因组学.pdf VIP
- 标准图集-17J008 挡土墙(重力式、衡重式、悬臂式) 无水印.pdf VIP
- 20220104-兴业证券-高频漫谈.pdf VIP
- 变频器基础知识培训ppt课件完整版.pptx VIP
- 新能源运营商行业深度:新能源全面入市,三大压制因素释放绿电迎反转.pdf VIP
文档评论(0)