/*-------------------------------------------------------------------------------------- * @file pump_dicts.h * @author ZhaoDecheng * @version base on stm32f0x * @date 2024.01.03 * @brief 协议封装 ---------------------------------------------------------------------------------------*/ #ifndef __PUMP_DICTS_H #define __PUMP_DICTS_H #include struct Pump_Params{ uint16_t userId; // 编号1,用户编号;医院编号。 uint8_t pumpType; // 编号101,泵类型。 uint32_t infusionId; // 编号103,输注编号。 uint32_t dataNumber; //编号104,数据编号。 uint32_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气泡或无液报警。 uint8_t alarm_Blocked; //编号115,2堵塞报警。 uint8_t alarm_Total; //编号115,3输入总量报警。 uint8_t alarm_Ultimate; //编号115,4极限量报警。 uint8_t alarm_LowPower; //编号115,5电量耗尽报警。 uint8_t alarm_Finished; //编号115,6输液结束报警。 uint8_t alarm_MotorOutofcontrol; //7编号115,电机失控报警。 uint8_t alarm_MechanicalBreakdown; //8编号115,机械故障报警。 uint8_t alarm_UnfilledPillBox; //9编号115,未装药盒报警。 uint8_t forcast_WillFinished; //1编号116,输液将结束预报。 uint8_t forcast_InsufficientAnalgesia; //2编号116,镇痛不足预报。 uint8_t forcast_LowPowerForecast; //3编号116,电量偏低预报。 uint8_t runStatus; //编号117,运行状态。0关机;1开机;2运行;3暂停;4待机。 uint8_t electricity; //编号118,电量。 uint16_t lac; // 编号119,基站ID。 uint32_t ci; // 编号120,基站小区ID。 uint8_t pulseLockTime; //编号121,脉冲量锁时。 uint8_t firstLockTime; //编号122,脉冲首次锁时。 uint8_t pulseDose; //编号123,脉冲量。 }; void setPumpheader(void); /** * 协议编码 * 输入<< * pump_params 泵参数。 * 输出>> * pump_data 编码后的二进制数据。 * pump_data_length 编码后的二进制数据的长度。 **/ void business_protocol_encode(struct Pump_Params pump_params, uint8_t * pump_data, uint16_t * pump_data_length); /** * 协议解码 * 输出<< * pump_data 编码后的二进制数据。 * pump_data_length 编码后的二进制数据的长度。 * 输出>> * pump_params 泵参数。 **/ struct Pump_Params business_protocol_decode(uint8_t * pump_data, uint16_t * pump_data_length); #endif