From e4424eb6b50d0300583c422dfb71d58e040f4b9e Mon Sep 17 00:00:00 2001
From: jinlicong <493886250@qq.com>
Date: Tue, 11 Jun 2024 19:54:37 +0800
Subject: [PATCH] 继续测试优化
---
Soft/sizhu_ctrl_word.h | 115 +++++++++++++++++++++++++++++++++++++++++++++------------
1 files changed, 91 insertions(+), 24 deletions(-)
diff --git a/Soft/sizhu_ctrl_word.h b/Soft/sizhu_ctrl_word.h
index f9db924..1e4bd01 100644
--- a/Soft/sizhu_ctrl_word.h
+++ b/Soft/sizhu_ctrl_word.h
@@ -1,12 +1,13 @@
#ifndef _SIZHU_CTRL_WORD_H
#define _SIZHU_CTRL_WORD_H
#include "define_all.h"
-
+#include "extern_rtc.h"
+//#include "sizhu_alarm_record.h"
#define __SYS_STATUS_BYTES_GET(__HANDLE__) (system_status_word_g.status_word.__HANDLE__)
-//����״̬��λ�ʺϵ�bit״̬��λ�����ʺ϶�bit״̬�����緧��״̬ռ���bit��������
+//����״̬��λ�ʺϵ�bit״̬��λ(һ���ж�Ӧ����)�����ʺ϶�bit״̬�����緧��״̬ռ���bit��������
#define __SYS_STATUS_BYTES_STATUS(__HANDLE__, __FLAG__, __ID__) \
do \
{ \
@@ -21,17 +22,37 @@
} while (0)
-#define __SYS_ALARM_BYTES_SET(__HANDLE__, __FLAG__) (system_alarm_word_g.alarm_word.__HANDLE__ = __FLAG__)
+//û�ж�Ӧ״̬�ֵı����ֵ�����λ
+#define __SYS_ALARM_BYTES_SET(__HANDLE__,__ID__) \
+ do \
+ { \
+ if(__SYS_ALARM_CTL_BYTES_GET(__HANDLE__)){ \
+ system_alarm_word_for_valve_g.alarm_word.__HANDLE__ = SET; \
+ sizhuAlarmRecord(ALARM_HAPPEN,__ID__); \
+ if(__SYS_ALARM_REPORT_CTL_BYTES_GET(__HANDLE__) ==SET){ \
+ if(AlarmCntIncrease(__ID__) ==SET){ \
+ system_alarm_word_g.alarm_word.__HANDLE__ = SET; \
+ AlarmTriggerWrcFlag = SET; \
+ } \
+ } \
+ Alarm_List_Node_PushBack(&pList_head,__ID__); \
+ } \
+ } while (0)
-//����״̬��λ�ʺϵ�bit״̬��λ�����ʺ϶�bit״̬�����緧��״̬ռ���bit��������
+//״̬�ֺͱ�����ͬʱ��λ����ֻ�ʺϵ�bit״̬��λ�����ʺ϶�bit״̬�����緧��״̬ռ���bit�������á�������Щ����û�ж�Ӧ״̬�ֵģ����縴λ�������ĵȱ�������Ҳ�����ã���Ҫ��������
#define __SYS_STATUS_ALARM_BYTES_SET(__HANDLE__,__ID__) \
do \
{ \
if ((__SYS_STATUS_BYTES_GET(__HANDLE__) != SET)&&(__SYS_ALARM_CTL_BYTES_GET(__HANDLE__))){ \
- system_status_word_g.status_word.__HANDLE__ = \
+ system_status_word_g.status_word.__HANDLE__ = SET; \
system_alarm_word_for_valve_g.alarm_word.__HANDLE__ = SET; \
+ sizhuAlarmRecord(ALARM_HAPPEN,__ID__); \
if(__SYS_ALARM_REPORT_CTL_BYTES_GET(__HANDLE__) ==SET){ \
- system_alarm_word_g.alarm_word.__HANDLE__ = SET; } \
+ if(AlarmCntIncrease(__ID__) ==SET){ \
+ system_alarm_word_g.alarm_word.__HANDLE__ = SET; \
+ AlarmTriggerWrcFlag = SET; \
+ } \
+ } \
Alarm_List_Node_PushBack(&pList_head,__ID__); \
} \
} while (0)
@@ -41,7 +62,7 @@
#define __SYS_ALARM_CTL_BYTES_GET(__HANDLE__) (system_alarm_ctrl_word_g.alarm_ctl_word.__HANDLE__)
-#define __SYS_ALARM_REPORT_CTL_BYTES_GET(__HANDLE__) (system_alarm_report_ctrl_word_g.alarm_report_ctrl_word.__HANDLE__)
+#define __SYS_ALARM_REPORT_CTL_BYTES_GET(__HANDLE__) (system_alarm_report_ctrl_word_g.alarm_ctl_word.__HANDLE__)
#define SYSTEM_SINGLE_BIT_SET1 0x0001
@@ -185,7 +206,7 @@
} SYS_ALARM_VALVE_T; // �����ط�����ID
#pragma pack(1)
-/*********************************ϵͳ״̬�����**************************************/
+/*********************************ϵͳ״̬����أ�״̬������ж�Ӧ�����֣���������Ҫһ��**************************************/
typedef struct system_status_word_inf
{
uint16_t lcd_mode : 3;
@@ -317,9 +338,9 @@
uint16_t calibration_mode: 1;
uint16_t account_open: 1;
uint16_t : 2;
- uint16_t show_balance : 1;
- uint16_t show_price: 1;
- uint16_t show_logo : 1;
+ uint16_t no_show_balance : 1;
+ uint16_t no_show_price: 1;
+ uint16_t no_show_logo : 1;
uint16_t : 3;
uint16_t billing_type: 2;
@@ -335,7 +356,7 @@
/*********************************���ܿ��������**************************************/
-/*********************************�������������**************************************/
+/*********************************������������أ�״̬������ж�Ӧ�����֣���������Ҫһ��**************************************/
typedef struct
{
uint16_t : 4; // Ԥ��
@@ -449,15 +470,21 @@
SYS_ALARM_T alarm_ctl_word;
}SYSTEM_ALARM_CTRL_WORD_T; // ����������
-typedef union
-{
- uint16_t alarm_ctl_send_union[SYSTEM_ALARM_WORD_INF_LENGTH >> 1];
- SYS_ALARM_T alarm_report_ctrl_word;
-} SYSTEM_ALARM_REPORT_CTRL_WORD_T; // �����ϱ�����
+//typedef union
+//{
+// uint16_t alarm_ctl_send_union[SYSTEM_ALARM_WORD_INF_LENGTH >> 1];
+// SYS_ALARM_T alarm_report_ctrl_word;
+//} SYSTEM_ALARM_REPORT_CTRL_WORD_T; // �����ϱ����� ��ʽ������������һ�������Բ����ٶ���һ���ṹ����
/*********************************�������������**************************************/
/*********************************�ط����������**************************************/
+//�ط�������2λ��־λ����
+#define VALVE_CTRL_FLAG_NONE 0x00
+#define VALVE_CTRL_FLAG_ONLY_CLSOSE 0x01
+#define VALVE_CTRL_FLAG_LOCK_AND_CLSOSE 0x03
+
+//�ط������ֽṹ�嶨��
typedef struct
{
uint16_t gprs_cmd_need_close_valve_flag : 1; // Զ������
@@ -712,19 +739,59 @@
} VALVE_CTL_BYTES_T; // �ط�������
// �ط��ֳ���
-#define VALVE_CTL_LENGTH (sizeof(VALVE_STATUS_CHANGE_T) + sizeof(VALVE_BILLING_CHANGE_1_T) + sizeof(VALVE_BILLING_CHANGE_2_T) + \
- sizeof(VALVE_VOLTAGE_CHANGE_1_T) + sizeof(VALVE_VOLTAGE_CHANGE_2_T) + sizeof(VALVE_TP_ERR_1_T) + \
- sizeof(VALVE_TP_ERR_2_T) + sizeof(VALVE_MEASURE_ERR_1_T) + sizeof(VALVE_MEASURE_ERR_2_T) + \
- sizeof(VALVE_OTHER_ERR_1_T) + sizeof(VALVE_OTHER_ERR_2_T))
#define VALVE_CTL_LEN sizeof(VALVE_CTL_BYTES_T)
+//#define VALVE_CTL_LENGTH (sizeof(VALVE_STATUS_CHANGE_T) + sizeof(VALVE_BILLING_CHANGE_1_T) + sizeof(VALVE_BILLING_CHANGE_2_T) + \
+// sizeof(VALVE_VOLTAGE_CHANGE_1_T) + sizeof(VALVE_VOLTAGE_CHANGE_2_T) + sizeof(VALVE_TP_ERR_1_T) + \
+// sizeof(VALVE_TP_ERR_2_T) + sizeof(VALVE_MEASURE_ERR_1_T) + sizeof(VALVE_MEASURE_ERR_2_T) + \
+// sizeof(VALVE_OTHER_ERR_1_T) + sizeof(VALVE_OTHER_ERR_2_T))
+
+typedef union
+{
+ uint16_t valve_ctrl_bytes_union[VALVE_CTL_LEN >> 1];
+ VALVE_CTL_BYTES_T valve_ctrl_bytes;
+}VALVE_CTL_BYTES_UNION_T;
+
+
+
+
+//�����������ƽṹ��
+#define DAY_ALARM_TIMES 3
+typedef struct
+{
+ SYS_ALARM_VALVE_T alarm_id;
+ uint16_t alarm_word_offset_bit; //��Ӧ�����ֵ�ƫ����
+ uint16_t close_valve_word_offset_bit; //��Ӧ�ط��ֵ�ƫ����
+ uint8_t day_times; //ÿ���ϱ�����
+ uint16_t day_cnt;
+} ALARM_CTRL_PARA_T; // �ط�������
+
+
+
+
+
+
+
+
+
+
+
#pragma pack()
+
+extern FlagStatus AlarmTriggerWrcFlag;
extern SYSTEM_STATUS_WORD_T system_status_word_g;
extern SYSTEM_FUNCTION_CTRL_WORD_T system_function_ctrl_word_g;
extern SYSTEM_ALARM_WORD_T system_alarm_word_g;
-extern SYSTEM_ALARM_WORD_T system_alarm_word_for_valve_g; //���ڷ��أ��ϱ������
+extern SYSTEM_ALARM_WORD_T system_alarm_word_for_valve_g; //���ڷ��أ��ж��귧��֮������
extern SYSTEM_ALARM_CTRL_WORD_T system_alarm_ctrl_word_g;
-extern SYSTEM_ALARM_REPORT_CTRL_WORD_T system_alarm_report_ctrl_word_g;
-extern VALVE_CTL_BYTES_T valve_ctl_bytes_g;
+extern SYSTEM_ALARM_CTRL_WORD_T system_alarm_report_ctrl_word_g;
+extern VALVE_CTL_BYTES_UNION_T valve_ctl_bytes_g;
+
+
+
+FlagStatus AlarmCntIncrease(SYS_ALARM_VALVE_T alarm_id);
+void AlarmCntClearAll(void);
+void EveryDayClearAlarmCnt(const sClockBCD sys_clockBCD_in );
+void SysAlarmCtrlPro(void);
#endif
--
Gitblit v1.9.3