| | |
| | | #include "system_mem_para.h" |
| | | #include "power_manage.h" |
| | | #include "linked_list.h" |
| | | #include "sizhu_alarm_record.h" |
| | | #include "sizhu_event_record.h" |
| | | |
| | | __IO VALVE_CTRL_PARA_T valve_ctrl_para_g; |
| | | |
| | |
| | | { |
| | | |
| | | //ÅжÏÊÇ·ñÐèÒª½èµç¹Ø·§,ÎÞÍâµç£¬¼îµçµôµç»òÕßÒÆ³ý״̬Ͻèµã |
| | | if(__SYS_STATUS_BYTES_GET(alka_remove) == SET && __SYS_STATUS_BYTES_GET(alka_down) == SET){ |
| | | if(__SYS_STATUS_BYTES_GET(alka_remove) == SET || __SYS_STATUS_BYTES_GET(alka_down) == SET){ |
| | | if(__SYS_STATUS_BYTES_GET(power_state) == RESET){ |
| | | borrow_Pwr_GPIO_Clk_Init(); |
| | | BORROW_PWR_ON; |
| | |
| | | ValveMotorStop(); |
| | | save_valve_para_g.valve_status = VALVE_OPEN; |
| | | valve_ctrl_para_g.close_time_cnt = 0; |
| | | sizhuValveActionLogHandle(valve_ctrl_para_g.valve_ctrl_source, valve_ctrl_para_g.valve_ctrl_order,ALARM_ID_NORMAL); |
| | | valve_ctrl_para_g.valve_ctrl_order = VC_NONE; |
| | | |
| | | }else{ |
| | |
| | | ValveMotorOpenRun(); |
| | | |
| | | save_valve_para_g.valve_status = VALVE_OPENING; |
| | | sizhuValveActionLogHandle(valve_ctrl_para_g.valve_ctrl_source, valve_ctrl_para_g.valve_ctrl_order,ALARM_ID_NORMAL); |
| | | valve_ctrl_para_g.valve_ctrl_order = VC_NONE; |
| | | delay_ms(10); //ÑÓºó´ò¿ªÖÕ¶Ë |
| | | GPIO_EXTI_Init( Motor_OP_PORT, Motor_OP_PIN, EXTI_FALLING, ENABLE); |
| | | } |
| | | } |
| | | }else if(valve_ctrl_para_g.valve_ctrl_order == VC_CLOSE){ |
| | | }else if((valve_ctrl_para_g.valve_ctrl_order == VC_CLOSE)||(valve_ctrl_para_g.valve_ctrl_order == VC_CLOSE_AND_LOCK )){ |
| | | if(Read_OP_CL_VALVE_Status(0) == VALVE_CLOSE){ |
| | | ValveMotorStop(); |
| | | save_valve_para_g.valve_status = VALVE_CLOSE; |
| | | valve_ctrl_para_g.open_time_cnt = 0; |
| | | if((save_valve_para_g.valve_lock_state == VL_UNLOCK)&&(valve_ctrl_para_g.valve_ctrl_order == VC_CLOSE_AND_LOCK)) |
| | | { |
| | | save_valve_para_g.valve_lock_state = VL_LOCK ; |
| | | } |
| | | sizhuValveActionLogHandle(valve_ctrl_para_g.valve_ctrl_source, valve_ctrl_para_g.valve_ctrl_order,save_valve_para_g.valve_close_ID); |
| | | valve_ctrl_para_g.valve_ctrl_order = VC_NONE; |
| | | |
| | | |
| | | }else{ |
| | | if(sys_fun_run_ctrl_p->rs485_ctrl_flag.running_flag==SET||sys_fun_run_ctrl_p->wrc_ctrl_flag.running_flag==SET){ //?Ô¶´«¡¢485²É¼¯µÈÇé¿öÏÂÑÓ³ÙÖ´Ðз§ÃŶ¯×÷ |
| | |
| | | ValveMotorCloseRun(); |
| | | |
| | | save_valve_para_g.valve_status = VALVE_CLOSING; |
| | | |
| | | if((save_valve_para_g.valve_lock_state == VL_UNLOCK)&&(valve_ctrl_para_g.valve_ctrl_order == VC_CLOSE_AND_LOCK)) |
| | | { |
| | | save_valve_para_g.valve_lock_state = VL_LOCK ; |
| | | } |
| | | |
| | | sizhuValveActionLogHandle(valve_ctrl_para_g.valve_ctrl_source, valve_ctrl_para_g.valve_ctrl_order,save_valve_para_g.valve_close_ID); |
| | | valve_ctrl_para_g.valve_ctrl_order = VC_NONE; |
| | | |
| | | delay_ms(10); //ÑÓºó´ò¿ªÖÕ¶Ë |
| | | GPIO_EXTI_Init( Motor_CL_PORT, Motor_CL_PIN, EXTI_FALLING, ENABLE); |
| | | } |
| | | } |
| | | }else if(valve_ctrl_para_g.valve_ctrl_order == VC_LOCK){ |
| | | if(save_valve_para_g.valve_lock_state == VL_UNLOCK) |
| | | { |
| | | save_valve_para_g.valve_lock_state = VL_LOCK ; |
| | | sizhuValveActionLogHandle(valve_ctrl_para_g.valve_ctrl_source, valve_ctrl_para_g.valve_ctrl_order,ALARM_ID_NORMAL); |
| | | } |
| | | valve_ctrl_para_g.valve_ctrl_order = VC_NONE; |
| | | |
| | | }else if(valve_ctrl_para_g.valve_ctrl_order == VC_UNLOCK){ |
| | | if(save_valve_para_g.valve_lock_state == VL_LOCK) |
| | | { |
| | | save_valve_para_g.valve_lock_state = VL_UNLOCK; |
| | | sizhuValveActionLogHandle(valve_ctrl_para_g.valve_ctrl_source, valve_ctrl_para_g.valve_ctrl_order,ALARM_ID_NORMAL); |
| | | } |
| | | valve_ctrl_para_g.valve_ctrl_order = VC_NONE; |
| | | }else{ |
| | | |
| | | } |
| | |
| | | |
| | | |
| | | //·§ÃŲÙ×÷º¯Êý£¬Èç¹û·§ÃÅÕý¿ª¹ý³ÌÖУ¬´¥·¢¹Ø·§£¬ÔòÐèҪֹͣ¿ª·§£¬×ª¶ø½øÐйط§ |
| | | ErrorStatus ValveCtrlOrder(VALVE_CTRL_TYPE_T valve_ctrl_order_l) |
| | | ErrorStatus ValveCtrlOrder(VALVE_CTRL_TYPE_T valve_ctrl_order_l,VALVE_CTRL_SOURCE_T valve_ctrl_source) |
| | | { |
| | | valve_ctrl_para_g.valve_ctrl_source = valve_ctrl_source; |
| | | switch(valve_ctrl_order_l){ |
| | | case VC_NONE:break; |
| | | case VC_OPEN: |
| | | |
| | | if((__SYS_STATUS_BYTES_GET(alka_remove) == SET || __SYS_STATUS_BYTES_GET(alka_down) == SET)&&(__SYS_STATUS_BYTES_GET(power_state) ==RESET)){ |
| | | return FAIL;//¼îµçûµçÇÒûÓÐÍâµç£¬²»ÔÊÐí¿ª·¢ |
| | | } |
| | | if((save_valve_para_g.valve_status == VALVE_CLOSE)&&(valve_ctrl_para_g.force_open_status==RESET)){ |
| | | valve_ctrl_para_g.valve_ctrl_order = VC_OPEN; |
| | | pwr_vol_g.alka_flag = AMS_VALVE_CTRL_BEFORE; |
| | |
| | | if((save_valve_para_g.valve_status != VALVE_CLOSE)&&(save_valve_para_g.valve_status != VALVE_CLOSING)&&(valve_ctrl_para_g.force_open_status==RESET)){ |
| | | valve_ctrl_para_g.valve_ctrl_order = VC_CLOSE; |
| | | pwr_vol_g.alka_flag = AMS_VALVE_CTRL_BEFORE; |
| | | return PASS; |
| | | } |
| | | break; |
| | | return PASS; |
| | | // break; |
| | | case VC_CLOSE_AND_LOCK: |
| | | valve_ctrl_para_g.valve_ctrl_order = VC_LOCK; //ÏȽöËø¶¨£¬ÔÚÅжϷ§ÃÅ״̬¿´Ðè²»ÐèÒªÖ´Ðйط§ |
| | | if((save_valve_para_g.valve_status != VALVE_CLOSE)&&(save_valve_para_g.valve_status != VALVE_CLOSING)&&(valve_ctrl_para_g.force_open_status==RESET)){ |
| | | valve_ctrl_para_g.valve_ctrl_order = VC_CLOSE_AND_LOCK; |
| | | pwr_vol_g.alka_flag = AMS_VALVE_CTRL_BEFORE; |
| | | |
| | | } |
| | | return PASS; |
| | | |
| | | case VC_UNLOCK: |
| | | save_valve_para_g.valve_lock_state = VL_UNLOCK; |
| | | valve_ctrl_para_g.valve_ctrl_order = VC_UNLOCK; |
| | | return PASS; |
| | | // break; |
| | | |
| | | case VC_LOCK: |
| | | save_valve_para_g.valve_lock_state = VL_LOCK; |
| | | valve_ctrl_para_g.valve_ctrl_order = VC_LOCK; |
| | | return PASS; |
| | | // break; |
| | | |