189 lines
5.8 KiB
C
Raw Normal View History

2025-04-30 16:24:29 +08:00
/*
*********************************************************************************************************
* Copyright (c) 2013,JD-YD
* All Rights Reserved
*
*
* File Name : protectcfg.h
* Author : luoyang
* Version : 1.0
* Date : 2013.9.6
* Descriptiong : <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>
* Function List:
* History :
<author> <time> <version> <desc>
luoyang 13/09/06 1.0 build this modle
*********************************************************************************************************
*/
#ifndef CFGREAD_H_
#define CFGREAD_H_
#ifdef __cplusplus
extern "C" {
#endif
#ifndef TRUE
#define TRUE 1 //<2F>߼<EFBFBD><DFBC><EFBFBD>
#endif
#ifndef FALSE
#define FALSE 0 //<2F>߼<EFBFBD><DFBC><EFBFBD>
#endif
#define PROT_CFG_ADDR_READ_START (0x0DE43000)
#define CFG_READ_OK 0xA0 //<2F><>ȡ<EFBFBD>ɹ<EFBFBD>
#define CFG_READ_NO_FILE 0xA1 //<2F>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define CFG_READ_FROMAT_ERROR 0xA2 //<2F><>ʽ<EFBFBD><CABD><EFBFBD><EFBFBD>
#define CFG_READ_ERROR_UNKNOWN 0xA3 //δ֪<CEB4><D6AA><EFBFBD><EFBFBD>
/****************************************
*<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*****************************************/
#define PROT_BLOCK_CFG_ADDR_READ PROT_CFG_ADDR_READ_START
#define BLOCK_CFGFILE_FULLNAME "/nor/root/protect/cfg/block.xml" //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD>(<28><><EFBFBD><EFBFBD>·<EFBFBD><C2B7>)
#define BS_XML_ROOT "blockcfg" //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD>ڵ<EFBFBD><DAB5><EFBFBD><EFBFBD><EFBFBD>
#define BS_XML_ELE "expression" //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD>ʽԪ<CABD><D4AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define BS_XML_ARR_ID "id" //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD>id<69><64><EFBFBD><EFBFBD>
#define BS_XML_ARR_FORMULA "formula" //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD>formula<6C><61><EFBFBD><EFBFBD>
#define EXPRESSION_MAX_LEN (100) //<2F><><EFBFBD><EFBFBD>ʽ<EFBFBD><CABD><EFBFBD>󳤶<EFBFBD>
#define BLOCK_NUM_MAX (36) //<2F><><EFBFBD><EFBFBD><EFBFBD>ź<EFBFBD><C5BA><EFBFBD><EFBFBD><EFBFBD>36<33><36>
typedef char ExpArrayType[EXPRESSION_MAX_LEN];
//<2F><><EFBFBD><EFBFBD><EFBFBD>߼<EFBFBD><DFBC>
typedef struct{
int numOfExp; //<2F><><EFBFBD><EFBFBD>ʽ<EFBFBD><CABD><EFBFBD><EFBFBD>
ExpArrayType ExpArray[BLOCK_NUM_MAX]; //<2F><><EFBFBD><EFBFBD>ʽ
}ExpType;
//<2F>ⲿ<EFBFBD>ӿ<EFBFBD>
void block_cfg_read();
/*** <20><>բ<EFBFBD>Ƶ<EFBFBD>״̬ ***/
#define TZLED_CFGFILE_FULLNAME "/nor/root/protect/cfg/tzled.dat" //<2F><>բ<EFBFBD><D5A2>״̬<D7B4>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD>(<28><><EFBFBD><EFBFBD>·<EFBFBD><C2B7>)
/****************************************
*<EFBFBD><EFBFBD>Ͷ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*****************************************/
#define ZT_CFGFILE_FULLNAME "/nor/root/protect/cfg/zt.xml" //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD>(<28><><EFBFBD><EFBFBD>·<EFBFBD><C2B7>)
#define PROT_ZT_CFG_ADDR_READ PROT_CFG_ADDR_READ_START + sizeof(ExpType) + 100
#define ZT_FUNC_JXC (0) //<2F><>Ͷ<EFBFBD><CDB6><EFBFBD>ܿ<EFBFBD> <20><><EFBFBD>߲<EFBFBD>
#define ZT_FUNC_GDC (1) //<2F><>Ͷ<EFBFBD><CDB6><EFBFBD>ܿ<EFBFBD> <20>ߵ<EFBFBD>ѹ<EFBFBD><D1B9>
#define ZT_FUNC_QGKC (2) //<2F><>Ͷ<EFBFBD><CDB6><EFBFBD>ܿ<EFBFBD> <20>Ÿ<EFBFBD><C5B8><EFBFBD><EFBFBD><EFBFBD>
#define MAX_STEP_MUN (20)
#define ZT_XML_ROOT "ZTLogicConfig" //<2F><>Ͷ<EFBFBD><CDB6><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD>ڵ<EFBFBD><DAB5><EFBFBD><EFBFBD><EFBFBD>
#define ZT_XML_ELE_ZTSTEP "ZTStep" //<2F><>Ͷ<EFBFBD><CDB6><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>"ZTStep"Ԫ<><D4AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define ZT_XML_ELE_JXC "JXC" //<2F><>Ͷ<EFBFBD><CDB6><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>"JXC"Ԫ<><D4AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define ZT_XML_ELE_GDC "GDC" //<2F><>Ͷ<EFBFBD><CDB6><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>"GDC"Ԫ<><D4AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define ZT_XML_ELE_QGKC "QGKC" //<2F><>Ͷ<EFBFBD><CDB6><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>"QGKC"Ԫ<><D4AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define ZT_XML_ELE_FZ "FZ" //<2F><>Ͷ<EFBFBD><CDB6><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>"FZ"Ԫ<><D4AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define ZT_XML_ELE_HZ "HZ" //<2F><>Ͷ<EFBFBD><CDB6><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>"HZ"Ԫ<><D4AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define ZT_XML_ELE_STEP "Step" //<2F><>Ͷ<EFBFBD><CDB6><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>"ZTStep"Ԫ<><D4AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define ZT_XML_ARR_KGID "KGID" //<2F><>Ͷ<EFBFBD><CDB6><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>"KGID"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define ZT_XML_ARR_KGName "KGName" //<2F><>Ͷ<EFBFBD><CDB6><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>"KGName"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define ZT_XML_ARR_KGType "KGType" //<2F><>Ͷ<EFBFBD><CDB6><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>"KGType"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define ZT_XML_ARR_KGPos "KGPos" //<2F><>Ͷ<EFBFBD><CDB6><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>"KGPos"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define ZT_XML_ARR_Action "Action" //<2F><>Ͷ<EFBFBD><CDB6><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>"Action"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//<2F><>Ͷ<EFBFBD><CDB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
typedef enum{
ZP_FZ, //<2F><>բ
ZP_HZ //<2F><>բ
}ZTProperty;
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
typedef enum{
ST_DLQ = 1, //<2F><>·<EFBFBD><C2B7>
ST_GK = 2 //<2F><><EFBFBD><EFBFBD><EBBFAA>
}SwitchType;
//<2F><><EFBFBD>ذ<EFBFBD>װλ<D7B0><CEBB>
typedef enum{
SP_JXC, //<2F><><EFBFBD>߲࿪<DFB2><E0BFAA>
SP_GYC, //<2F><>ѹ<EFBFBD><EFBFBD><E0BFAA>
SP_DYC, //<2F><>ѹ<EFBFBD><EFBFBD><E0BFAA>
SP_QGKC, //<2F>Ÿ<EFBFBD><C5B8><EFBFBD><EFBFBD><EFBFBD><E0BFAA>
SP_DRQ, //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
}SwitchPos;
//<2F><>Ͷ<EFBFBD><CDB6><EFBFBD>ƶ<EFBFBD><C6B6><EFBFBD>
typedef struct{
SwitchType ObjectType; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 1-<2D><>·<EFBFBD><C2B7> 2-<2D><><EFBFBD><EFBFBD><EBBFAA>
unsigned char ObjectNo; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><>ض<EFBFBD><D8B6><EFBFBD><EFBFBD><EFBFBD>)
unsigned int ObjectName; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(<28><><EFBFBD>غ<EFBFBD>)
SwitchPos ObjectPos; //<2F><><EFBFBD>ذ<EFBFBD>װλ<D7B0><CEBB>
ZTProperty ObjectAction; //<2F><><EFBFBD>ز<EFBFBD><D8B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(<28><>/<2F><>)
}ZTObject, *pZTObject;
//<2F><>Ͷ<EFBFBD><CDB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
typedef struct{
unsigned char StepNum; //<2F><>Ͷ<EFBFBD><CDB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀ
ZTProperty zitouProperty; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
ZTObject Objects[MAX_STEP_MUN]; //<2F><>Ͷ<EFBFBD><CDB6><EFBFBD>ƶ<EFBFBD><C6B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
}ZTStepList, *pZTStepList;
//ȫվ<C8AB><D5BE>Ͷ<EFBFBD>߼<EFBFBD>
typedef struct{
ZTStepList JXCFZStepList; //<2F><><EFBFBD>߲<EFBFBD><DFB2><EFBFBD>Ͷ<EFBFBD>ֲ<EFBFBD><D6B2><EFBFBD>
ZTStepList JXCHZStepList; //<2F><><EFBFBD>߲<EFBFBD><DFB2><EFBFBD>Ͷ<EFBFBD>ϲ<EFBFBD><CFB2><EFBFBD>
ZTStepList GDCFZStepList; //<2F>ߵ<EFBFBD>ѹ<EFBFBD><D1B9><EFBFBD><EFBFBD>Ͷ<EFBFBD>ֲ<EFBFBD><D6B2><EFBFBD>
ZTStepList GDCHZStepList; //<2F>ߵ<EFBFBD>ѹ<EFBFBD><D1B9><EFBFBD><EFBFBD>Ͷ<EFBFBD>ϲ<EFBFBD><CFB2><EFBFBD>
ZTStepList QGKCFZStepList; //<2F>Ÿ<EFBFBD><C5B8><EFBFBD><EFBFBD><EFBFBD>Ͷ<EFBFBD>ֲ<EFBFBD><D6B2><EFBFBD>
ZTStepList QGKCHZStepList; //<2F>Ÿ<EFBFBD><C5B8><EFBFBD><EFBFBD><EFBFBD>Ͷ<EFBFBD>ϲ<EFBFBD><CFB2><EFBFBD>
}ZTLogic, *pZTLogic;
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ͷ<EFBFBD><CDB6><EFBFBD><EFBFBD>
#define KXZT_CFGFILE_FULLNAME "/nor/root/protect/cfg/kxzt.xml" //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ͷ<EFBFBD><CDB6><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD>(<28><><EFBFBD><EFBFBD>·<EFBFBD><C2B7>)
#define PROT_KXZT_CFG_ADDR_READ PROT_ZT_CFG_ADDR_READ + sizeof(ZTLogic) + 100
#define KXZT_STEP_NUM_MAX 40
#define KXZT_XML_ROOT "kxztcfg" //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ͷ<EFBFBD><CDB6><EFBFBD>ø<EFBFBD><C3B8>ڵ<EFBFBD><DAB5><EFBFBD><EFBFBD><EFBFBD>
#define KXZT_XML_ELE_UPCFG "up_cfg" //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ͷ<EFBFBD><CDB6><EFBFBD><EFBFBD>"up_cfg"Ԫ<><D4AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define KXZT_XML_ELE_DOWNCFG "down_cfg" //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ͷ<EFBFBD><CDB6><EFBFBD><EFBFBD>"down_cfg"Ԫ<><D4AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define KXZT_XML_ARR_OPTYPE "op_type" //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ͷ<EFBFBD><CDB6><EFBFBD><EFBFBD>"op_type"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define KXZT_XML_ARR_OPOBJECT "op_object" //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ͷ<EFBFBD><CDB6><EFBFBD><EFBFBD>"op_object"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define KXZT_XML_ARR_OPTIME "op_time" //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ͷ<EFBFBD><CDB6><EFBFBD><EFBFBD>"op_time"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define KXZT_XML_ARR_OPFEEDBACK "op_feedback" //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ͷ<EFBFBD><CDB6><EFBFBD><EFBFBD>"op_feedback"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ͷ<EFBFBD>߼<EFBFBD>
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ͷ<EFBFBD>
typedef struct{
unsigned char op_type; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
unsigned char op_object; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
unsigned char op_feedback; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
unsigned int op_time; //<2F><><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>
}KXZTStep;
typedef struct{
unsigned char stepNum; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ͷ<EFBFBD><CDB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀ
KXZTStep stepSet[KXZT_STEP_NUM_MAX]; //<2F><>Ͷ<EFBFBD><CDB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E8BCAF>
}KXZTType;
//<2F>ⲿ<EFBFBD>ӿ<EFBFBD>
void zt_cfg_read();
//<2F><>ȡ<EFBFBD><C8A1>Ͷ<EFBFBD><CDB6><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>
void kxzt_cfg_read();
//<2F><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ͷ<EFBFBD><CDB6><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>
void block_cfg_read();
//<2F><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>
/** <20><>բ<EFBFBD>Ƶ<EFBFBD>״̬ **/
int tzled_cfg_read(unsigned char *data, int dataLen);
int tzled_cfg_write(const unsigned char *data, int dataLen);
#ifdef __cplusplus
}
#endif
#endif /* CFGREAD_H_ */