📄 oil_collection.h
字号:
#ifndef __Oil_Collection_H
#define __Oil_Collection_H
#if Oil_Collection_EN>0
//(1) 主机给子板的数据格式
typedef struct
{
//起始字节 字段 长度 说明
uint8 startChr; //1 命令头 1 内容固定为 0x98
uint16 dataLen; //2 字符长度 1 所有数据总长(包括头尾)
uint8 commandID; //3 命令ID 1 详见具体说明
uint8 * pContext; //4 数据内容 不定 详见具体说明
uint8 endChr; //不定 命令尾 1 内容固定为 0x99
}STRU_Term2OilCollection;
typedef enum
{
//命令ID说明:
Term_StartSend =0x04, //0x04: 子板开始发送数据,数据内容为空.。收到此命令后子板开始发送数据,每15s发送一次数据,数据内容包括一路油量数据和两路温度数据,具、体数据格式参加子板发送数据协议。
Term_StopSend =0x05, //0x05: 子板停止发送数据,数据内容为空。收到此指令后子板停止发送数据,释放数据线。
Term_ReqTemSenID =0x06, //0x06: 主机索要两路温度传感器(18B20)ID号(64位)。
//(原来:主机设置两个温度传感器的ID.(预留)。)
Term_CfgTemAlmLmt =0x07, //0x07: 主机设置温度传感器的报警阈值,数据内容长度为8个字节,依次为1#传感器高温阈值,低温阈值,2#传感器高温阈值,低温阈值。
Term_ReqTemValue =0x08, //0x08: 主机索取两路度传感器(18B20)温度。
Term_SubCommAnswer =0x09 //0x09: 主机应答子板,当主机收到子板的数据后,发送该条指令应答子板
}ENUM_Term2OilCollection_CommID;
/*
注:
温度值为两个字节,表示所设置温度的10倍值。实际中存在负值,所有温度数据采用补码形式。
实际温度 表示为 最终结果
+55.2℃ 0x0228 552
-25.2℃ 0xFF04 -252
例子:
数据内容为: 98 00 0D 07 02 28 FF 04 02 8A FE CF 99
注释: 指令为设置温度阈值
1# 传感器阈值为:0x0228,0xFF04, 换算成温度为:+55.2℃,-25.2℃
2# 传感器阈值为:0x028A,0xFECF,换算成温度为:+65.0℃,-30.5℃
*/
//(2) 子板发送数据的协议格式
typedef struct
{
//起始字节 字段 长度 说明
uint8 startChr; //1 命令头 1 内容固定为 0x01
uint8 commandID; //2 命令ID 1 内容固定为 0x04
uint16 dataLen; //3 后面所剩字符长度 1 从该字节开始到结尾所有字节的长度
uint8 commandType; //4 指令类型 1 详见说明
uint8 * pContext; //5 数据内容 不定 详见说明
uint8 checkSum; //不定 校验和 1 前所有字节异或的结果
uint8 endChr; //不定 命令尾 1 内容固定为 0x0A
}STRU_OilCollection2Term;
typedef enum
{
//指令类型
OilCollection_SendData=0x70 //0x70: 子板发送油量和温度数据。共6个字节
//前面两个字节为油量数据,为实际油量电压值的1000倍。(注:0x0598表示1.432V电压值)
//中间两个字节为1#传感器的温度值,为实际值的10倍(补码形式)
//后面两个字节为2#传感器的温度值,为实际值的10倍(补码形式)
}ENUM_OilCollection2Term_CommID;
//////////////////////////////////////////////////////////////////////////////////////
#endif
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -