TypeDefine.h 21 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621
  1. #ifndef __TYPEDEFINE_H__
  2. #define __TYPEDEFINE_H__
  3. /*--------------------------------------------------------------------------------------
  4. * @file TypeDefine.h
  5. * @author ZhangJing
  6. * @version base on stm32f0x
  7. * @date 2015.09.11
  8. * @brief 公共变量、函数定义
  9. ---------------------------------------------------------------------------------------*/
  10. #include "stdint.h"
  11. #include "stm32f10x.h"
  12. //类型转换
  13. typedef unsigned char bool;
  14. #define True 1 //真
  15. #define False 0 //假
  16. //#define OLD_LCD 1
  17. #define TASK_FLAG_CLEAR 0//任务标志清除
  18. #define TASK_FLAG_SET 1//任务标志置位
  19. #define TASK_FLAG_WAIT 2//任务等待标志
  20. #define TASK_FLAG_OVERTIME 3 //任务超时标志
  21. #define TASK_FLAG_FAIL 4 //任务执行失败
  22. #define TASK_FLAG_WCLEAR 5 //等待清除
  23. #define TASK_FLAG_WSET 6 //等待置位
  24. #define SendFailure 0//发送失败
  25. #define SendSuceed 1//发送成功
  26. #define SendWait 3//发送等待
  27. #define HornOFF 0//关闭喇叭声音
  28. #define HornWarningTone 1//单生提示音
  29. #define HornAlarmSound 2//报警音
  30. #define HornMaxSound 3//最大音量
  31. #define HornSelence 4//静音
  32. #define HornLowPriWarning 5//低优先级报警
  33. #define LED_STATE_OFF 0//LED关
  34. #define LED_STATE_ON 1//LED开
  35. #define ENGINEERINGMODE_OFF 1 //工程模式关
  36. #define ENGINEERINGMODE_ON 0 //工程模式开
  37. #define MOTOR_WORK_OFF 0 //电机工作停止
  38. #define MOTOR_TRIGGER_OFF 1 //电机停止触发
  39. #define MOTOR_WORK_ON 2 //电机工作启动
  40. #define MOTOR_TRIGGER_ON 3 //电机启动触发
  41. #define MOTOR_WORK_WAIT 0Xff //电机启动等待
  42. #define ONE_HOUR_TIMER 3600000//1小时计时
  43. #define ONE_SECOND_TIMER 1000//1s计时
  44. #define TWO_SECOND_TIMER 2000//2s计时
  45. #define TWO_FIVE_SECOND_TIMER 2500//2.5s计时
  46. #define TRI_SECOND_TIMER 3000//3s计时
  47. #define FOUR_SECOND_TIMER 4000//4s计时
  48. #define FIVE_SECOND_TIMER 5000//5s计时
  49. #define TEN_SECOND_TIMER 10000//10s计时
  50. #define FIFTEEN_SECOND_TIMER 15000//15s计时
  51. #define TWENTY_SECOND_TIMER 20000//20s计时
  52. #define THIRTY_SECOND_TIMER 30000//30s计时
  53. #define FIFTY_MSEC_TIMER 50//50ms计时
  54. #define ONE_MSEC_TIMER 100//100ms计时
  55. #define ONE_TWO_FIVE_MSEC_TIMER 125//125ms计时
  56. #define TWO_MSEC_TIMER 200//200ms计时
  57. #define THREE_MSEC_TIMER 300//300ms计时
  58. #define HALF_SECOND_TIMER 500//500ms计时
  59. #define EnterDelay_TIMER 500//
  60. #define SEVEN_MSECOND_TIMER 700//500ms计时
  61. #define TWO_MINUTE_TIMER 120000//2分钟
  62. #define THREE_MINUTE_TIMER 180000//3分钟
  63. #define FIVE_MINUTE_TIMER 300000//5分钟计时
  64. #define TWENTY_MINUTE_TIMER 1200000//20分钟 测试
  65. #define THIRTY_MINUTE_TIMER 1800000//30分钟
  66. #define FORTY_MINUTE_TIMER 2400000//40分钟
  67. #define TASK_TIMER_XMIT_RTD 60000//1分钟
  68. //#define TASK_TIMER_PRES_CONV 100//100ms转换一次压力
  69. #define TASK_TIMER_PRES_CONV 20//100ms转换一次压力
  70. #define DISP_TIME_AUTO_S_JUMP 3000//页面自动短跳转时间3s
  71. #define DISP_TIME_AUTO_JUMP 5000//页面自动跳转时间5s
  72. #define DISP_TIME_LOCK_JUMP 30000//锁屏跳转时间30s
  73. #define KEY_TIMER_SCAN 150//消抖时间100ms
  74. #define KEY_TIMER_LONGPRESS 3000//按键长按时间3s
  75. #define KEY_TIMER_SHORTEST 150//消抖时间100ms
  76. #define SYS_RUN_TEST_TIMER 5000//系统运行前测试时间5s
  77. #define ALARM_COLLECT_TIMER 1000//报警采集时间10s?
  78. #define MOTOR_COLLECT_TIMER 1800//电机信号采集计时1.8s
  79. #define MOTOR_TESTSELF_TIMER 8400//电机自检计时8.4s 4s改成8.4s
  80. #define ZIGBEE_RECV_LEN 32
  81. #define USART_PDU_START 0xAA
  82. #define USART_PDU_END 0x55
  83. #define HOSPITALNO_SELECTED 1 //住院号被选择
  84. #define BEDNO_SELECTED 2 //床号被选择
  85. #define SYS_PASSWORD_DEFAULT 520//系统万能密码
  86. // #define BATTERY_VOLT_LIMIT1 43//3.65V
  87. // #define BATTERY_VOLT_LIMIT2 57//3.85V 60-3.9V
  88. // #define BATTERY_VOLT_LIMIT3 80//4.2V
  89. #define BATTERY_VOLT_LIMIT1 40//3.7V-47 3.3V-20/40
  90. #define BATTERY_VOLT_LIMIT2 87//4.0V/67
  91. #define BATTERY_VOLT_LIMIT3 100//4.3V/87
  92. #define KEY_QTY_SHORTEST 1//按键短按次数
  93. #define KEY_QTY_SHORT 10//判定短按范围
  94. #define KEY_QTY_NORMAL 5//正常按一次的次数
  95. #define KEY_QTY_LONGPRESS 13//15//20//30//按键长按次数
  96. #define BITBAND(addr, bitnum) ((addr & 0xF0000000)+0x2000000+((addr &0xFFFFF)<<5)+(bitnum<<2))
  97. #define MEM_ADDR(addr) *((volatile unsigned long *)(addr))
  98. #define BIT_ADDR(addr, bitnum) MEM_ADDR(BITBAND(addr, bitnum))
  99. #define GPIOB_ODR_Addr (GPIOB_BASE+12) //0x40010C0C
  100. #define PBout(n) BIT_ADDR(GPIOB_ODR_Addr,n) //输出
  101. #define RLED PBout(8)
  102. #define R_LED_ON GPIO_SetBits(GPIOB,GPIO_Pin_8 );
  103. #define R_LED_OFF GPIO_ResetBits(GPIOB,GPIO_Pin_8 );
  104. #define G_LED_ON GPIO_SetBits(GPIOB,GPIO_Pin_1 );
  105. #define G_LED_OFF GPIO_ResetBits(GPIOB,GPIO_Pin_1 );
  106. #define Y_LED_ON GPIO_SetBits(GPIOB,GPIO_Pin_9 );
  107. #define Y_LED_OFF GPIO_ResetBits(GPIOB,GPIO_Pin_9 );
  108. extern uint16_t G_Led_Time ;//绿色指示灯点亮时间
  109. extern uint16_t Y_Led_Time ;//黄色指示灯点亮时间
  110. /* KEY Scan Flag structure */
  111. typedef enum
  112. {
  113. emSpeakerNoneWork = 0, //蜂鸣器无动作
  114. emSpeakerWorkStep1 = 1, //蜂鸣器工作第一步
  115. emSpeakerWorkStep2 = 2, //蜂鸣器工作第二步
  116. emSpeakerWorkStep3 = 3, //蜂鸣器工作第三步
  117. emSpeakerWorkStep4 = 4, //蜂鸣器工作第四步
  118. emSpeakerWorkStep5 = 5, //蜂鸣器工作第五步
  119. emSpeakerWorkStart = 0xfe, //蜂鸣器工作开始
  120. emSpeakerWorkDone = 0xff, //蜂鸣器工作完成
  121. }SpeakerWorkType;
  122. /* KEY Type structure */
  123. typedef enum
  124. {
  125. emKeyActionOff = 0, //按键动作-抬起
  126. emKeyActionOn = 1, //按键动作-按下
  127. emKyeActionScanSet = 2,//按键动作-消抖置位
  128. emKeyActionWait = 0xff,
  129. }KeyActionType;
  130. typedef struct
  131. {
  132. KeyActionType keyEnter; //设置/确认键
  133. KeyActionType keyRunPause; //运行停止键
  134. KeyActionType keyPlus; //加号键
  135. KeyActionType keyMinus; //负号键
  136. KeyActionType keyPower; //电源键
  137. KeyActionType keyAirout; //排气/呼叫按键
  138. KeyActionType keyPS; //返回键/静音按键
  139. KeyActionType keyPCA; //PCA键
  140. } KeyTypeFrame;
  141. /* KEY Scan Flag structure */
  142. typedef enum
  143. {
  144. emKeyflagNonePress = 0, //无按下标志
  145. emKeyflagShortPress = 1, //短按下标志
  146. emKeyflagLongPress = 2, //长按下标志
  147. emKeyflagShortRelease = 3, //短按释放标志
  148. emKeyflagLongRelease = 4, //长按释放标志
  149. emKeyflagMiddlePress = 5, //中长按下标志
  150. }KeyFlagType;
  151. typedef struct
  152. {
  153. KeyFlagType keyEnter; //进入键
  154. KeyFlagType keyRunPause; //运行停止键
  155. KeyFlagType keyPlus; //加号键
  156. KeyFlagType keyMinus; //负号键
  157. KeyFlagType keyPower; //电源键
  158. KeyFlagType keyAirout; //排气/静音键
  159. KeyFlagType keyPS; //返回键
  160. KeyFlagType keyPCA; //PCA键
  161. } KeyFlagFrame;
  162. /* KEY Scan QTY structure */
  163. typedef struct
  164. {
  165. uint8_t keyEnter; //进入键
  166. uint8_t keyRunPause; //运行停止键
  167. uint8_t keyPlus; //加号键
  168. uint8_t keyMinus; //负号键
  169. uint8_t keyPower; //电源键
  170. uint8_t keyAirout; //排气键
  171. uint8_t keyPS; //返回键
  172. uint8_t keyPCA; //PCA键
  173. } KeyScanQtyFrame;
  174. /* Task Scheduler structure */
  175. typedef struct
  176. {
  177. uint8_t initFinishFlag; //上电初始化完成标志
  178. uint8_t zigbeeRecvFlag; //zigbee接收标志
  179. uint8_t zigbeeXmitFlag; //zigbee发送标志
  180. uint8_t zigbeeETXmitFlag; //zigbee评价上传标志
  181. uint8_t zigbeeComReadFlag; //zigbee命令读取
  182. uint8_t zigbeeInNetFlag; //zigbee是否在网络内状态标志:0 无网络 1 有网络
  183. uint8_t historyRequestFlag; //历史数据请求标志
  184. uint8_t historyReponseFlag; //历史数据响应标志
  185. uint8_t pressureConvertFlag; //压力传感器转换标志
  186. uint8_t forceConvertFlag; //触力传感器转换标志 0:转换 1:读取
  187. uint8_t fromSlaveRecvFlag; //从机数据接收标志
  188. uint8_t toSlaveXmitFlag; //从机数据发送标志
  189. uint8_t motorRunFlag; //电机运行标志
  190. uint8_t motorStopFlag; //电机停止标志
  191. uint8_t motorSelfTestFlag; //电机自检标志
  192. uint8_t ipnutFlag; //输注标志
  193. uint8_t timeReadFlag; //时间读取标志
  194. uint8_t lockDispFlag; //锁屏标志
  195. uint8_t lockTimeFlag; //锁时标志
  196. uint8_t SuperadditionFlag; //追加量模式标志
  197. uint8_t hostXmitFlag; //主芯片发送标志
  198. uint8_t unlockPasswordFlag; //解锁标志
  199. uint8_t rtdUpdateFlag; //实时数据更新标志
  200. uint8_t speakerFlag; //蜂鸣器标志
  201. uint8_t silenceFlag; //静音标志
  202. uint8_t pcaLockFlag; //PCA锁时标志
  203. uint8_t pcaCountDispFlag; //pca无效次数显示标志
  204. uint8_t pcaCountFlashFlag; //pca无效次数闪烁标志
  205. uint8_t pcaLockTimeFlag; //pca锁时次数显示标志
  206. uint8_t batLowPrepareFlag; //电池电压低预报标志
  207. uint8_t autoPowerOffFlag; //自动关机标志
  208. uint8_t sysPowerOffFlag; //系统关机标志
  209. uint8_t callFunctionFlag; //呼叫功能标志
  210. uint8_t lcdBlackFlag; //LCD背光标志
  211. uint8_t lcdFlashFlag; //LCD闪烁标志
  212. uint8_t lcdFlashFlag1; //LCD闪烁标志
  213. uint8_t lcdBlackFlashFlag; //LCD背光闪烁标志
  214. uint8_t sysStandbyFlag; //系统休眠标志
  215. uint8_t limitJudgeFlag; //极限量判断标志
  216. uint8_t sensorPWHallFlag; //主芯片低功耗标志,传感器电源控制-霍尔
  217. uint8_t sensorPWPressureFlag; //主芯片低功耗标志,传感器电源控制-压力传感器
  218. uint8_t sensorPWBatteryFlag; //主芯片低功耗标志,传感器电源控制-电池电压
  219. uint8_t testDispFlag; //测试显示标志
  220. uint8_t batteryVoltHeaderFlag; //电池电压标志
  221. uint8_t PCAOneTimeFlag; //第一次PCA按压
  222. uint8_t IrregularShutdownFlag; //非正常关机标志
  223. uint8_t NoActionHintFlag; //参数设置界面30未操作提示标志
  224. uint8_t JamSelfcheckingFlag; //堵塞自检标志
  225. uint8_t PasswordTimeOverFlag; //密码锁时解除标志
  226. uint8_t LimitBeginsTime; //极限计时开始
  227. uint8_t StartToRunDontSend; //运行长数据报第一条数据未发送成功标志
  228. uint8_t EnterDelayFlag; //输注参数长按Enter按键快速循环标志
  229. uint8_t HistoryDontSetFlag; //住院号未设置标志
  230. uint8_t AirOutFlag; //排气标志
  231. uint8_t AlarmInitFlag; //报警初始化标志
  232. uint8_t PCATimerFlashFlag; //PCA锁时闪烁标志
  233. uint8_t PCATimerFlashFlag1; //允许PCA锁时闪烁标志
  234. uint8_t LcdLogoFlag; //lcd屏幕第一排标志上锁、暂停消失标志
  235. uint8_t MqttSendFlag; //mqtt发送标志 add by wulianwei
  236. uint8_t MqttReSendFlag; //mqtt重发送标志 add by wulianwei
  237. uint8_t ModuleInitFlag; //模块初始化 add by wulianwei
  238. uint8_t NET_ONLINE_FLAG; //网络在线标志 add by wulianwei
  239. } TaskSchedulerFlagFrame;
  240. /* Task Timer structure */
  241. typedef struct
  242. {
  243. uint32_t delayTimer; //延时定时器
  244. uint32_t EnterDelayTimer; //Enter按键长按延时函数
  245. uint32_t rtdXmitTimer; //实时数据发送定时
  246. uint32_t pcaLockTimer; //PCA锁时时长
  247. uint16_t initFinishTimer; //初始化定时-系统运行超过3s后进入稳定工作状态,初始化完成
  248. uint16_t pressureConvertTimer; //压力传感器转换定时
  249. uint16_t timeReadTimer; //时间读取定时
  250. uint16_t dispAutoJumpTimer; //LCD页面自动跳转定时
  251. uint16_t lockDispTimer; //锁屏定时时间
  252. uint16_t speakerTimer; //蜂鸣器响声定时
  253. uint16_t speakerWaitTimer; //蜂鸣器等待下次响定时
  254. uint32_t totalDoseOneHourTimer; //总输注量1小时计时
  255. uint16_t sysRunTestTimer; //系统开始运行前测试计时
  256. uint16_t alarmCollectTimer; //报警采集时间
  257. uint16_t motorSignalCollectTimer;//电机信号采集计时
  258. uint32_t motorStopTimer; //电机停止计时
  259. uint16_t motorSelfTestTimer; //电机自检时间
  260. uint16_t hostXmitTimer; //主芯片发送给从芯片数据计时
  261. uint32_t lockPassWordTimer; //锁定密码页计时
  262. uint16_t universalTimer; //通用计时,可随意设置值
  263. uint16_t pcaCountsDispTimer; //PCA次数显示计时
  264. uint16_t pcaCountsFlashTimer; //PCA次数闪烁计时
  265. uint16_t pcaLockTimeDispTimer; //PCA锁时次数显示计时
  266. uint16_t batLowPrepareDispTimer; //电池低压预报显示计时
  267. uint16_t alarmLCDFlashTimer; //报警闪屏计时
  268. uint32_t autoPowerOffTimer; //自动关机计时
  269. uint16_t lcdBlackCloseTimer; //LCD背光关闭计时
  270. uint16_t sysStandbyTimer; //系统休眠计时
  271. uint16_t hostPowerSaveTimer; //主芯片节能计时
  272. uint16_t batteryVoltTimer; //电池电压采集计时
  273. uint8_t enterKeyScanTimer; //enter key 扫描时间
  274. uint8_t runPauseKeyScanTimer; //run/pause key 扫描时间
  275. uint8_t psKeyScanTimer; //密码/静音键 扫描时间
  276. uint8_t plusKeyScanTimer; //加号键 扫描时间
  277. uint8_t minusKeyScanTimer; //负号键 扫描时间
  278. uint8_t pcaKeyScanTimer; //PCA键 扫描时间
  279. uint8_t powerKeyScanTimer; //电源键扫描时间
  280. uint8_t airoutKeyScanTimer; //Airout键扫描时间
  281. uint32_t pcaOneHourTimer; //PCA一小时锁时
  282. uint32_t NoActionHintTimer; //参数设置界面30min计时
  283. uint32_t JamSelfcheckingTimer; //堵塞自检5min计时
  284. uint16_t PainAssessmentUploadTimer;//疼痛评价确认上传成功时间,假时间,
  285. uint32_t ModuleInitTimer; //模块初始化间隔时间 add by wulianwei
  286. uint32_t MQTTSendTimer; //模块初始化间隔时间 add by wulianwei
  287. uint32_t MQTTReSendTimer; //重发等地时间 add by wulianwei
  288. } TaskSchedulerTimerFrame;
  289. typedef struct
  290. {
  291. uint8_t modifyInfoType; //修改信息的类型 1住院号 2床号
  292. uint16_t sickroom; //病区3位
  293. uint16_t bedNO; //床号3位
  294. uint64_t hospitalNO; //住院号10位
  295. }VerifyInfoSetFrame;
  296. typedef enum
  297. {
  298. FirstEnter = 1, //页面首次运行
  299. Update = 2, //页面数据更新运行
  300. }PictureEnterType;
  301. typedef enum
  302. {
  303. FirstRun = 1, //首次运行
  304. MainRun = 2, //主页运行
  305. PCARun = 3, //PCA运行
  306. Pause = 4, //暂停
  307. Finsh = 5, //输液完成
  308. Airout = 6, //排气
  309. Poweroff = 7, //关机
  310. Poweron = 8, //开机
  311. StartWork = 9, //在开机了还没到确认信息处算开机工作状态
  312. StandBy = 10, //待机状态
  313. Alarm = 11, //报警状态
  314. SelfTest = 12, //自检状态
  315. WaitState = 0xff,//等待状态
  316. }RunStateType;
  317. typedef enum
  318. {
  319. Year = 1, //年
  320. Month = 2, //月
  321. Date = 3, //日
  322. Hour = 4, //时
  323. Minute = 5, //分
  324. }SetTimeType;
  325. typedef enum
  326. {
  327. TotalDose = 1, //总量
  328. FirstDose = 2, //首次量
  329. continueDose = 3, //持续运行
  330. Superaddition = 4, //追加量
  331. LockTime = 5, //锁时
  332. LimitDose = 6, //极限量
  333. continueDose2 = 7, //持续运行2
  334. Superaddition2 = 8, //追加量2
  335. LockTime2 = 9, //锁时2
  336. LimitDose2 = 10, //极限量2
  337. }ParamType;
  338. typedef enum
  339. {
  340. Pruritus = 1, //瘙痒
  341. RASS = 2, //镇静评分
  342. PONV = 3, //恶心呕吐
  343. LimbMyodynamia = 4, //四肢肌力
  344. PainEvaluate = 5, //疼痛评价
  345. VerifyEvaluate = 6,//确认评价
  346. LeftArm = 7,//左上肢
  347. RightArm = 8,//右上肢
  348. LeftLeg = 9,//左下肢
  349. RightLeg = 10,//右下肢
  350. Static = 11,//静止
  351. Activity = 12,//活动
  352. CACSI = 13,//满意度
  353. Valuer = 14,//评价人
  354. VerifyUpload = 15,//上传确认
  355. Uploading = 16,//上传中
  356. UploadFinshed = 17,//已上传完成
  357. UploadFall = 18,//上传失败
  358. }EvaluateTransfuseType;
  359. typedef struct
  360. {
  361. ParamType emModifyParam;
  362. uint8_t deviceID[16]; //设备ID
  363. uint8_t password[3]; //密码
  364. uint8_t pwmSetValue[4]; //pwm占空比设置值
  365. uint8_t sickroom[3]; //病区3位
  366. uint8_t bedNO[3]; //床号3位
  367. uint8_t hospitalNO[10]; //住院号10位
  368. uint16_t totalDose; //总量
  369. uint16_t firstDose; //首次量
  370. uint16_t continueDose1; //持续量(第一次输注参数)
  371. uint16_t superaddition1; //追加量(第一次输注参数)
  372. uint16_t lockTime1; //锁时(第一次输注参数)
  373. uint16_t limitDose1; //极限量(第一次输注参数)
  374. uint16_t continueDose2; //持续量(第二次输注参数)
  375. uint16_t superaddition2; //追加量(第二次输注参数)
  376. uint16_t lockTime2; //锁时(第二次输注参数)
  377. uint16_t limitDose2; //极限量(第二次输注参数)
  378. }SetParamFrame;
  379. typedef struct
  380. {
  381. uint16_t pwmSetValue; //pwm占空比设置值
  382. uint16_t totalDose; //总量
  383. uint16_t firstDose; //首次量
  384. uint16_t continueDose; //持续量
  385. uint16_t limitDose; //极限量
  386. uint16_t superaddition; //追加量
  387. uint16_t lockTime; //锁时
  388. }RunParamFrame;//运行参数
  389. typedef struct
  390. {
  391. uint16_t airoutValue; //排气量
  392. // uint16_t totalDose; //总量
  393. uint16_t firstDose; //首次量
  394. uint16_t continueDose; //持续量
  395. uint16_t superaddition; //追加量
  396. uint16_t lockTime; //锁时
  397. uint16_t limitDose; //极限量
  398. uint16_t pressureF; //压力值
  399. uint16_t pressure; //压强值
  400. uint16_t pressureF2; //压力值
  401. uint16_t pressure2; //压强值
  402. uint16_t batteryVolt; //电池电压值
  403. uint16_t hall1Counter; //霍尔1计数器,当电机转两圈时数值+2,电机转动一圈是0.05ml
  404. uint16_t hall2Counter; //霍尔2计数器,当电机转两圈时数值+4,电机转动一圈是0.05ml
  405. uint16_t preHall1; //前一次霍尔1计数值
  406. uint16_t preHall2; //前一次霍尔2计数值
  407. uint16_t motorSelfTestCount;//电机自检计数
  408. uint16_t surplusDose; //剩余量
  409. uint16_t selfContolDose; //自控量
  410. uint16_t inputDose; //已输入量
  411. uint16_t inputLimitDose; //已输入极限量
  412. uint16_t validCount; //有效次数
  413. uint16_t invalidCount; //无效次数
  414. uint8_t statePOST; //开机自检状态 power on self test
  415. RunStateType stateRun; //运行状态
  416. RunStateType ctlSlaveRun; //控制从机运行状态
  417. uint8_t statePause; //暂停状态
  418. uint64_t deviceID; //设备ID
  419. uint32_t InputTotalDose; //已输入总量
  420. uint8_t infusionMode; //实时输注状态(2017.7.22)
  421. }RTDFrame;//实时数据
  422. typedef struct
  423. {
  424. uint16_t year; //年
  425. uint8_t month; //月
  426. uint8_t date; //日
  427. uint8_t week; //周
  428. uint8_t hour; //时
  429. uint8_t minute;//分
  430. uint8_t seconds;//秒
  431. }TimeFrame;
  432. typedef struct
  433. {
  434. uint8_t alarmTimeMonth;//报警时间-月
  435. uint8_t alarmTimeDate;//报警时间-日
  436. uint8_t alarmTimeHour;//报警时间-时
  437. uint8_t alarmTimeMinute;//报警时间-分
  438. uint8_t alarmType;//报警类型 0:无报警 1:机械报警 2:堵塞报警 3:极限值
  439. //4:气泡或无液 5:未装药盒 6:电池电量 7:管道脱落 8:输注结束
  440. }AlarmFrame;
  441. typedef struct
  442. {
  443. uint8_t pruritus;//瘙痒
  444. uint8_t RASS;//镇静评分
  445. uint8_t PONV;//恶心呕吐
  446. uint8_t LeftArm;//左上肢
  447. uint8_t RightArm;//右上肢
  448. uint8_t LeftLeg;//左下肢
  449. uint8_t RightLeg;//右下肢
  450. uint8_t Static;//静止
  451. uint8_t Activity;//活动
  452. uint8_t CACSI;//满意度
  453. uint8_t Valuer;//评价人
  454. }EvaluateTransfuseFrame;
  455. typedef enum
  456. {
  457. DeviceIDChoose = 1,//设备ID
  458. PWMValueSetChoose = 2,//PWM值设置
  459. SickroomQty = 3,//病区位数
  460. BedNOQty = 4,//病床倍数
  461. HospitalNOQty = 5,//住院号位数
  462. NetworkState = 6,//网络:开/关
  463. EvaluateState = 7,//随访:开/关
  464. SeachState = 8,//查询:开/关
  465. PasswordState = 9,//密码:开/关
  466. SilenceState = 10,//静音:开/关
  467. ClosedState = 11,//扣合:开/关
  468. JamAlarm = 12,//堵塞:开/关
  469. BubbleAlarm = 13,//气泡或无液:开/关
  470. DeviceAlarm = 14,//机械报警:开/关
  471. Selfcontrol = 15,//自动流速
  472. Automatic = 16,//自动控制
  473. pressure_button=17,//压力显示开关
  474. test = 18,//网络测试开关
  475. }EngineeringModeType;//工程控制画面设置选择
  476. typedef struct
  477. {
  478. uint8_t sickroomQty;//病区位数
  479. uint8_t bedNOQty;//病床倍数
  480. uint8_t hospitalNOQty;//住院号位数
  481. uint8_t networkState;//网络:开/关
  482. uint8_t evaluateState;//随访:开/关
  483. uint8_t seachState;//查询:开/关
  484. uint8_t passwordState;//密码:开/关
  485. uint8_t silenceState;//声音:开/关
  486. uint8_t closedState;//扣合:开/关
  487. uint8_t jamAlarm;//堵塞:开/关
  488. uint8_t bubbleAlarm;//气泡或无液:开/关
  489. uint8_t deviceAlarm;//机械报警:开/关
  490. uint8_t automatic;//自动调整:开/关
  491. uint16_t selfcontrol;//自动流速
  492. uint8_t pressure_switch;//压力显示:开/关
  493. uint8_t test;
  494. }EngineeringModeFrame;//工程模式
  495. typedef enum
  496. {
  497. SoundOff, //静音
  498. StartupTone, //开机音
  499. VerificationTone, //确认音
  500. WarringTone, //提示音
  501. InfusionTone, //输注完毕
  502. KeypadShortTone, //短按键音
  503. KeypadLongTone, //长按键音
  504. SoundWait, //等待提示音完成
  505. Sound_prepore, //预报警声音
  506. RemindeTone, //无操作提示音
  507. LowPriWarning, //低优先级报警
  508. SoundWate //等待
  509. }SpeakerType;
  510. extern TaskSchedulerFlagFrame TaskSchedulerFlag;//任务调度标志
  511. extern TaskSchedulerTimerFrame TaskSchedulerTimer;//任务调度定时器
  512. extern KeyTypeFrame KeyScanStatus;//按键扫描状态
  513. extern KeyFlagFrame KeyActionFlag;//按键动作标志
  514. extern KeyScanQtyFrame KeyScanQty;//按键扫描次数
  515. extern KeyFlagFrame MoreKeyActionFlag;//多键组合动作标志
  516. extern const uint8_t deviceID[16];//设备ID
  517. extern VerifyInfoSetFrame verifyInfo;//病人住院信息确认
  518. extern SetParamFrame setParamInfo;//参数设置信息
  519. extern RTDFrame realTimeData;//实时数据
  520. extern RunParamFrame runParamInfo;//运行参数,因为有两页参数设置相同的参数,所以要有个运行参数
  521. extern AlarmFrame alarmRecord;//报警信息存储
  522. extern SetTimeType emSetTimeChoose;//时间设置选择
  523. extern TimeFrame displayTimeBuf;//显示时间
  524. extern TimeFrame setTimeBuf;//显示时间
  525. extern uint8_t dateLimit;//日期分为29,30,31
  526. extern EvaluateTransfuseType emEvaluateTransfuseChoose;//随访评价选择类型
  527. extern EvaluateTransfuseFrame evaluateTransfuseValue;//随访评价中的数据
  528. extern EngineeringModeType emEngineeringMode3Choose;//工程控制画面3设置选择类型
  529. extern EngineeringModeType emEngineeringMode1Choose;//工程控制画面1设置选择类型
  530. extern EngineeringModeFrame EngineeringModeValue;//工程模式中的数据
  531. extern uint8_t lockPasswordStep;//锁定密码步骤
  532. extern uint16_t lockPasswordDisp;//锁定密码
  533. extern uint8_t setPasswordBuf[3];//密码设置--设置密码界面变量
  534. extern uint8_t verifyPasswordBuf[3];//确认密码--设置密码界面变量
  535. extern PictureEnterType emPictureRunState;//页面运行状态,是首次进入,还是有数据更新
  536. extern bool motorWorkState;//电机工作状态
  537. extern SpeakerType sysPromptToneType; //蜂鸣器提示音类型
  538. extern SpeakerType SysHornToneType; //喇叭提示音类型
  539. extern uint8_t sysPromptToneCounts;//提示音响的次数
  540. extern uint16_t batteryVoltLowValue;//电池电压报警
  541. extern uint8_t testDispCounts;//测试页面数据次数
  542. extern uint8_t RunToLorawawn_flag;//在运行时,发送lorawan数据的标志
  543. extern uint8_t StartToRun_flag; //当按下运行按键的时候,置位该标志
  544. extern uint8_t start_flag; //运行按键启动标志,用于压力值得判断标志
  545. extern uint8_t ElectStartCount; //按运行按键时,电流采集次数,求基准值
  546. extern uint8_t FirstSurplusDose; //堵塞时首次量剩余量
  547. extern uint8_t PCASurplusDose; //堵塞时PCA量剩余量
  548. extern SpeakerWorkType speakerWorkStep;//蜂鸣器工作类型
  549. void Delay_ms(uint32_t nCount);
  550. void StateOfSystem( void );
  551. void SystemSWInit( void );
  552. void StartupSWInit( void );
  553. void RunParamUpdate( void );
  554. void SetParamUpdate( void );
  555. void StartupSWInit( void );
  556. uint16_t CalCRC16(uint8_t *puchMsg, uint16_t usDataLen);
  557. void Delay_ms(uint32_t nCount);
  558. #endif