pump_dicts.h 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. /*--------------------------------------------------------------------------------------
  2. * @file pump_dicts.h
  3. * @author ZhaoDecheng
  4. * @version base on stm32f0x
  5. * @date 2024.01.03
  6. * @brief 协议封装
  7. ---------------------------------------------------------------------------------------*/
  8. #ifndef __PUMP_DICTS_H
  9. #define __PUMP_DICTS_H
  10. #include <stdint.h>
  11. struct Pump_Params{
  12. uint16_t userId; // 编号1,用户编号;医院编号。
  13. uint8_t pumpType; // 编号101,泵类型。
  14. uint32_t infusionId; // 编号103,输注编号。
  15. uint32_t dataNumber; //编号104,数据编号。
  16. uint32_t patientCode; //编号105,住院号。
  17. uint16_t continueDose; //编号106,持续量。
  18. uint8_t lockTime; //编号107,锁定时间。
  19. uint8_t ultimateDose; //编号108,极限量。
  20. uint8_t firstDose; //编号109,首次量。
  21. uint8_t appendDose; //编号110,追加量。
  22. uint16_t totalDose; //编号111,总量。
  23. uint16_t finishDose; //编号112,已输注量。
  24. uint8_t validTimes; //编号113,有效追加次数。
  25. uint8_t invalidTimes; //编号114,无效追加次数。
  26. uint8_t alarm_BubbleOrAneroid; //编号115,1气泡或无液报警。
  27. uint8_t alarm_Blocked; //编号115,2堵塞报警。
  28. uint8_t alarm_Total; //编号115,3输入总量报警。
  29. uint8_t alarm_Ultimate; //编号115,4极限量报警。
  30. uint8_t alarm_LowPower; //编号115,5电量耗尽报警。
  31. uint8_t alarm_Finished; //编号115,6输液结束报警。
  32. uint8_t alarm_MotorOutofcontrol; //7编号115,电机失控报警。
  33. uint8_t alarm_MechanicalBreakdown; //8编号115,机械故障报警。
  34. uint8_t alarm_UnfilledPillBox; //9编号115,未装药盒报警。
  35. uint8_t forcast_WillFinished; //1编号116,输液将结束预报。
  36. uint8_t forcast_InsufficientAnalgesia; //2编号116,镇痛不足预报。
  37. uint8_t forcast_LowPowerForecast; //3编号116,电量偏低预报。
  38. uint8_t runStatus; //编号117,运行状态。0关机;1开机;2运行;3暂停;4待机。
  39. uint8_t electricity; //编号118,电量。
  40. uint16_t lac; // 编号119,基站ID。
  41. uint32_t ci; // 编号120,基站小区ID。
  42. uint8_t pulseLockTime; //编号121,脉冲量锁时。
  43. uint8_t firstLockTime; //编号122,脉冲首次锁时。
  44. uint8_t pulseDose; //编号123,脉冲量。
  45. };
  46. void setPumpheader(void);
  47. /**
  48. * 协议编码
  49. * 输入<<
  50. * pump_params 泵参数。
  51. * 输出>>
  52. * pump_data 编码后的二进制数据。
  53. * pump_data_length 编码后的二进制数据的长度。
  54. **/
  55. void business_protocol_encode(struct Pump_Params pump_params, uint8_t * pump_data, uint16_t * pump_data_length);
  56. /**
  57. * 协议解码
  58. * 输出<<
  59. * pump_data 编码后的二进制数据。
  60. * pump_data_length 编码后的二进制数据的长度。
  61. * 输出>>
  62. * pump_params 泵参数。
  63. **/
  64. struct Pump_Params business_protocol_decode(uint8_t * pump_data, uint16_t * pump_data_length);
  65. #endif