#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);
|
}
|
}
|
}
|