电源屏模拟需求
起始标志位:固定长度和内容
转换为ascii码传输,高字节在前
设备类型:固定长度 枚举内容
转换为ascii码传输,高字节在前
信息分类:固定长度 枚举内容
转换为ascii码传输,高字节在前
INfo长度:高4bit根据低12位计算;
低12位根据信息内容计算ascii码的总数
转换为ascii码传输,高字节在前
信息内容:整型和浮点型数据
整型转换为4个ascii,浮点型转换为8个ascii
低字节在前
校验和 :其他字符ASCII码值累加求和,所得结果模65535余数取反加1
高字节在前
结束码 :0DH
程序结构
定义一个DYP类作为整体结构dyp_stuct.py
定义计算length的方法
获取self.info长度(调用info方法)
return 数值
定义计算checksum的方法
获取info_length的字符串形式(调用方法后转换)
return 数值
接收16进制格式的字符串作为数据
定义组包dyp_package方法
soi eoi直接将字符串转换为16进制表达7eH 0dH
其余为字符串格式
self.equ_type、self.info_type本身为字符串
获取info_length的字符串形式(调用方法后转换)
获取checksum的字符串形式(调用方法后转换)
调用info方法返回字节的ascii字符串
返回字节流形式
对每种数据类型定义一个方法计算其info dyp_info.py
每种类型的数据定义一个生成方法
读入配置文件中的路数等信息;初始化开关量或者模拟量
返回字节的ascii字符串形式,按照规定的格式低字节在前
所有需要转换为ascii码的由单独定义的函数实现strs_to_ascii data_deal.py
strs_to_ascii实现16进制字符串格式转换为ascii形式
可以对多个字节转换,默认接收的数据正常(不存在高字节低字节转换)
数据组包 dyp_pkg
实例化DYP类编码类型、info类型
按照协议,组成字节流的形式
soi/eoi传入的是16进制的字符串,其余传入的是ascii码表示的字符串
地址:git@github.com:xiaxuno1/demo_project.git