Files
CHJ/user/Compute/SavingData.h
2026-03-20 21:19:04 +08:00

83 lines
3.9 KiB
C
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/********************************************************************************************************
** HY3106常数与子程序定义头文件
**
** Copyright (c) Siargo, Ltd. 2011
** All Rights Reserved.
**
**-------------------------------------------------------------------------------------------------------
********************************************************************************************************/
#ifndef __SavingData_h__
#define __SavingData_h__
//******************************************************************************
// for memory WIDTH
//******************************************************************************
//******************************************************************************
// for data eeprom ---[For 24c512]----------------------------------------------
// DATE REC DATA
// NO.0 ([YEAR] [MONTH] [DATE] [HOUR] [MINUTE] + 间隔1小时保存时间
// Max addr: 0x300+12*1000 (0x2ee0) = 0x31e0
#define DATE_POINTER (unsigned int)0x300 // DATE record start ponit addr
#define DATE_POINTER_WIDTH (unsigned int)3
#define DATE_POINTER_CRC (unsigned int)(DATE_POINTER_WIDTH-1)
#define DATE_BASE (unsigned int)(DATE_POINTER+DATE_POINTER_WIDTH)
#define DATE_WIDTH (unsigned int)12 // DATE record start eeprom addr
#define DATE_WIDTH_CRC (unsigned int)(DATE_WIDTH-1)
#define DATE_DEPTH (unsigned int)1000
// ALARM DATA
// NO.0 出厂前MEMS参数保存硬件调试
// No.1-No.599 实时保存报警数据
// Max addr: 0x3200 + 16*1000 (0x3e80) = 0x7080
#define ALARM_POINTER (unsigned int)0x3100 // alarm record start ponit addr
#define ALARM_POINTER_WIDTH (unsigned int)3
#define ALARM_POINTER_CRC (unsigned int)(ALARM_POINTER_WIDTH-1)
#define ALARM_BASE (unsigned int)(ALARM_POINTER+ALARM_POINTER_WIDTH) // alarm record start eeprom addr
#define ALARM_WIDTH (unsigned int)26
#define ALARM_WIDTH_CRC (ALARM_WIDTH-1)
#define ALARM_DEPTH (unsigned int)600
// HISTORY DATA
// NO.0 工厂传感器数据 (NRH,LRH,(RR//RH), NIDX )
// No.1-No.2000 历史正常记录数据
// Max addr: 0x7100 + 18*2000 (0x8ca0) = 0xffa0
#define HISTORY_POINTER (unsigned int)0x7100 // history record start ponit addr
#define HISTORY_POINTER_WIDTH (unsigned int)3
#define HISTORY_POINTER_CRC (unsigned int)(HISTORY_POINTER_WIDTH-1)
#define HISTORY_BASE (unsigned int)(HISTORY_POINTER+HISTORY_POINTER_WIDTH) // history record start eeprom addr
#define HISTORY_WIDTH (unsigned int)18
#define HISTORY_WIDTH_CRC (unsigned int)(HISTORY_WIDTH-1)
#define HISTORY_DEPTH (unsigned int)2000
//******************************************************************************
// for memory WIDTH
#define RECORD_TIME_WIDTH 6
#define RECORD_TIME_CRC (RECORD_TIME_WIDTH-1)
//******************************************************************************
extern u16 historyPeriodSet,saveTimeCounter;;
//******************************************************************************
void SaveParameterInit(void);
void CopyTimeToBackUpArray(u8 *backups);
void CopyAccToBackUpArray(u8 *backups);
u16 WriteaAnAlarmData(u16 pointer);
u16 AlarmWrite(void);
void ClearAlarmRecord(void);
void ClearHistoryRecord(void);
void ClearDateRecord(void);
void SetHistoryRecordTime(void);
void WriteRecordTimeData(void);
u16 ReadRecentHistoryData(u8 *recent);
u16 WriteAnHistoryData(u16 pointer);
u16 HistoryRecordWrite(void);
u16 ReadRecentDateAccData(u8 *recent);
u16 DateAccWrite(void);
void DataStorageManagement(void);
void ReadRecordToComBuf(void);
/*******************/
#endif