#include "main.h" #include "administrator.h" #include "string.h" #include "stdlib.h" #include "extern_rtc.h" #include "lcd.h" #include "main.h" #include "gprs.h" #include "sundry.h" #include "system_log.h" #include "gpio.h" /*ϵͳ²ÎÊýÐ޸ļǼ±ê־λ*/ PARA_AMEND_T sys_para_amend_log_flag_g = PARA_AMEND_NONE; /*±¨¾¯¼Ç¼ID*/ SYS_ALARM_VALVE_T sys_alarm_id_g = AV_NORMAL; // ÓÃÓÚ±¨¾¯ÈÕÖ¾´æ´¢ /*·§¿ØID*/ SYS_ALARM_VALVE_T sys_valve_ctl_id_g = AV_NORMAL; // ĬÈÏ״̬/±¨¾¯×Ö SYS_ADMIN_UNION_T sys_admin_g = {0,VALVE_OP}; /*ĬÈϵı¨¾¯¿ØÖÆ×Ö*/ TYPE_CHECK_SIZE(SYS_ALARM_CTL_SEND_UNION_T,14);//ºË²é½á¹¹Ìå´óС SYS_ALARM_CTL_SEND_UNION_T sys_alarm_ctl_bytes_g = {0x0120, 0x6002, 0x003F, 0x067F, 0x0800, 0x0132, 0x061F}; /*ĬÈϵı¨¾¯Éϱ¨×Ö*/ SYS_ALARM_CTL_SEND_UNION_T sys_alarm_send_bytes_g = {0x0120, 0x6002, 0x003F, 0x067F, 0x0800, 0x0130, 0x0001}; /*ĬÈϵŦÄÜ¿ØÖÆ×Ö*/ TYPE_CHECK_SIZE(SYS_FUNC_CFG_UNION_T,8);//ºË²é½á¹¹Ìå´óС SYS_FUNC_CFG_UNION_T sys_func_cfg_bytes_g = {((LCD_DISPLAY_MODE_T)SYS_LCD_DISPLAY_MODE_DEFAULT << 8) | 0x0010, 0, 0, 0x8044}; /*¸ù¾Ý¡¶·§ºÍÈ¼Æø±íµÄ״̬¡¢±¨¾¯µÈ¹²Óù¦ÄܵÄÊáÀí¡·Îĵµ¹éÄÉ£¬ÏêϸÀí½â¿É¿´¸ÃÎĵµ*/ static SYS_ALARM_VALVE_ID_FUNC_TABLE_DRV_T sys_av_id_tab_func_1[] = { {AV_NORMAL, 3, ALARM_BYTES_DAILY_NUM, &sys_admin_g.admin_union[6]}, // Íⲿ³ö³§ÔÝÎÞ±¨¾¯ID {AV_FLOW_DIRECTION, 5, ALARM_BYTES_DAILY_NUM, &sys_admin_g.admin_union[6]}, {A_RESTART, 8, ALARM_BYTES_DAILY_NUM, &sys_admin_g.admin_union[6]}, {AV_NORMAL, 9, ALARM_BYTES_DAILY_NUM, &sys_admin_g.admin_union[6]}, // Íâµç±¨¾¯½öÕë¶ÔÓÚ·§£¬È¼Æø±íÔÝÎÞ±¨¾¯ID {AV_UNCAP_1, 11, ALARM_BYTES_DAILY_NUM, &sys_admin_g.admin_union[6]}, }; static SYS_ALARM_VALVE_ID_FUNC_TABLE_DRV_T sys_av_id_tab_func_2[] = { {AV_VALVE_ERR, 0, ALARM_BYTES_DAILY_NUM, &sys_admin_g.admin_union[7]}, {AV_NORMAL, 1, ALARM_BYTES_DAILY_NUM, &sys_admin_g.admin_union[7]}, // ·§ÃÅ¿ª¹Ø·§ÎÞ±¨¾¯ID {AV_SET_CUMULATE, 4, ALARM_BYTES_DAILY_NUM, &sys_admin_g.admin_union[7]}, {AV_NO_USE_GAS, 5, ALARM_BYTES_DAILY_NUM, &sys_admin_g.admin_union[7]}, {AV_NO_GPRS, 6, ALARM_BYTES_DAILY_NUM, &sys_admin_g.admin_union[7]}, {AV_BALANCE_1, 11, ALARM_BYTES_DAILY_NUM, &sys_admin_g.admin_union[7]}, {AV_BALANCE_2, 12, ALARM_BYTES_DAILY_NUM, &sys_admin_g.admin_union[7]}, {AV_BALANCE_3, 13, ALARM_BYTES_DAILY_NUM, &sys_admin_g.admin_union[7]}, {AV_BALANCE_4, 14, ALARM_BYTES_DAILY_NUM, &sys_admin_g.admin_union[7]}, {AV_BALANCE_5, 15, ALARM_BYTES_DAILY_NUM, &sys_admin_g.admin_union[7]}, }; static SYS_ALARM_VALVE_ID_FUNC_TABLE_DRV_T sys_av_id_tab_func_3[] = { {AV_LITH_LOW, 0, ALARM_BYTES_DAILY_NUM, &sys_admin_g.admin_union[8]}, {AV_LITH_UNDER, 1, ALARM_BYTES_DAILY_NUM, &sys_admin_g.admin_union[8]}, {AV_LITH_REMOVE, 2, ALARM_BYTES_DAILY_NUM, &sys_admin_g.admin_union[8]}, {AV_ALKA_LOW, 3, ALARM_BYTES_DAILY_NUM, &sys_admin_g.admin_union[8]}, {AV_ALKA_UNDER, 4, ALARM_BYTES_DAILY_NUM, &sys_admin_g.admin_union[8]}, {AV_ALKA_REMOVE, 5, ALARM_BYTES_DAILY_NUM, &sys_admin_g.admin_union[8]}, {AV_GPRS_FAIL, 8, ALARM_BYTES_DAILY_NUM, &sys_admin_g.admin_union[8]}, }; static SYS_ALARM_VALVE_ID_FUNC_TABLE_DRV_T sys_av_id_tab_func_4[] = { {AV_TEMP_ERR, 0, ALARM_BYTES_DAILY_NUM, &sys_admin_g.admin_union[9]}, {AV_TEMP_UP, 1, ALARM_BYTES_DAILY_NUM, &sys_admin_g.admin_union[9]}, {AV_TEMP_UP_UP, 2, ALARM_BYTES_DAILY_NUM, &sys_admin_g.admin_union[9]}, {AV_TEMP_DOWN, 3, ALARM_BYTES_DAILY_NUM, &sys_admin_g.admin_union[9]}, {AV_TEMP_DOWN_DOWN, 4, ALARM_BYTES_DAILY_NUM, &sys_admin_g.admin_union[9]}, {AV_CPU_TEMP_UP, 5, ALARM_BYTES_DAILY_NUM, &sys_admin_g.admin_union[9]}, {AV_CPU_TEMP_DOWN, 6, ALARM_BYTES_DAILY_NUM, &sys_admin_g.admin_union[9]}, {AV_CPU_TEMP_DRASTIC_CHANGE, 7, ALARM_BYTES_DAILY_NUM, &sys_admin_g.admin_union[9]}, {AV_PRESS_ERR, 8, ALARM_BYTES_DAILY_NUM, &sys_admin_g.admin_union[9]}, {AV_PRESS_UP, 9, ALARM_BYTES_DAILY_NUM, &sys_admin_g.admin_union[9]}, {AV_PRESS_UP_UP, 10, ALARM_BYTES_DAILY_NUM, &sys_admin_g.admin_union[9]}, {AV_PRESS_DOWN, 11, ALARM_BYTES_DAILY_NUM, &sys_admin_g.admin_union[9]}, {AV_PRESS_DOWN_DOWN, 12, ALARM_BYTES_DAILY_NUM, &sys_admin_g.admin_union[9]}, }; static SYS_ALARM_VALVE_ID_FUNC_TABLE_DRV_T sys_av_id_tab_func_5[] = { {AV_FLOW_VEL_ERR, 0, ALARM_BYTES_DAILY_NUM, &sys_admin_g.admin_union[10]}, {AV_TOF_DIFF_ERR, 1, ALARM_BYTES_DAILY_NUM, &sys_admin_g.admin_union[10]}, {AV_SOUND_VEL_ERR, 2, ALARM_BYTES_DAILY_NUM, &sys_admin_g.admin_union[10]}, {AV_SNR_ERR, 3, ALARM_BYTES_DAILY_NUM, &sys_admin_g.admin_union[10]}, {AV_SIG_UP, 4, ALARM_BYTES_DAILY_NUM, &sys_admin_g.admin_union[10]}, {AV_SIG_TH_ERR, 5, ALARM_BYTES_DAILY_NUM, &sys_admin_g.admin_union[10]}, {AV_GAIN_ERR, 6, ALARM_BYTES_DAILY_NUM, &sys_admin_g.admin_union[10]}, {AV_UT_LOSE, 7, ALARM_BYTES_DAILY_NUM, &sys_admin_g.admin_union[10]}, {AV_INPUT_WATER_ERR, 8, ALARM_BYTES_DAILY_NUM, &sys_admin_g.admin_union[10]}, {AV_MEDIA_ERR, 9, ALARM_BYTES_DAILY_NUM, &sys_admin_g.admin_union[10]}, {AV_DISMANTLE, 10, ALARM_BYTES_DAILY_NUM, &sys_admin_g.admin_union[10]}, {AV_MEASURE_ERR, 11, ALARM_BYTES_DAILY_NUM, &sys_admin_g.admin_union[10]}, }; static SYS_ALARM_VALVE_ID_FUNC_TABLE_DRV_T sys_av_id_tab_func_6[] = { {AV_LEAKAGE, 0, ALARM_BYTES_DAILY_NUM, &sys_admin_g.admin_union[11]}, {AV_LCD_UP, 1, ALARM_BYTES_DAILY_NUM, &sys_admin_g.admin_union[11]}, {AV_LCD_TEMP_LOW, 2, ALARM_BYTES_DAILY_NUM, &sys_admin_g.admin_union[11]}, {AV_FLOW_UP_1, 3, ALARM_BYTES_DAILY_NUM, &sys_admin_g.admin_union[11]}, {AV_FLOW_UP_2, 4, ALARM_BYTES_DAILY_NUM, &sys_admin_g.admin_union[11]}, {AV_FLOW_UP_3, 5, ALARM_BYTES_DAILY_NUM, &sys_admin_g.admin_union[11]}, {AV_CONSTANT_TINY_FLOW, 6, ALARM_BYTES_DAILY_NUM, &sys_admin_g.admin_union[11]}, {AV_CONSTANT_FLOW, 7, ALARM_BYTES_DAILY_NUM, &sys_admin_g.admin_union[11]}, {AV_CL_HAVE_FLOW, 8, ALARM_BYTES_DAILY_NUM, &sys_admin_g.admin_union[11]}, }; /*µÚÆß¸ö±¨¾¯×ÖÎªÌØÊâÇé¿ö£¬Ïê¼ûÎĵµ*/ static SYS_ALARM_VALVE_ID_FUNC_TABLE_DRV_T sys_av_id_tab_func_7[] = { {(SYS_ALARM_VALVE_T)GAS_CUMULATE_PARA_AMEND, 0, 0, &sys_admin_g.admin_union[12]}, {(SYS_ALARM_VALVE_T)BALANCE_PARA_AMEND, 1, 0, &sys_admin_g.admin_union[12]}, {(SYS_ALARM_VALVE_T)TEMP_CFG_PARA_AMEND, 2, 0, &sys_admin_g.admin_union[12]}, {(SYS_ALARM_VALVE_T)PRESS_CFG_PARA_AMEND, 3, 0, &sys_admin_g.admin_union[12]}, {(SYS_ALARM_VALVE_T)BILLING_PARA_AMEND, 4, 0, &sys_admin_g.admin_union[12]}, {(SYS_ALARM_VALVE_T)GAS_CAL_PARA_AMEND, 8, 0, &sys_admin_g.admin_union[12]}, {(SYS_ALARM_VALVE_T)GAS_CFG_PARA_AMEND, 9, 0, &sys_admin_g.admin_union[12]}, {(SYS_ALARM_VALVE_T)PLUSE_CAL_PARA_AMEND, 10, 0, &sys_admin_g.admin_union[12]}, {(SYS_ALARM_VALVE_T)UT_ERR_PARA_AMEND, 11, 0, &sys_admin_g.admin_union[12]}, {(SYS_ALARM_VALVE_T)UT_CAL_PARA_AMEND, 12, 0, &sys_admin_g.admin_union[12]}, }; /*ÖØÖñ¨¾¯×ÖµÄÿÈÕÏÞÖÆ´ÎÊý*/ void Admin_AlarmBytes_DailyNumReset(uint8_t i_flag) { switch (i_flag) { case 0: for (uint8_t i = 0; i < SYS_ALARM_VALVE_ID_FUNC_TABLE_NUM_1; i++) { if (sys_av_id_tab_func_1[i].alarm_daily_num != ALARM_BYTES_DAILY_NUM) sys_av_id_tab_func_1[i].alarm_daily_num = ALARM_BYTES_DAILY_NUM; } case 1: for (uint8_t i = 0; i < SYS_ALARM_VALVE_ID_FUNC_TABLE_NUM_2; i++) { if (sys_av_id_tab_func_2[i].alarm_daily_num != ALARM_BYTES_DAILY_NUM) sys_av_id_tab_func_2[i].alarm_daily_num = ALARM_BYTES_DAILY_NUM; } case 2: for (uint8_t i = 0; i < SYS_ALARM_VALVE_ID_FUNC_TABLE_NUM_3; i++) { if (sys_av_id_tab_func_3[i].alarm_daily_num != ALARM_BYTES_DAILY_NUM) sys_av_id_tab_func_3[i].alarm_daily_num = ALARM_BYTES_DAILY_NUM; } case 3: for (uint8_t i = 0; i < SYS_ALARM_VALVE_ID_FUNC_TABLE_NUM_4; i++) { if (sys_av_id_tab_func_4[i].alarm_daily_num != ALARM_BYTES_DAILY_NUM) sys_av_id_tab_func_4[i].alarm_daily_num = ALARM_BYTES_DAILY_NUM; } case 4: for (uint8_t i = 0; i < SYS_ALARM_VALVE_ID_FUNC_TABLE_NUM_5; i++) { if (sys_av_id_tab_func_5[i].alarm_daily_num != ALARM_BYTES_DAILY_NUM) sys_av_id_tab_func_5[i].alarm_daily_num = ALARM_BYTES_DAILY_NUM; } case 5: for (uint8_t i = 0; i < SYS_ALARM_VALVE_ID_FUNC_TABLE_NUM_6; i++) { if (sys_av_id_tab_func_6[i].alarm_daily_num != ALARM_BYTES_DAILY_NUM) sys_av_id_tab_func_6[i].alarm_daily_num = ALARM_BYTES_DAILY_NUM; } default: break; } } /*ÅжÏijһ±¨¾¯×ÖÖеľßÌåÄÚÈݲ¢¸³Ó豨¾¯ID*/ void Admin_AlarmID(uint8_t i_flag, uint8_t send_alarm_flag,uint8_t *pGprs_send_flag_p) { switch (i_flag) { case 0: for (uint8_t i = 0; i < SYS_ALARM_VALVE_ID_FUNC_TABLE_NUM_1; i++) // ²é±í { /*±¨¾¯×ÖµÄijһλÊÇ·ñÖÃ룬ÖÃλ´ú±í²úÉú±¨¾¯*/ if ((*sys_av_id_tab_func_1[i].alarm_byte >> sys_av_id_tab_func_1[i].offset_bit) & 0x0001) { sys_show_state_bytes_id_g = sys_valve_ctl_id_g = sys_av_id_tab_func_1[i].alarm_valve_id; // ¸³ÓèĬÈϵı¨¾¯ID Alarm_List_Node_PushBack(&pList_head,sys_av_id_tab_func_1[i].alarm_valve_id); if (sys_av_id_tab_func_1[i].alarm_daily_num) // ÿÈÕÉϱ¨±¨¾¯´ÎÊýÏÞÖÆ { sys_alarm_id_g = sys_av_id_tab_func_1[i].alarm_valve_id;// ¸³ÓèĬÈϵı¨¾¯ID sys_av_id_tab_func_1[i].alarm_daily_num--; } else if(send_alarm_flag) *pGprs_send_flag_p = GPRS_MEANS_NONE; *sys_av_id_tab_func_1[i].alarm_byte &= (~(1 << sys_av_id_tab_func_1[i].offset_bit)); // ±¨¾¯×Ö¸ÃλÇåÁã break; } } break; case 1: for (uint8_t i = 0; i < SYS_ALARM_VALVE_ID_FUNC_TABLE_NUM_2; i++) // ²é±í { if ((*sys_av_id_tab_func_2[i].alarm_byte >> sys_av_id_tab_func_2[i].offset_bit) & 0x0001) { if(sys_av_id_tab_func_2[i].offset_bit != 1) //ÓÃÓÚ·ÀÖ¹·§ÃÅ¿ª¹Ø±¨¾¯³åµôÏÔʾ sys_show_state_bytes_id_g = sys_valve_ctl_id_g = sys_av_id_tab_func_2[i].alarm_valve_id; Alarm_List_Node_PushBack(&pList_head,sys_av_id_tab_func_2[i].alarm_valve_id); if (sys_av_id_tab_func_2[i].alarm_daily_num) { sys_alarm_id_g = sys_av_id_tab_func_2[i].alarm_valve_id; sys_av_id_tab_func_2[i].alarm_daily_num--; } else if(send_alarm_flag) *pGprs_send_flag_p = GPRS_MEANS_NONE; *sys_av_id_tab_func_2[i].alarm_byte &= (~(1 << sys_av_id_tab_func_2[i].offset_bit)); break; } } break; case 2: for (uint8_t i = 0; i < SYS_ALARM_VALVE_ID_FUNC_TABLE_NUM_3; i++) // ²é±í { if ((*sys_av_id_tab_func_3[i].alarm_byte >> sys_av_id_tab_func_3[i].offset_bit) & 0x0001) { sys_show_state_bytes_id_g = sys_valve_ctl_id_g = sys_av_id_tab_func_3[i].alarm_valve_id; Alarm_List_Node_PushBack(&pList_head,sys_av_id_tab_func_3[i].alarm_valve_id); if (sys_av_id_tab_func_3[i].alarm_daily_num && *pGprs_send_flag_p != GPRS_MEANS_NONE) { sys_alarm_id_g = sys_av_id_tab_func_3[i].alarm_valve_id; sys_av_id_tab_func_3[i].alarm_daily_num--; } else if(send_alarm_flag) *pGprs_send_flag_p = GPRS_MEANS_NONE; *sys_av_id_tab_func_3[i].alarm_byte &= (~(1 << sys_av_id_tab_func_3[i].offset_bit)); break; } } break; case 3: for (uint8_t i = 0; i < SYS_ALARM_VALVE_ID_FUNC_TABLE_NUM_4; i++) // ²é±í { if ((*sys_av_id_tab_func_4[i].alarm_byte >> sys_av_id_tab_func_4[i].offset_bit) & 0x0001) { sys_show_state_bytes_id_g = sys_valve_ctl_id_g =sys_av_id_tab_func_4[i].alarm_valve_id; Alarm_List_Node_PushBack(&pList_head,sys_av_id_tab_func_4[i].alarm_valve_id); if (sys_av_id_tab_func_4[i].alarm_daily_num) { sys_alarm_id_g = sys_av_id_tab_func_4[i].alarm_valve_id; sys_av_id_tab_func_4[i].alarm_daily_num--; } else if(send_alarm_flag) *pGprs_send_flag_p = GPRS_MEANS_NONE; *sys_av_id_tab_func_4[i].alarm_byte &= (~(1 << sys_av_id_tab_func_4[i].offset_bit)); break; } } break; case 4: for (uint8_t i = 0; i < SYS_ALARM_VALVE_ID_FUNC_TABLE_NUM_5; i++) // ²é±í { if ((*sys_av_id_tab_func_5[i].alarm_byte >> sys_av_id_tab_func_5[i].offset_bit) & 0x0001) { sys_show_state_bytes_id_g = sys_valve_ctl_id_g = sys_av_id_tab_func_5[i].alarm_valve_id; Alarm_List_Node_PushBack(&pList_head,sys_av_id_tab_func_5[i].alarm_valve_id); if (sys_av_id_tab_func_5[i].alarm_daily_num) { sys_alarm_id_g = sys_av_id_tab_func_5[i].alarm_valve_id; sys_av_id_tab_func_5[i].alarm_daily_num--; } else if(send_alarm_flag) *pGprs_send_flag_p = GPRS_MEANS_NONE; *sys_av_id_tab_func_5[i].alarm_byte &= (~(1 << sys_av_id_tab_func_5[i].offset_bit)); break; } } break; case 5: for (uint8_t i = 0; i < SYS_ALARM_VALVE_ID_FUNC_TABLE_NUM_6; i++) // ²é±í { if ((*sys_av_id_tab_func_6[i].alarm_byte >> sys_av_id_tab_func_6[i].offset_bit) & 0x0001) { sys_show_state_bytes_id_g = sys_valve_ctl_id_g = sys_av_id_tab_func_6[i].alarm_valve_id; Alarm_List_Node_PushBack(&pList_head,sys_av_id_tab_func_6[i].alarm_valve_id); if (sys_av_id_tab_func_6[i].alarm_daily_num) { sys_alarm_id_g = sys_av_id_tab_func_6[i].alarm_valve_id; sys_av_id_tab_func_6[i].alarm_daily_num--; } else if(send_alarm_flag) *pGprs_send_flag_p = GPRS_MEANS_NONE; *sys_av_id_tab_func_6[i].alarm_byte &= (~(1 << sys_av_id_tab_func_6[i].offset_bit)); break; } } break; case 6: for (uint8_t i = 0; i < SYS_ALARM_VALVE_ID_FUNC_TABLE_NUM_7; i++) // ²é±í { if ((*sys_av_id_tab_func_7[i].alarm_byte >> sys_av_id_tab_func_7[i].offset_bit) & 0x0001) { // sys_para_amend_log_flag_g = (PARA_AMEND_T)sys_av_id_tab_func_7[i].alarm_valve_id; *sys_av_id_tab_func_7[i].alarm_byte &= (~(1 << sys_av_id_tab_func_7[i].offset_bit)); break; } } break; default: break; } } void Admin_AlarmBytesProcess(uint8_t *pGprs_send_flag, SYS_ADMIN_UNION_T *sys_admin_p) { uint8_t temp_send_alarm_flag = 0; uint8_t alarm_bytes_length_16 = SYS_ALARM_BYTES_TYPE_LENGTH >> 1, status_bytes_length_16 = SYS_STATUS_BYTES_TYPE_LENGTH >> 1; /*±¨¾¯¿ØÖÆ/Éϱ¨×ÖÅжϡ£Éϱ¨×ÖΪ¿ØÖÆ×ֵĵݽø¹ØÏµ£¬Ö»ÓпØÖÆ×ÖÅжÏÓÐЧ£¬²Å¿ÉÅжÏÉϱ¨*/ for (uint8_t i = 0; i < alarm_bytes_length_16; i++) // ÿһ¸ö±¨¾¯×Ö¶¼ÒªÅÐ¶Ï { /*±¨¾¯×ֺͱ¨¾¯¿ØÖÆ×ÖÒ»¸öÒ»¸öÏàÓë*/ if (sys_admin_p->admin_union[i + status_bytes_length_16] & sys_alarm_ctl_bytes_g.alarm_ctl_send_union[i]) // ÐèÒª±¨¾¯ { /*±¨¾¯×ֺͱ¨¾¯Éϱ¨×ÖÒ»¸öÒ»¸öÏàÓë*/ if (sys_admin_p->admin_union[i + status_bytes_length_16] & sys_alarm_send_bytes_g.alarm_ctl_send_union[i]) // ÐèÒªÉϱ¨ { #if GPRS_PROTOCOL_SELECT gprs_protocol_head_tail_g.gprs_protocol_normal_data_head.alarm_word[i] |= sys_admin_p->admin_union[i + status_bytes_length_16]; #else #endif temp_send_alarm_flag = 1; if (sys_admin_p->sys_admin.alarm_bytes.restart) *pGprs_send_flag = GPRS_MEANS_POWER; else if(sys_admin_p->sys_admin.alarm_bytes.gprs_status) *pGprs_send_flag = GPRS_MEANS_AGAIN; else *pGprs_send_flag = GPRS_MEANS_ALARM; // Æô¶¯GPRS·¢ËÍ if (gprs_soft_para_g.gprs_state == GPRS_IDLE || gprs_soft_para_g.gprs_state == GPRS_RESTART) //ÓÃÓÚ·ÀÖ¹±¨¾¯Ê±Ã»Êý¾Ý key_save_send_data_flag_g = SET; } Admin_AlarmID(i,temp_send_alarm_flag,pGprs_send_flag); // ¸Ãº¯Êý»áÇåÁã¶ÔӦλµÄ±¨¾¯×Ö,ËùÒÔÒª·ÅÔÚÉϱ¨ÅжÏÖ®ºó /*ÓÃÓÚÿÈÕ±¨¾¯Éϱ¨µ½´ïÉÏÏ޺󣬲»ÔÙ´æ´¢Ò»Ìõµ±Ç°Êý¾Ý*/ if(temp_send_alarm_flag && key_save_send_data_flag_g == SET && *pGprs_send_flag == GPRS_MEANS_NONE) key_save_send_data_flag_g = RESET; } else sys_admin_p->admin_union[i + status_bytes_length_16] = 0; } Upcap1_StateAlarmHandler(); /*ÿÈÕ0µã±¨¾¯´ÎÊý»Ö¸´*/ if (DAILY_ZERO) { for(uint8_t i = 0; i < 6;i++) Admin_AlarmBytes_DailyNumReset(i); } } void Sys_StatusBytesInit(void) { uint8_t temp = 0; /*¹¤×÷״̬×Ö¸³Öµ*/ if(sys_display_para_g.sys_and_display_mode == NORMAL_MODE) temp = 0; else if(sys_display_para_g.sys_and_display_mode == DISPLAY_PARA) temp = 3; else if(sys_display_para_g.sys_and_display_mode == CALIB_MODE) temp = 1; else if(sys_display_para_g.sys_and_display_mode == SET_PARA_MODE) temp = 2; __SYS_STATUS_BYTES_STATUS(work_state, temp, AV_NORMAL); sys_admin_g.sys_admin.state_bytes.lcd_mode = sys_func_cfg_bytes_g.sys_func_cfg_bytes_s.lcd_mode; sys_admin_g.sys_admin.state_bytes.virtual_billing = sys_func_cfg_bytes_g.sys_func_cfg_bytes_s.virtual_billing; sys_admin_g.sys_admin.state_bytes.account_state = sys_func_cfg_bytes_g.sys_func_cfg_bytes_s.account_state; sys_admin_g.sys_admin.state_bytes.billing_type = sys_func_cfg_bytes_g.sys_func_cfg_bytes_s.billing_type; } void Upcap1_StateAlarmHandler(void) { static uint8_t upcap_keep_cnt = 0; /*¿ª¸Ç±¨¾¯Æô¶¯*/ if((GPIO_ReadInputDataBit(UNCAP_DETECTION_PORT,UNCAP_DETECTION_PIN) == Bit_SET) && (__SYS_STATUS_BYTES_GET(uncap_state_1) == RESET)) { if(upcap_keep_cnt++ > 3) { upcap_keep_cnt = 0; __SYS_STATUS_ALARM_BYTES_SET(uncap_state_1); #ifdef RS232_PRINTF printf("¿ª¸Ç±¨¾¯\r\n"); #endif } }else if((GPIO_ReadInputDataBit(UNCAP_DETECTION_PORT,UNCAP_DETECTION_PIN) == Bit_RESET) && (__SYS_STATUS_BYTES_GET(uncap_state_1) == SET)) //¿ª¸Ç±¨¾¯»Ö¸´ { if(upcap_keep_cnt++ > 3) { upcap_keep_cnt = 0; __SYS_STATUS_BYTES_STATUS(uncap_state_1,RESET,AV_UNCAP_1); } } }