Files
CHJ/user/Compute/SavingData.h

83 lines
3.9 KiB
C
Raw Normal View History

2026-03-20 21:16:58 +08:00
/********************************************************************************************************
** HY3106<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӳ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͷ<EFBFBD>ļ<EFBFBD>
**
** 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] + <20><><EFBFBD><EFBFBD>1Сʱ<D0A1><CAB1><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>
// 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 <20><><EFBFBD><EFBFBD>ǰMEMS<4D><53><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>棨Ӳ<E6A3A8><D3B2><EFBFBD><EFBFBD><EFBFBD>ԣ<EFBFBD>
// No.1-No.599 ʵʱ<CAB5><CAB1><EFBFBD><EFBFBD><E6B1A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// 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 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (NRH,LRH,(RR//RH), NIDX )
// No.1-No.2000 <20><>ʷ<EFBFBD><CAB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>¼<EFBFBD><C2BC><EFBFBD><EFBFBD>
// 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