| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487 |
- /* MAIN.C file
- *
- * stm32-project
- */
- /******************************
- 修改记录:
- 1、
- 修改人:鲍胜文
- 修改日期:2017年3月18日
- 修改内容:增加输入总量报警功能
- 2、
- 修改人:鲍胜文
- 修改日期:2017年3月22日
- 修改内容:1)修改显示界面中的极限量由1~200为1~90
- 2)修改在工程模式下的自控流速由0~400调整为0~100
- 3、
- 修改人:鲍胜文
- 修改日期:2017年3月23日
- 修改内容:1)修改压力采集突然出现数字偏大的问题
- 4、
- 修改人:鲍胜文
- 修改日期:2017年3月24日
- 修改内容:1)修改预报警后无声音报警,只有光标闪烁
- 5、
- 修改人:鲍胜文
- 修改日期:2017年4月10日
- 修改内容:1)修改报警时,按按键蜂鸣器长鸣
- 2)修改自控时报警,按暂停键暂停,再启动乱码问题,现在直接进入主运行界面
-
- 6、
- 修改人:鲍胜文
- 修改日期:2017年4月11日
- 修改内容:1)修改泵头在进行自控运行时,如果此时出现扣合、堵塞、气泡报警,在对报警
- 进行出理时出现乱码,随后再次运行,自控按键失灵的问题
-
- 7、
- 修改人:鲍胜文
- 修改日期:2017年4月15日
- 修改内容:1)修改首次量不计入极限量计算
- 2)修改在运行过程中,进行参数设置后,再次运行,已输入量清零的问题
-
- 8、
- 修改人:鲍胜文
- 修改日期:2017年4月17日
- 修改内容:1)修改电池预报警,响一声,之后只光标闪烁
-
- 9、
- 修改人:鲍胜文
- 修改日期:2017年4月18日
- 修改内容:1)修改在输入量不为零,输入完毕报警不记忆
- 2)修改首次量、追加完成后,输入完毕报警不记忆
- 10、
- 修改人:鲍胜文
- 修改日期:2017年5月2日
- 修改内容:1)修改剩余量在上位机显示负数的问题
-
- 11、
- 修改人:鲍胜文
- 修改日期:2017年5月3日
- 修改内容:1)修改自控手柄按键按一下会出现无效自控次数变多次
- 12、
- 修改人:鲍胜文
- 修改日期:2017年5月6日
- 修改内容:1)修改堵塞报警算法,以前是连续采集五次数据大于设定值,报警,
- 现在改为采集十次压力值,去掉一个最大值和最小值,取平均值,大于设定值报警,下次采集的最新值,替代最早的采集值。
- 13、
- 修改人:鲍胜文
- 修改日期:2017年5月19日
- 修改内容:1)修改预报警后,按键没有声音
- 2)修改当电池电压大于4.5V时,系统判断为是异常值,不停的在采集电压,导致霍尔一直有电,指示灯常亮,功耗增加,现在改为4.9
-
- 14、
- 修改人:鲍胜文
- 修改日期:2017年6月20日
- 修改内容:1)堵塞报警自适应程序,从按下启动按键后,连续采集五次压力数据,去掉最大值,去剩下四组数据的最大值做为堵塞压力基准值,在
- 此值基础上加3,做为堵塞报警的参考值
-
- 15、
- 修改人:鲍胜文
- 修改日期:2017年7月18日
- 修改内容:1)修改部分ADS1110出现的压力值不变的问题,是由于在没有压力的时候,芯片采集的数据很大,被舍弃掉后,采集次数为0,无法更新数据
-
- 16、
- 修改人:鲍胜文
- 修改日期:2017年8月4日
- 修改内容:1)修改电源按键长按,出现机械故障的问题
- 2)修改输入总量报警,偶尔出现误报的问题
- 17、
- 修改人:鲍胜文
- 修改日期:2017年8月5日
- 修改内容:1)修改在出现报警前,按静音/密码键,出现死机的问题
- 18、
- 修改人:鲍胜文
- 修改日期:2017年8月8日
- 修改内容:1)修改压力采集次数不稳、偏低的问题,目前通过对界面进行优化,提高采集次数
- 19、
- 修改人:鲍胜文
- 修改日期:2017年8月14日
- 修改内容:1)修改时间显示,秒显示没有变化
- 20、
- 修改人:冯伟旗
- 修改日期:2018年1月31日
- 修改内容:1)修改电池值刷新和电池图标刷新显示
- 20、
- 修改人:鲍胜文
- 修改日期:2018年3月23日
- 修改内容:1)针对模块深度睡眠对丢包率有影响,优化lorawan模块深度睡眠的模式。
- 21、
- 修改人:鲍胜文
- 修改日期:2018年4月12日
- 修改内容:
- 修改进入睡眠模式的方式,目前有两种情况可以进入睡眠模式:
- 1)数据发送后,判断lorawan模块是否发送完成,完成就进入睡眠模式,
- 2)收不到完成标志,为降低功耗,用定时的方式,发送完数据后,最多延时5s进入睡眠模式
- 22、
- 修改人:鲍胜文
- 修改日期:2018年7月23日
- 修改内容:
- 1)把“科技创新”修改为“应用创新”
- 2)当低电量预报警时,电池电压在预报警临界值时,在电机运行或者数据发送时,电池电量在临界值忽高忽低,导致预报警数据一直在发送
- 23、
- 修改人:鲍胜文
- 修改日期:2018年8月06日
- 修改内容:
- 1)目前数据包长度为64字节,需要拆分为两个数据包,一个在运行时发送,一个在异常或者修改参数时发送
- 2)一个数据包长度为:32字节,一个为15字节
- 24、
- 修改人:鲍胜文
- 修改日期:2018年9月05日
- 修改内容:
- 1)为增加数据发送的有效性,增加泵头和上位机的握手协议
- 25、
- 修改人:鲍胜文
- 修改日期:2018年12月25日
- 修改内容:
- 1)修改泵头和上位机的握手协议,有原来的泵号转变为住院号
- 26、
- 修改人:王利阳
- 修改日期:2019年01月
- 修改内容:
- )增加关机住院号清零函数
- )镇痛不足报警触发方式优化
- )取消镇痛评分
- )泵头历史记录修改100条改5条
- )万能密码120,并修改不可设置密码
- 修改日期:2019年02月
- )开机宣传标语修改
- )历史记录翻转时间3s改5s
- )
- 25、
- 修改人:鲍胜文
- 修改日期:2019年2月15日
- 修改内容:
- 1)修改去掉副芯片、在主芯片上增加副芯片的控制功能
- 26、
- 修改人:鲍胜文
- 修改日期:2019年2月25日
- 修改内容:
- 1)去掉外挂FLASH芯片,使用芯片内部flash
- 27、
- 修改人:鲍胜文
- 修改日期:2019年3月04日
- 修改内容:
- 1)优化报警声音、按键声音
- 2)修改报警声音,按照注册标准,声音变为滴滴滴三声,声音维持时间为200ms,第一声和第二声间隔为100ms,第二声和第三声间隔为200ms,脉冲群时间间隔为10s
- 3)背景光频率为0.4HZ,占空比为20%(亮0.5s,灭2秒)
- 4)修改报警声音,有原来的嘀嘀两声变为滴滴滴三声
- 5)修改静音按键,原来静音后,无法再回复,现在改为按下静音按键,2分钟后自动回复为非静音状态
- 6) 静音按键不在控制背光
- 28、
- 修改人:鲍胜文
- 修改日期:2019年3月08日
- 修改内容:
- 1)修改静音按键长按的时候,静音图标不显示,并且2min计时到后,静音功能不解除
- 2) 修改报警时,按静音按键,出现长鸣的情况
- 3)修改在静音2min内再次按压静音,静音2min重新计时问题
- 28、
- 修改人:鲍胜文
- 修改日期:2019年3月13日
- 修改内容:
- 1)修改输入总量报警时,屏幕一直闪烁,界面一直刷新问题
- 2)修改自控界面持续输注界面暂停图标自动上锁会一直闪烁,手动上锁暂停图标不闪烁
- 3)修改PCA按压时,连续两次按压时,出现无效次数瞬间增加到很大的问题,
- 29、
- 修改人:鲍胜文
- 修改日期:2019年3月16日
- 修改内容:
- 1)处理在关机过程中,预报警电池图标闪烁问题
- 2)处理在关机过程中,偶尔有按键有效
- 30、
- 修改人:鲍胜文
- 修改日期:2019年4月3日
- 修改内容:
- 1)添加LED指示灯功能
- 31、
- 修改人:鲍胜文
- 修改日期:2019年4月10日
- 修改内容:
- 1)增加红外气泡检测功能
- 32、
- 修改人:鲍胜文
- 修改日期:2019年4月22日
- 修改内容:
- 1)增加电机运行过程中,电流检测
- 33、
- 修改人:鲍胜文
- 修改日期:2019年4月29日
- 修改内容:
- 1)优化系统功耗,目前待机电流在12ms左右
- 2)修改电压检测机制,有原来ADC1连续的DMA采集方式,改为ADC2不连续采集,
- 34、
- 修改人:鲍胜文
- 修改日期:2019年5月6日
- 修改内容:
- 1)取消泵头时钟芯片功能
- 2)修改电池预报警电压值
- 3)制定预报警到电量耗尽报警的时间间隔,暂定40分钟
- 34、
- 修改人:鲍胜文
- 修改日期:2019年5月28日
- 修改内容:
- 1)增加气泡传感器的未装药盒报警功能:当红外气泡传感器采集的数据大于1300、小于1650时i,报未装药盒报警
- 2)增加电流检测堵塞报警功能:1>当采集电流大于1500,连续三次,直接报堵塞报警
- 2>当按下运行按键,前三个周期采集的电流值,去电一个最大值,去掉一个最小值,取中间值为
- 基准值,后面采集的数值和基准值做比较,当连续两个数值都大于基准值150时,报堵塞报警
- 3>增加电机失控检测机制,在WORK_OFF状态下,通过检测电机内部电流判断电机失控
- 35、
- 修改人:鲍胜文
- 修改日期:2019年6月20日
- 1)在原有的AD检测电流失控方式上,增加双路控制电机
- 2)数据存储有原来的0.1ml存储一次,改为1ml存储一下
- 3)修改电池预报警声音,有原来的循环声音报警改为只响一次
- 36、
- 修改人:王利阳
- 修改日期:2019.08.15
- 1)增加堵塞报警后手动解除,回到运行前界面
- 2)增加检测电池电量小于3.3v,三次后之间报警,且电量耗尽不能解除
- 修改日期:2020.01.09
- 1)限制排气量在100ml范围内
- 37、修改人:王利阳
- 修改日期:2021.01.14
- 1)历史记录做100条假数据,真实数据10条,第一条位最新数据,“+”按键一次类推
- 2)住院号修改为进入住院号设置界面即可
- 3)开始暂停键具有返回的功能,静音按键有返回功能
- 4)Enter按键具有长按快速跳转功能
- 38、修改人:王利阳
- 修改日期:2021.02.22
- 1)PCA运行状态下,发生报警,手动或自动解除返回到PCA界面
- 2)PCA锁时在报警、暂停界面下都能运行
- 39、修改人:王利阳
- 修改日期:2021.03.10
- 1)输注量50ml/h时,30s发送一次数据
- 2)设置界面电量耗尽报警半小时后喇叭不响
- 3)报警时屏幕背光闪三次后结束
- 4)低电压预报警打断其他报警声音
- 40、修改人:王利阳
- 修改日期:2021.03.23
- 1)取消电池预报警LED灯光闪烁
- 41、修改人:王利阳
- 修改日期:2021.03.26
- 1)PCA有效次数无效次数,PCA锁时闪烁,上锁、暂停、呼叫标志单独刷新,不跟随系统
- 42、修改人:吴连威
- 修改日期:2022.06.24
- 1)添加MQTT通信功能
- 2)添加MQTT注册功能
- ********************************/
- /*-------------------------------------------------------------------------------------------------------
- * System Start Here..
- -------------------------------------------------------------------------------------------------------*/
- #include "stm32f10x_rcc.h"
- #include "stm32f10x_gpio.h"
- #include "TypeDefine.h"
- #include "Driver.h"
- #include "TimerSetup.h"
- #include "ADS1110Setup.h"
- #include "ADS1110ASetup.h"
- #include "ADCSetup.h"
- #include "RTCSetup.h"
- #include "History.h"
- #include "ControlSystem.h"
- #include "DrawLCDGUI.h"
- #include "SystemAlarm.h"
- #include "ZigbeeDataHandle.h"
- #include "HostSlaveHandle.h"
- #include "FM31256.h"
- #include "lorawan.h"
- #include "Bubble_ADCSetup.h"
- #include "delay.h"
- #include "TypeDefine.h"
- #include "regist.h" // add by wulianwei
- #include "remote.h" // add by wulianwei
- #include "ProgramData.h" // add by wulianwei
- #include "module_wrapper.h" // add by wulianwei
- #include "CoapHandle.h" // add by wulianwei
- extern uint8_t time_1sflag;
- extern uint8_t time_3sflag;
- uint8_t test_buf[50] = {0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0a,0x0b,0x0c,
- 0x0d,0x0e,0x0f,0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1a,0x1b,0x1c,0x1d,0x1e,0x1f};
- extern uint8_t lorawan_init_flag;//lorawan初始化完成标志
- extern uint8_t self_check_finish; //自检完成标志
- /*********************************************************************************
- * Function: main
- * Object: 系统主函数
- * 输入: 无
- * 输出: 无
- * 备注: 1、对底层初始化HWSetup();
- * 2、对系统初始化SystemSWInit();
- * 3、控制系统初始化工作CntlSysInitWork();
- * 4、按键工作控制ScanKeyWorkType();
- * 5、系统工作步骤控制CntlSystemWorkStep();
- * 6、传感器电源控制CntlSensorPWWork();
- * 7、LCD显示刷新LCDPictureDisplay();
- * 8、系统报警判断SystemAlarmJudge();
- * 9、系统时间更新SystemTimeUpdate();
- * 10、系统休眠控制CntlSystemStandby();
- * 11、zigbee数据发送ZigbeeXmitHandle();
- * 12、zigbee数据接收处理ZigbeeRecvHandle();
- * 13、主从通信处理HostToSlaveHandle();
- * 14、蜂鸣器工作控制CntlSpeakerWork();
- * 15、自动关机控制CntlAutoPowerOff();
- * 16、背光工作控制CntlLCDBlackWork();
- * 17、系统按顺序执行函数,每个函数中都会有相应的标志位,
- * 如果有标志位置位则进行相应函数操作,否则直接跳出进入下一函数执行
- **********************************************************************************/
- int main(void)
- {
- //对底层初始化HWSetup()
- HWSetup();
- //对系统初始化SystemSWInit();
- SystemSWInit();
- // LoraNode_OTAA_Config(); //lorawan OTAA模式配置*/ // update by wulianwei
-
- ModelRegister(); //加载通讯模块 add by wulianwei
- if( EngineeringModeValue.networkState == ENGINEERINGMODE_ON )
- {
- DeviceRegist();//注册设备 add by wulianwei
- //GetDeviceConf();
- }
-
- if(EngineeringModeValue.networkState != ENGINEERINGMODE_ON || registInfo->flag != 'Y') at_module_low_power(); //网络模式关或注册失败,关闭通信模块射频功能
-
- //transparent_mode(); //透传模式配置
- while(1)
- {
- lorawan_Sleep(); //调用lorawan睡眠函数
-
- //控制系统初始化工作CntlSysInitWork();
- CntlSysInitWork();
-
- //按键工作控制ScanKeyWorkType();
- if( realTimeData.stateRun != Poweroff )//处理在关机过程中,偶尔有按键有效
- {
- ScanKeyWorkType();
- }
-
- //系统工作步骤控制CntlSystemWorkStep();
- CntlSystemWorkStep();
-
- //传感器电源控制CntlSensorPWWork();
- CntlSensorPWWork();
-
- //lec进度条刷新
- DrawScheduleDisplay();
-
- //LCD显示刷新LCDPictureDisplay();
- LCDPictureDisplay();
-
- //系统报警判断SystemAlarmJudge();
- SystemAlarmJudge();
- //系统时间更新SystemTimeUpdate();
- SystemTimeUpdate();
-
- //读取触力传感器的值
- // ContactForceUpdate();
-
- //采集电池电压
- BatteryVoltADCGet();
-
- //气泡检测
- OPB350L_ADCGet();
-
- //电机运行过程中的电流检测
- Electricity_ADCGet();
-
- //检测电机失控
- Electricity_WorkOffGet();
-
- //实时数据及状态更新
- RealTimeStateUpdate();
-
- //系统休眠控制CntlSystemStandby();
- //CntlSystemStandby();
- //zigbee数据发送ZigbeeXmitHandle();
- //ZigbeeXmitHandle(); // update by wulianwei
-
- //zigbee数据接收处理ZigbeeRecvHandle();
- ZigbeeRecvHandle();
- if( EngineeringModeValue.networkState == ENGINEERINGMODE_ON && registInfo->flag == 'Y')
- {
- CoapHandle(); // 处理MQTT通信 add by wulianwei
- remoteHandle();//远程配置功能
- }
-
- else
- {
- if(realTimeData.stateRun == Poweroff)
- {
- TaskSchedulerFlag.sysPowerOffFlag = TASK_FLAG_SET;//关机
- }
- }
-
- //处理uart2接收到的数据
- Uart2RecvHandle();
-
- //发送历史数据到PC
- // HistorySendToPC();
-
- //主从通信处理HostToSlaveHandle();
- HostToSlaveHandle();
-
- //蜂鸣器工作控制CntlSpeakerWork();
- CntlSpeakerWork();
-
- // CntlHornWork();
-
- //自动关机控制CntlAutoPowerOff();
- // CntlAutoPowerOff();
-
- //30min无操作自动提示
- CntlNoActionHint();
-
- CntlHornWork();
-
- //背光工作控制CntlLCDBlackWork();
- CntlLCDBlackWork();
-
- }
- /*while(1)
- {
- CntAlarmSpeaker(0x01);//喇叭单声提示音
- Delay_ms(500);
- }*/
- }
|