| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255 |
- #include "stm32f10x.h"
- #include <stdio.h>
- #include <stdarg.h>
- #include <string.h>
- #include <stdlib.h>
- #include "PumpBusiness.h"
- #include "Usart1.h"
- #include "CONFIG.h"
- #include "Initialize.h"
- #include "UDP_Client.h"
- #include "Timer_Module.h"
- #include "Log_Module.h"
- #include "At_Module.h"
- #include "Pump_Dicts_Util.h"
- #include "Tuoreniot.h"
- #include "Regist.h"
- #include "UDP_Client.h"
- // 联网成功标识
- uint8_t Network_Success_Flag = 0;
- struct PUMPDICTS_ParamsStruct pump_params; // 泵参数
- static uint16_t Data_Number = 0; // 数据编号
- static uint16_t Data_success_Number = 0; // 成功包
- static uint16_t Data_fail_Number = 0; // 失败包
- int RSRP1=0;
- int RSRQ2=0;
- int RSSI3=0;
- int SINR4=0;
- // 泵参数初始化
- static void PUMPBUSINESS_ParamsInit(void)
- {
- pump_params.userId = 0;
- pump_params.pumpType = 0;
- pump_params.infusionId = 0;
- pump_params.appendDose=0;
- //报警初始化
- pump_params.alarm_BubbleOrAneroid = 0;
- pump_params.alarm_Blocked = 0;
- pump_params.alarm_Total = 0;
- pump_params.alarm_Ultimate = 0;
- pump_params.alarm_LowPower = 0;
- pump_params.alarm_Finished = 0;
- pump_params.alarm_MotorOutofcontrol = 0;
- pump_params.alarm_MechanicalBreakdown = 0;
- pump_params.alarm_UnfilledPillBox = 0;
- //预报初始化
- pump_params.forcast_WillFinished = 0;
- pump_params.forcast_InsufficientAnalgesia = 0;
- pump_params.forcast_LowPowerForecast = 0;
-
- #if BC260Y
- pump_params.networkType=2;
- #endif
-
- #if EC800M
- pump_params.networkType=1;
- #endif
- }
- // 刷新泵数据
- void PUMPBUSINESS_ParamsRefresh(void)
- {
- // 初始化
- PUMPBUSINESS_ParamsInit();
- pump_params.userId = 1000;
- pump_params.pumpType = 1;
- pump_params.infusionId = 234;
-
- pump_params.dataNumber = Data_Number;
- pump_params.electricity=99;
- pump_params.validTimes=10;
- pump_params.appendDose=3;
- pump_params.invalidTimes=4;
- pump_params.patientCode = 2000;
- pump_params.totalDose=11;
- pump_params.ward=2; // 编号124,病区。
- pump_params.bedNo=3; // 编号125,床号。
- pump_params.alarm_LowPower = 1;
- pump_params.alarm_Total = 1;
- pump_params.finishDose =20;
- pump_params.alarm_UnfilledPillBox = 1;
- pump_params.forcast_WillFinished =1;
- pump_params.forcast_InsufficientAnalgesia = 0;
- pump_params.forcast_LowPowerForecast = 0;
- }
- // 初始化结果处理
- static void Initialize_ResultHandle()
- {
- // 初始化过程处理
- if(INITIALIZE_GetStatus() == INITIALIZE_Status_Being)
- {
- // 初始化流程处理
- INITIALIZE_ProcessHandle();
- }
- else if(INITIALIZE_GetStatus() == INITIALIZE_Status_Done)
- {
- Log_Printf_Debug("初始化结束\r\n");
- if(INITIALIZE_GetResult() == INITIALIZE_Result_Success)
- {
- Log_Printf_Debug("初始化成功: %d\r\n", INITIALIZE_GetResult());
- Network_Success_Flag = 1;
- }
- else if(INITIALIZE_GetResult() == INITIALIZE_Result_Failure)
- {
- Log_Printf_Debug("初始化失败: %d\r\n", INITIALIZE_GetResult());
- Network_Success_Flag = 0;
- }
- // 重置初始化
- INITIALIZE_Reset();
- }
- }
- // 注册结果处理
- static void Regist_ResultHandle()
- {
- // 注册过程处理
- if(REGIST_GetStatus() == REGIST_Status_Being)
- {
- // 注册流程处理
- REGIST_ProcessHandle();
- }
- else if(REGIST_GetStatus() == REGIST_Status_Done)
- {
- Log_Printf_Debug("注册结束\r\n");
- if(REGIST_GetResult() == REGIST_Result_Success)
- {
- Log_Printf_Debug("注册成功: %d\r\n", REGIST_GetResult());
- Network_Success_Flag = 1;
- }
- else if(REGIST_GetResult() == REGIST_Result_Failure)
- {
- Log_Printf_Debug("注册失败: %d\r\n", REGIST_GetResult());
- Network_Success_Flag = 0;
- }
- // 重置注册
- // REGIST_Reset();
- }
- }
- // 定时发送
- // 计时相关的变量
- static struct TIMER_Struct timer;
- static uint32_t Business_wait_time = 1200; // 秒
- uint8_t send_data_switch = 1; // 发送数据的开关,0表示发送数据
- static void UDPClient_SendDataInterval()
- {
- // 定时发送数据
- if(time_get_delay(&timer) > 1000 * Business_wait_time) // // 定时时间,20分钟
- {
- // 20分钟计时完成,处理业务
- send_data_switch = 1; // 发送数据标志
- time_clear(&timer); // 重新定时
- Log_Printf_Debug("PumpBusines_Handle\r\n");
- }
-
- // 判断发送
- if(send_data_switch == 1)
- {
- // 初始化流程处于空闲, 注册流程处于空闲,注册成功时发送
- if(INITIALIZE_GetStatus() == INITIALIZE_Status_None
- && REGIST_GetStatus() == REGIST_Status_None
- && TUORENIOT_GetCodeOfRegistResponse() == 200)
- {
- Log_Printf_Debug("开始发送\r\n");
- UDPCLIENT_Start();
- send_data_switch = 0;
- // 数据编号加1
- Data_Number++;
- }
- }
- }
- // 发送结果处理
- static void UDPClient_ResultHandle()
- {
- // 发送过程处理
- if(UDPCLIENT_GetStatus() == UDPCLIENT_Status_Being)
- {
- // 发送流程处理
- UDPCLIENT_ProcessHandle();
- }
- else if(UDPCLIENT_GetStatus() == UDPCLIENT_Status_Done)
- {
- Log_Printf_Debug("发送结束\r\n");
- if(UDPCLIENT_GetResult() == UDPCLIENT_Result_Success)
- {
- Log_Printf_Debug("发送成功: %d\r\n", UDPCLIENT_GetResult());
-
- if(UDPCLIENT_TestModeFlag==1){
- UDPCLIENT_QuerySignal(&RSRP1,&RSRQ2,&RSSI3,&SINR4);
- Log_Printf("\r\nRSRP1:%d,RSRQ2:%d,RSSI3:%d,SINR4:%d\r\n", RSRP1,RSRQ2,RSSI3,SINR4);
- }
- Network_Success_Flag = 1;
- Data_success_Number++;
- }
- else if(UDPCLIENT_GetResult() == UDPCLIENT_Result_Failure)
- {
- Log_Printf_Debug("发送失败: %d\r\n", UDPCLIENT_GetResult());
- Network_Success_Flag = 0;
- Data_fail_Number++;
- }
- // 重置发送
- UDPCLIENT_Reset();
- }
- }
- // 业务处理
- static void PUMPBUSINESS_Process(void)
- {
- // 初始化诱因处理
- INITIALIZE_TriggerHandle();
- // 初始化结果处理
- Initialize_ResultHandle();
-
- // 注册结果处理
- Regist_ResultHandle();
-
- // 定时发送数据
- UDPClient_SendDataInterval();
- // 发送结果处理
- UDPClient_ResultHandle();
-
- // 一些未处理的数据
- AT_ResidueHandle();
- }
- // 初始化,放到while前
- void PUMPBUSINESS_Init(void)
- {
- TUORENIOT_Init();
- }
- // 流程处理,放到while循环
- void PUMPBUSINESS_ProcessHandle(void)
- {
- PUMPBUSINESS_Process();
- }
|