| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576 |
- /*--------------------------------------------------------------------------------------
- * @file pump_dicts.h
- * @author ZhaoDecheng
- * @version base on stm32f0x
- * @date 2024.01.03
- * @brief 协议封装
- ---------------------------------------------------------------------------------------*/
- #ifndef __PUMP_DICTS_UTIL_H
- #define __PUMP_DICTS_UTIL_H
- #include <stdint.h>
- struct PUMPDICTS_ParamsStruct{
- uint16_t userId; // 编号1,用户编号;医院编号。
- uint8_t networkType; // 编号2,网络类型。
- char sim[30]; // 编号4,sim卡号
- uint16_t lac; // 编号5,基站ID。
- uint32_t ci; // 编号6,基站小区ID。
- uint8_t pumpType; // 编号101,泵类型。
- uint32_t infusionId; // 编号103,输注编号。
- uint32_t dataNumber; // 编号104,数据编号。
- uint64_t patientCode; // 编号105,住院号。
- uint16_t continueDose; // 编号106,持续量。
- uint8_t lockTime; // 编号107,锁定时间。
- uint8_t ultimateDose; // 编号108,极限量。
- uint8_t firstDose; // 编号109,首次量。
- uint8_t appendDose; // 编号110,追加量。
- uint16_t totalDose; // 编号111,总量。
- uint16_t finishDose; // 编号112,已输注量。
- uint8_t validTimes; // 编号113,有效追加次数。
- uint8_t invalidTimes; // 编号114,无效追加次数。
- uint8_t alarm_BubbleOrAneroid; // 编号115,1气泡或无液报警。0表示不报警,1表示报警。
- uint8_t alarm_Blocked; // 编号115,2堵塞报警。0表示不报警,1表示报警。
- uint8_t alarm_Total; // 编号115,3输入总量报警。0表示不报警,1表示报警。
- uint8_t alarm_Ultimate; // 编号115,4极限量报警。0表示不报警,1表示报警。
- uint8_t alarm_LowPower; // 编号115,5电量耗尽报警。0表示不报警,1表示报警。
- uint8_t alarm_Finished; // 编号115,6输液结束报警。0表示不报警,1表示报警。
- uint8_t alarm_MotorOutofcontrol; // 编号115,7电机失控报警。0表示不报警,1表示报警。
- uint8_t alarm_MechanicalBreakdown; // 编号115,8机械故障报警。0表示不报警,1表示报警。
- uint8_t alarm_UnfilledPillBox; // 编号115,9未装药盒报警。0表示不报警,1表示报警。
- uint8_t forcast_WillFinished; // 编号116,1输液将结束预报。0表示不预报,1表示预报。
- uint8_t forcast_InsufficientAnalgesia; // 编号116,2镇痛不足预报。0表示不预报,1表示预报。
- uint8_t forcast_LowPowerForecast; // 编号116,3电量偏低预报。0表示不预报,1表示预报。
- uint8_t runStatus; // 编号117,运行状态。0关机;1开机;2运行;3暂停;4待机。
- uint8_t electricity; // 编号118,电量。
- uint8_t pulseLockTime; // 编号121,脉冲量锁时。
- uint8_t firstLockTime; // 编号122,脉冲首次锁时。
- uint8_t pulseDose; // 编号123,脉冲量。
- uint16_t ward; // 编号124,病区。
- uint16_t bedNo; // 编号125,床号。
- uint16_t version; // 编号136,版本号。
- };
- /**
- * 协议编码
- * 输入<<
- * pump_params 泵参数。
- * 输出>>
- * pump_data 编码后的二进制数据。
- * pump_data_length 编码后的二进制数据的长度。
- **/
- void PUMPDICTS_ProtocolEncode(struct PUMPDICTS_ParamsStruct * pump_params, uint8_t * pump_data, uint16_t * pump_data_length);
- /**
- * 协议解码
- * 输出<<
- * pump_data 编码后的二进制数据。
- * pump_data_length 编码后的二进制数据的长度。
- * 输出>>
- * pump_params 泵参数。
- **/
- void PUMPDICTS_ProtocolDecode(struct PUMPDICTS_ParamsStruct * pump_params, uint8_t * pump_data, uint16_t * pump_data_length);
- #endif
|