差异
This commit is contained in:
93
user/Protocol/AvantGardeProtocol.c
Normal file
93
user/Protocol/AvantGardeProtocol.c
Normal file
@@ -0,0 +1,93 @@
|
||||
#include "../main/SystemInclude.h"
|
||||
|
||||
/* File start *****************************************************************/
|
||||
#if ENABLE_USE_AVANT_PROTOCOL
|
||||
/******************************************************************************/
|
||||
|
||||
static u16 Index;
|
||||
|
||||
/******************************************************************************/
|
||||
void LoadFlowrateData(void)
|
||||
{
|
||||
//Ԥ<><D4A4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ԫ
|
||||
tempL.DWord = flowRate;
|
||||
comState.TxdData[Index++] = tempL.Byte[2];
|
||||
comState.TxdData[Index++] = tempL.Byte[1];
|
||||
comState.TxdData[Index++] = tempL.Byte[0];
|
||||
|
||||
comState.TxdData[Index++] = 0;
|
||||
comState.TxdData[Index++] = 0;
|
||||
comState.TxdData[Index++] = 0;
|
||||
comState.TxdData[Index++] = 0;
|
||||
|
||||
comState.TxdData[Index++] = 0;
|
||||
comState.TxdData[Index++] = 0;
|
||||
comState.TxdData[Index++] = 0;
|
||||
comState.TxdData[Index++] = 0;
|
||||
}
|
||||
|
||||
/******************************************************************************/
|
||||
void LoadTemperatureData(void)
|
||||
{
|
||||
comState.TxdData[Index++] = 0;
|
||||
comState.TxdData[Index++] = 0;
|
||||
}
|
||||
|
||||
/******************************************************************************/
|
||||
void LoadGainData(void)
|
||||
{
|
||||
comState.TxdData[Index++] = 0;
|
||||
comState.TxdData[Index++] = 0;
|
||||
}
|
||||
|
||||
/******************************************************************************/
|
||||
void LoadPressData(void)
|
||||
{
|
||||
comState.TxdData[Index++] = 0;
|
||||
comState.TxdData[Index++] = 0;
|
||||
comState.TxdData[Index++] = 0;
|
||||
}
|
||||
|
||||
/******************************************************************************/
|
||||
void AvantGardeAutoUploadData(void)
|
||||
{
|
||||
comState.ReceivedData = 0;
|
||||
comState.TxdData[0] = MODULE_UPLOAD_FRAME_HEADER;
|
||||
LoadFlowrateData();
|
||||
|
||||
switch(avantMode &)
|
||||
{
|
||||
case AVANT_USER_NORMAL_MODE:
|
||||
LoadFlowrateData();
|
||||
break;
|
||||
|
||||
case AVANT_USER_GAIN_MODE:
|
||||
LoadFlowrateData();
|
||||
LoadGainData();
|
||||
break;
|
||||
|
||||
case AVANT_USER_TEMP_MODE:
|
||||
LoadFlowrateData();
|
||||
LoadTemperatureData();
|
||||
LoadGainData();
|
||||
break;
|
||||
|
||||
case AVANT_USER_TEMP_PRESS_MODE:
|
||||
LoadFlowrateData();
|
||||
LoadTemperatureData();
|
||||
LoadGainData();
|
||||
LoadPressData();
|
||||
break;
|
||||
}
|
||||
|
||||
comState.TxdData[Index] = MODULE_UPLOAD_FRAME_END;
|
||||
comState.TxLenth += 4;
|
||||
ComputeCRCForTransmitData();
|
||||
|
||||
MBBuf.TxPointer = comState.TxdData;
|
||||
StartDMAForTxdMainUartData();
|
||||
}
|
||||
|
||||
/* File end *****************************************************************/
|
||||
#endif
|
||||
/****************************************************************************/
|
||||
35
user/Protocol/AvantGardeProtocol.h
Normal file
35
user/Protocol/AvantGardeProtocol.h
Normal file
@@ -0,0 +1,35 @@
|
||||
#ifndef __AvantGardeProtocol_h__
|
||||
#define __AvantGardeProtocol_h__
|
||||
|
||||
/* File start *****************************************************************/
|
||||
#if ENABLE_USE_AVANT_PROTOCOL
|
||||
/******************************************************************************/
|
||||
#define MODULE_UPLOAD_FRAME_HEADER 0x02
|
||||
#define MODULE_UPLOAD_FRAME_END 0x03
|
||||
|
||||
#define AVANT_CALID_MODE 0x20
|
||||
#define AVANT_USER_NORMAL_MODE 0x4E
|
||||
#define AVANT_USER_GAIN_MODE 0x47
|
||||
#define AVANT_USER_TEMP_MODE 0x54
|
||||
#define AVANT_USER_TEMP_PRESS_MODE 0x4B
|
||||
#define AVANT_CALIB_NORMAL_MODE ( AVANT_USER_NORMAL_MODE | AVANT_CALID_MODE )
|
||||
#define AVANT_CALIB_GAIN_MODE ( AVANT_USER_GAIN_MODE | AVANT_CALID_MODE )
|
||||
#define AVANT_CALIB_TEMP_MODE ( AVANT_USER_TEMP_MODE | AVANT_CALID_MODE )
|
||||
#define AVANT_CALIB_TEMP_PRESS_MODE ( AVANT_USER_TEMP_PRESS_MODE | AVANT_CALID_MODE )
|
||||
|
||||
#define AVANT_UPLOAD_FRAME_HEADER 0x00
|
||||
#define AVANT_UPLOAD_QUSM1 0x01
|
||||
#define AVANT_UPLOAD_QUSM2 0x02
|
||||
#define AVANT_UPLOAD_QUSM3 0x03
|
||||
#define AVANT_UPLOAD_TUP 0x04
|
||||
|
||||
void StartDMATXDDataForNBIOT(void);
|
||||
void AutoTransmitDataForNBIOT(void);
|
||||
|
||||
/* File end *****************************************************************/
|
||||
#endif
|
||||
/****************************************************************************/
|
||||
|
||||
/* .h end *******************************************************************/
|
||||
#endif
|
||||
/****************************************************************************/
|
||||
@@ -84,16 +84,16 @@ void ReceivedDataProcessing(void)
|
||||
Get_UART_Rx_ActualLength();//<2F><><EFBFBD>½<EFBFBD><C2BD>ճ<EFBFBD><D5B3><EFBFBD>
|
||||
MBBuf.RxdLen = comState.RxLenth; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݳ<EFBFBD><DDB3><EFBFBD>
|
||||
MBBuf.RxPointer = comState.RxdData; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
MBBuf.TxPointer = comState.TxdData; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
if(ModBusProtocolDetection()) //<2F><><EFBFBD>ModbusЭ<73><D0AD>
|
||||
MBBuf.TxPointer = comState.TxdData; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
if(ModBusProtocolDetection()) //<2F><><EFBFBD>ModbusЭ<73><D0AD>
|
||||
{
|
||||
ModBusDataProcessing(); //Э<>鴦<EFBFBD><E9B4A6><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Э<>鴦<EFBFBD><E9B4A6><EFBFBD><EFBFBD><EFBFBD>ظ<EFBFBD><D8B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>MBBuf.RxPointer<65><72>
|
||||
|
||||
// MBBuf.TxPointer = MBBuf.RxPointer ;//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݵ<EFBFBD><DDB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
StartDMAForTxdMainUartData(); //<2F>ظ<EFBFBD>֡
|
||||
ModBusDataProcessing(); //Э<>鴦<EFBFBD><E9B4A6><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Э<>鴦<EFBFBD><E9B4A6><EFBFBD><EFBFBD><EFBFBD>ظ<EFBFBD><D8B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>MBBuf.RxPointer<65><72>move<EFBFBD><EFBFBD>MBBuf.TxPointer<65><72>Ҳ<EFBFBD><D2B2><EFBFBD><EFBFBD>ʵ<EFBFBD><CAB5>comState.TxdData<74>洢<EFBFBD><E6B4A2><EFBFBD><EFBFBD>
|
||||
|
||||
StartDMAForTxdMainUartData();//<2F>ظ<EFBFBD>֡
|
||||
}
|
||||
else RestartDMAForRxdMainUartData();//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>½<EFBFBD><C2BD><EFBFBD>(<28>ܹ<EFBFBD>ʹͨ<CAB9><CDA8>ʧ<EFBFBD><CAA7>ʱ<EFBFBD><CAB1><EFBFBD>¸<EFBFBD>λ)
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
1003
user/Protocol/InternalModbus - 副本.c
Normal file
1003
user/Protocol/InternalModbus - 副本.c
Normal file
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -1,19 +1,46 @@
|
||||
#ifndef __InternalModbus_h__
|
||||
#define __InternalModbus_h__
|
||||
|
||||
extern const u16 ReadCode[];
|
||||
|
||||
extern u16 WordReg[], voltageDetected[];
|
||||
extern const u16 WordDefault[][3];
|
||||
|
||||
extern u32 DWordReg[];
|
||||
extern const u32 DWordDefault[][3];
|
||||
|
||||
//
|
||||
// <20><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʽ<EFBFBD><CABD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>飩 <20>ڲ<EFBFBD><DAB2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>
|
||||
#define GET_WORD_IDX(var) ((u32)(&(var) - WordReg))
|
||||
// <20><><EFBFBD><EFBFBD> <20><> <20><>ַ <20>ڲ<EFBFBD><DAB2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȡ<EFBFBD>ڴ<EFBFBD><DAB4><EFBFBD>ַ
|
||||
#define GET_WORD_ADDR(var) (MEM_ADDR_WORD_REG_START + GET_WORD_IDX(var)*REG_WORD_WIDTH)
|
||||
// <20><>ַ <20><> <20><><EFBFBD><EFBFBD> <20>ڴ<EFBFBD><DAB4><EFBFBD>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define ADR_WORD_IDX(adr) (((u32)(adr) - MEM_ADDR_WORD_REG_START) / REG_WORD_WIDTH)
|
||||
|
||||
#define GET_DWORD_IDX(var) ((u32)(&(var) - DWordReg))
|
||||
#define GET_DWOR_ADDR(var) (MEM_ADDR_DWORD_REG_START+GET_DWORD_IDX(var)*REG_DWORD_WIDTH)
|
||||
#define ADR_DWORD_IDX(adr) ((((u32)(adr) - MEM_ADDR_DWORD_REG_START) / REG_DWORD_WIDTH))
|
||||
//<2F><><EFBFBD><EFBFBD> VHHHigh = ReadShortParameterFromMemory(GET_WORD_ADR(VHHHigh),WordDefault[GET_WORD_IDX(VHHHigh)][DEFAULT]);
|
||||
// staticHighTemperature = WriteShortParameterToMemory(GET_WORD_ADR(staticHighTemperature));
|
||||
//==============================================================================
|
||||
void InternalShortParameterInit(void);
|
||||
void InternalLongParameterInit(void);
|
||||
|
||||
//==============================================================================
|
||||
void ReadMeterSystemData(void);
|
||||
void ReadMeterInfo(void);
|
||||
void ReadMeterSamplingData(void);
|
||||
|
||||
void ReadMeterOperateResult(void);
|
||||
void ReadMeterParameter(void);
|
||||
void ReadMeterDWordParameter(void);
|
||||
void ReadMeterBasicData(void);
|
||||
|
||||
void ReadMeterParameter(void);
|
||||
void CheckWritingLegality(void);
|
||||
void MeterOperate(void);
|
||||
void WriteMeterParameter(void);
|
||||
void WriteMeterDwordParameter(void);
|
||||
|
||||
void InternalReadParameterProtocol(void);
|
||||
void InternalWriteParameterProtocol(void);
|
||||
|
||||
void InternalWriteParameterProtocolToFlash(void);
|
||||
void InternalReadParameterProtocolInFlash(void);
|
||||
|
||||
/************************/
|
||||
#endif
|
||||
575
user/Protocol/InternalModbusDefine - 副本.h
Normal file
575
user/Protocol/InternalModbusDefine - 副本.h
Normal file
@@ -0,0 +1,575 @@
|
||||
#ifndef __InternalModbusDefine_h__
|
||||
#define __InternalModbusDefine_h__
|
||||
|
||||
/******************************************************************************/
|
||||
#define INT_METER_INFO 0x8000
|
||||
#define INT_METER_CODE 0x8300
|
||||
#define INT_METER_PARA 0x8200
|
||||
#define INT_METER_SYS 0x8400
|
||||
|
||||
#define INT_METER_BASIC 0x8500
|
||||
#define INT_METER_BASIC_MASK 0xff00
|
||||
#define INT_METER_BASIC_MAX (INT_METER_BASIC + BASIC_DATA_MAX)
|
||||
|
||||
#define INT_METER_9000 0x9000
|
||||
#define INT_METER_A000 0xA000
|
||||
#define INT_METER_D000 0xD000
|
||||
#define INT_METER_E000 0xE000
|
||||
#define INT_METER_F000 0xF000
|
||||
#define INT_MASK 0xFF00
|
||||
|
||||
/******************************************************************************/
|
||||
#define INT_METER_INFO_MAX (INT_METER_INFO+0x00ff)
|
||||
#define INT_METER_PARA_MAX (INT_METER_PARA+0x00ff)
|
||||
#define INT_METER_CODE_MAX (INT_METER_CODE+0x00ff)
|
||||
#define INT_METER_SYS_MAX (INT_METER_SYS+0x00ff)
|
||||
//#define INT_METER_85FF +0x00ff)
|
||||
//#define INT_METER_86FF +0x00ff)
|
||||
|
||||
/******************************************************************************/
|
||||
// for factory control
|
||||
// define start
|
||||
#define INT_PARAMETER_PROTOCOL 0x8000
|
||||
// Fixed Address for product series
|
||||
#define INT_SERIES_BASE 0x8000 // [Enable Read And Write]
|
||||
#define INT_SERIES_BASE1 INT_SERIES_BASE
|
||||
#define INT_SERIES_BASE2 (INT_SERIES_BASE+1)
|
||||
#define INT_SERIES_BASE3 (INT_SERIES_BASE+2)
|
||||
#define INT_SERIES_BASE4 (INT_SERIES_BASE+3)
|
||||
#define INT_SERIES_BASE5 (INT_SERIES_BASE+4)
|
||||
#define INT_SERIES_BASE6 (INT_SERIES_BASE+5)
|
||||
#define INT_TIME_BASE (INT_SERIES_BASE+6) // [Enable Read And Write]
|
||||
// Fixed Address for dcoef num
|
||||
#define INT_CURVE_NUM 0x8009 // [Enable Read And Write] // max:20
|
||||
#define INT_CURVE_BASE 0x800A // [Enable Read And Write]
|
||||
#define INT_CURVE_WIDTH 3
|
||||
#define CURVE_DATA_WIDTH 6
|
||||
#define INT_CURVE_NODE1 0x800A
|
||||
#define INT_CURVE_NODE2 (INT_CURVE_BASE+3)
|
||||
#define INT_CURVE_NODE3 (INT_CURVE_BASE+6)
|
||||
#define INT_CURVE_NODE4 (INT_CURVE_BASE+9)
|
||||
#define INT_CURVE_NODE5 (INT_CURVE_BASE+12)
|
||||
#define INT_CURVE_NODE6 (INT_CURVE_BASE+15)
|
||||
#define INT_CURVE_NODE7 (INT_CURVE_BASE+18)
|
||||
#define INT_CURVE_NODE8 (INT_CURVE_BASE+21)
|
||||
#define INT_CURVE_NODE9 (INT_CURVE_BASE+24)
|
||||
#define INT_CURVE_NODE10 (INT_CURVE_BASE+27)
|
||||
#define INT_CURVE_NODE11 (INT_CURVE_BASE+30)
|
||||
#define INT_CURVE_NODE12 (INT_CURVE_BASE+33)
|
||||
#define INT_CURVE_NODE13 (INT_CURVE_BASE+36)
|
||||
#define INT_CURVE_NODE14 (INT_CURVE_BASE+39)
|
||||
#define INT_CURVE_NODE15 (INT_CURVE_BASE+42)
|
||||
#define INT_CURVE_NODE16 (INT_CURVE_BASE+45)
|
||||
#define INT_CURVE_NODE17 (INT_CURVE_BASE+48)
|
||||
#define INT_CURVE_NODE18 (INT_CURVE_BASE+51)
|
||||
#define INT_CURVE_NODE19 (INT_CURVE_BASE+54)
|
||||
#define INT_CURVE_NODE20 (INT_CURVE_BASE+57)
|
||||
#define INT_CURVE_NODE21 (INT_CURVE_BASE+60)
|
||||
#define INT_CURVE_NODE22 (INT_CURVE_BASE+63)
|
||||
#define INT_CURVE_NODE23 (INT_CURVE_BASE+66)
|
||||
#define INT_CURVE_NODE24 (INT_CURVE_BASE+69)
|
||||
#define INT_CURVE_NODE25 (INT_CURVE_BASE+72)
|
||||
#define INT_CURVE_NODE26 (INT_CURVE_BASE+75)
|
||||
#define INT_CURVE_NODE27 (INT_CURVE_BASE+78)
|
||||
#define INT_CURVE_NODE28 (INT_CURVE_BASE+81)
|
||||
#define INT_CURVE_NODE29 (INT_CURVE_BASE+84)
|
||||
#define INT_CURVE_NODE30 (INT_CURVE_BASE+87)
|
||||
#define INT_CURVE_NODE31 (INT_CURVE_BASE+90)
|
||||
#define INT_CURVE_NODE32 (INT_CURVE_BASE+93)
|
||||
#define INT_CURVE_NODE33 (INT_CURVE_BASE+96)
|
||||
#define INT_CURVE_NODE34 (INT_CURVE_BASE+99)
|
||||
#define INT_CURVE_NODE35 (INT_CURVE_BASE+102)
|
||||
#define INT_CURVE_NODE36 (INT_CURVE_BASE+105)
|
||||
#define INT_CURVE_MAX (INT_CURVE_NODE1 + CURVE_DATA_MAX*3)
|
||||
|
||||
#define INT_FIX_INFO_MAX 0x8200
|
||||
#define INT_REG_BASE 0x8200
|
||||
// fixed Read Address
|
||||
#define INT_KEY_ID 0x8200 // Fixed Address write parameter ID Key 0x9600 [Disable Read]
|
||||
#define INT_KEY_ID_L 0x8201
|
||||
#define INT_CURVE_TYPE 0x8202 // select curve type
|
||||
#define INT_RTC_SECOND 0x8203 // 0x8203
|
||||
//#define INT_SOFT_BUILD_DATE2 0x8204 // 0x8203,4,5,6,7,8
|
||||
//#define INT_SOFT_BUILD_DATE3 0x8205 // 0x8203,4,5,6,7,8
|
||||
//#define INT_SOFT_BUILD_DATE4 0x8206 // 0x8203,4,5,6,7,8
|
||||
//#define INT_SOFT_BUILD_DATE5 0x8207 // 0x8203,4,5,6,7,8
|
||||
//#define INT_SOFT_BUILD_DATE6 0x8208 // 0x8203,4,5,6,7,8
|
||||
#define INT_CALIB_FAC 0x820A // 2Byte [Disable Write]
|
||||
#define INT_CALIB_DEPTH 0x820B // 2Byte [Disable Write]
|
||||
#define INT_CALIB_WIDTH 0x820C // 2Byte [Disable Write]
|
||||
// Variable Address
|
||||
#define INT_COMMAND 0x820D //internal control start address [Disable Read]
|
||||
#define INT_CONTROL 0x820D // mode control:9d 45, 9D 00, 55 [Disable Read]
|
||||
#define INT_CLEAR_RECORD 0x820E // clear data record: [Disable Read]
|
||||
#define INT_TEST_OFFSET 0x820F // [Disable Read]
|
||||
// parameter Address
|
||||
#define INT_PARAMETER 0x8210 // internal parameter write and read address start
|
||||
#define INT_PROTOCOL 0x8210 // MODBUS Slaver Addr
|
||||
#define INT_SLAVER_ADDR 0x8211 // MODBUS Slaver Addr
|
||||
#define INT_METER_FACTOR 0x8212
|
||||
#define INT_GDCF 0x8213
|
||||
#define INT_MAX_FLOW 0x8214
|
||||
#define INT_OFFSET_GAS 0x8216
|
||||
#define INT_OFFSET_AIR 0x8217
|
||||
#define INT_SAMPLE_PERIOD 0x8218
|
||||
#define INT_HISTORY_PERIOD 0x8219
|
||||
#define INT_PULSE_UNIT 0x821A
|
||||
//#define INT_MAX_LOOP_FR 0x821B
|
||||
#define INT_SENSOR_SN 0x821D // 0x821D/0x821E/0x821F
|
||||
#define INT_TOTAL_ACC 0x8220 // 0x8220-0x8225
|
||||
#define INT_CALIB_TA 0x8226 // 0x8226
|
||||
#define INT_OFFSET_A_GAS 0x8227
|
||||
#define INT_OFFSET_A_AIR 0x8228
|
||||
#define INT_ATYPE_INDEX_GAIN 0x8229
|
||||
#define INT_GDCF_ATYPE 0x822A
|
||||
#define INT_GDCF_CTYPE 0x822B
|
||||
#define INT_CALIB_PIPE 0x822C
|
||||
#define INT_WORK_PIPE 0x822D
|
||||
#define INT_WORK_UNIT 0x822E
|
||||
#define INT_DIS_LANGUAGE 0x822F
|
||||
#define INT_ACC_OUT_BIT 0x8230
|
||||
#define INT_REVERSE_SCALE 0x8231
|
||||
#define INT_VHH_HIGH 0x8232
|
||||
#define INT_VHH_ROOM 0x8233
|
||||
#define INT_VHH_LOW 0x8234
|
||||
#define INT_NRH_HIGH 0x8235
|
||||
#define INT_NRH_ROOM 0x8236
|
||||
#define INT_NRH_LOW 0x8237
|
||||
#define INT_NRR_HIGH 0x8238
|
||||
#define INT_NRR_ROOM 0x8239
|
||||
#define INT_NRR_LOW 0x823A
|
||||
#define INT_GCF_A 0x823B
|
||||
#define INT_GCF_B 0x823D
|
||||
#define INT_GCF_C 0x823E
|
||||
#define INT_RH_GAINRES 0x8240
|
||||
#define INT_ZERO_SUPPRESSION 0x8244
|
||||
#define INT_STATIC_LOW_TA 0x8245
|
||||
#define INT_STATIC_HIGH_TA 0x8246
|
||||
#define INT_PULSE_COUNTER 0x8247 // byte = 4
|
||||
#define INT_ATYPE_RC 0x8249 //
|
||||
#define INT_ATYPE_WIPER 0x824A //
|
||||
#define INT_CTYPE_WIPER 0x824B //
|
||||
#define INT_CTYPE_ADC 0x824C //
|
||||
#define INT_OFFSET_HIGH 0x824D //
|
||||
#define INT_OFFSET_LOW 0x824E //
|
||||
#define INT_TRH_HIGH 0x824F //
|
||||
#define INT_TRH_LOW 0x8250 //
|
||||
#define INT_MEMS_RATIO 0x8251 //
|
||||
#define INT_SYS_LCD 0x8252 //
|
||||
#define INT_SYS_CHIP 0x8253 //
|
||||
#define INT_TEMP_CORR 0x8254 //
|
||||
#define INT_OFFSET_VDUGX_GAS 0x8255
|
||||
#define INT_OFFSET_VDUGX_AIR 0x8256
|
||||
#define INT_OFFSET_RGINX 0x8257
|
||||
#define INT_NRH_P50 0x8258
|
||||
#define INT_NRH_P0 0x8259
|
||||
#define INT_ADC_GAIN 0x825A
|
||||
#define INT_RES_FACTOR 0x825B
|
||||
#define INT_BATTEST_PERIOD 0x825C
|
||||
#define INT_FR_SWITCH_POINT 0x825D
|
||||
#define INT_CALIB_FR_GAIN 0x825F // У<D0A3><D7BC><EFBFBD><EFBFBD><EFBFBD>Ŵ<EFBFBD><C5B4><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define INT_AUTO_CALIB_ATYPE 0x8260
|
||||
#define INT_USER_INIT_INDEX 0x8261
|
||||
#define INT_DIVHX_HIGH 0x8262
|
||||
#define INT_DIVHX_ROOM 0x8263
|
||||
#define INT_DIVHX_LOW 0x8264
|
||||
#define INT_VDUGX_HIGH 0x8265
|
||||
#define INT_VDUGX_ROOM 0x8266
|
||||
#define INT_VDUGX_LOW 0x8267
|
||||
|
||||
//==============================================================================
|
||||
// Variable Address(read:MAX 8 Line)
|
||||
#define INT_READ_CODE1 0x8300 // flowrate
|
||||
#define INT_READ_CODE_MASK 0xfff0
|
||||
#define INT_READ_CODE_BASE INT_READ_CODE1
|
||||
#define INT_READ_CODE2 (INT_READ_CODE1 + 1) //
|
||||
#define INT_READ_CODE3 (INT_READ_CODE2 + 1) //
|
||||
#define INT_READ_CODE4 (INT_READ_CODE3 + 1) //
|
||||
#define INT_READ_CODE5 (INT_READ_CODE4 + 1) //
|
||||
#define INT_READ_CODE6 (INT_READ_CODE5 + 1) //
|
||||
#define INT_READ_CODE7 (INT_READ_CODE6 + 1) //
|
||||
#define INT_READ_CODE8 (INT_READ_CODE7 + 1) //
|
||||
#define INT_READ_CODE9 (INT_READ_CODE8 + 1) //
|
||||
#define INT_READ_CODE10 (INT_READ_CODE9 + 1) //
|
||||
#define INT_READ_CODE11 (INT_READ_CODE10 + 1) //
|
||||
#define INT_READ_CODE12 (INT_READ_CODE11 + 1) //
|
||||
#define INT_READ_CODE13 (INT_READ_CODE12 + 1) //
|
||||
#define INT_READ_CODE14 (INT_READ_CODE13 + 1) //
|
||||
#define INT_READ_CODE15 (INT_READ_CODE14 + 1)
|
||||
#define INT_READ_CODE16 (INT_READ_CODE15 + 1)
|
||||
|
||||
#define INT_SAMPLING_BASE1 (INT_READ_CODE16 + 1 ) // 0x8310
|
||||
#define INT_SAMPLING_BASE2 (INT_SAMPLING_BASE1 + 0x10)
|
||||
#define INT_SAMPLING_DATA1 INT_SAMPLING_BASE1
|
||||
#define INT_SAMPLING_DATA2 (INT_SAMPLING_DATA1+1)
|
||||
#define INT_SAMPLING_DATA3 (INT_SAMPLING_DATA1+2)
|
||||
#define INT_SAMPLING_DATA4 (INT_SAMPLING_DATA1+3)
|
||||
#define INT_SAMPLING_DATA5 (INT_SAMPLING_DATA1+4)
|
||||
#define INT_SAMPLING_DATA6 (INT_SAMPLING_DATA1+5)
|
||||
#define INT_SAMPLING_DATA7 (INT_SAMPLING_DATA1+6)
|
||||
#define INT_SAMPLING_DATA8 (INT_SAMPLING_DATA1+7)
|
||||
#define INT_SAMPLING_DATA9 (INT_SAMPLING_DATA1+8)
|
||||
#define INT_SAMPLING_DATA10 (INT_SAMPLING_DATA1+9)
|
||||
#define INT_SAMPLING_DATA11 (INT_SAMPLING_DATA1+10)
|
||||
#define INT_SAMPLING_DATA12 (INT_SAMPLING_DATA1+11)
|
||||
#define INT_SAMPLING_DATA13 (INT_SAMPLING_DATA1+12)
|
||||
#define INT_SAMPLING_DATA14 (INT_SAMPLING_DATA1+13)
|
||||
#define INT_SAMPLING_DATA15 (INT_SAMPLING_DATA1+14)
|
||||
#define INT_SAMPLING_DATA16 (INT_SAMPLING_DATA1+15)
|
||||
#define INT_SAMPLING_DATA17 (INT_SAMPLING_DATA1+16)
|
||||
#define INT_SAMPLING_DATA18 (INT_SAMPLING_DATA1+17)
|
||||
#define INT_SAMPLING_DATA19 (INT_SAMPLING_DATA1+18)
|
||||
#define INT_SAMPLING_DATA20 (INT_SAMPLING_DATA1+19)
|
||||
#define INT_SAMPLING_DATA21 (INT_SAMPLING_DATA1+20)
|
||||
#define INT_SAMPLING_DATA22 (INT_SAMPLING_DATA1+21)
|
||||
#define INT_SAMPLING_DATA23 (INT_SAMPLING_DATA1+22)
|
||||
#define INT_SAMPLING_DATA24 (INT_SAMPLING_DATA1+23)
|
||||
#define INT_SAMPLING_DATA25 (INT_SAMPLING_DATA1+24)
|
||||
#define INT_SAMPLING_DATA26 (INT_SAMPLING_DATA1+25)
|
||||
#define INT_SAMPLING_DATA27 (INT_SAMPLING_DATA1+26)
|
||||
#define INT_SAMPLING_DATA28 (INT_SAMPLING_DATA1+27)
|
||||
#define INT_SAMPLING_DATA29 (INT_SAMPLING_DATA1+28)
|
||||
#define INT_SAMPLING_DATA30 (INT_SAMPLING_DATA1+29)
|
||||
#define INT_SAMPLING_DATA31 (INT_SAMPLING_DATA1+30)
|
||||
#define INT_SAMPLING_DATA32 (INT_SAMPLING_DATA1+31)
|
||||
#define INT_SAMPLING_MAX INT_SAMPLING_DATA32
|
||||
#define SAMPLING_MAX (INT_SAMPLING_MAX - INT_SAMPLING_DATA1)
|
||||
|
||||
/*******************************************************************************/
|
||||
// Variable Address 0x8400 // flowrate
|
||||
// system complier infomation
|
||||
// For System work state
|
||||
#define INT_SYS_STATE 0x8400
|
||||
#define INT_SYS_MODE 0x8401
|
||||
#define INT_HARD_STATE 0x8402
|
||||
#define INT_SWTICH_STATE 0x8403
|
||||
#define INT_SYSTEM_VOLTAGE 0x8404
|
||||
#define INT_PRODUCT_MODEL 0x8405// 06 07 08 09 0a // 0b 0c 0d 0e 0f
|
||||
#define INT_BUILD_DATE 0x840B
|
||||
#define INT_PGA_SCALE 0x8410 // PGA<47>Ŵ<EFBFBD><C5B4><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define INT_NC_8411 0x8411 // <20><><EFBFBD>߱궨ʱ<EAB6A8>Ļ<EFBFBD><C4BB><EFBFBD><EFBFBD>¶<EFBFBD>
|
||||
#define INT_FR_PPM 0x8412 // PPM
|
||||
#define INT_STD_TA 0x8413 // <20><><EFBFBD>¶<EFBFBD> STD
|
||||
#define INT_CODE_COEFF 0x8414 // TR<54>¶<EFBFBD>ϵ<EFBFBD><CFB5> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB>ϵ<EFBFBD><CFB5>
|
||||
#define INT_TA_DELTA 0x8415 // MCU<43>¶<EFBFBD><C2B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ
|
||||
#define INT_BL_FLOW 0x8416
|
||||
#define INT_DOP_VALUE 0x8417 // <20><><EFBFBD>ֵ<EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define INT_BPS 0x8419 // УʱBPS
|
||||
|
||||
#define INT_DAC_ADJUST_OUT1 0x841A //
|
||||
#define INT_DAC_ADJUST_OUT2 0x841B //
|
||||
#define INT_DAC_ADJUST_OUT3 0x841C //
|
||||
#define INT_DAC_ADJUST_OVER 0x841D //
|
||||
#define INT_ZERO_CALIB_COUNTER 0x841E //
|
||||
//==============================================================================
|
||||
// fixed Read Address
|
||||
#define INT_UPDATE_APP 0xDF00
|
||||
#define INT_CALIB_1 0xE000
|
||||
#define INT_CALIB_2 0xF000
|
||||
|
||||
//==============================================================================
|
||||
#define WRITEKEY 0xAA55
|
||||
#define INTCMD_NOP 0
|
||||
#define INTCMD_CPOT_ADJUST (('C'<<8)+'P') //0x4350
|
||||
#define INTCMD_APOT_ADJUST (('A'<<8)+'P') //0x4150
|
||||
#define INTCMD_CTYPE_CURVE (('C'<<8)+'T') //0x4354
|
||||
#define INTCMD_ATYPE_CURVE (('A'<<8)+'T') //0x4154
|
||||
#define INTCMD_ATYPEFR_CURVE (('A'<<8)+'F') //0x4146
|
||||
#define INTCMD_MICROFR_CURVE (('M'<<8)+'F') //0x4D46
|
||||
#define INTCMD_DAC_CALIB (('D'<<8)+'P') //0x4450
|
||||
|
||||
#define INTCMD_1ST_TABLE (('N'<<8)+'1') //0x4E31
|
||||
#define INTCMD_2ND_TABLE (('N'<<8)+'2') //0x4E32
|
||||
|
||||
#define INTCMD_USER_MODE (('U'<<8)+'R') //0x5552
|
||||
#define INTCMD_CALIB_MODE (('C'<<8)+'L') //0x434C calibration mode
|
||||
#define INTCMD_BATTERY_MODE (('B'<<8)+'T') //0x4254
|
||||
#define INTCMD_GCF_TEST_MODE (('G'<<8)+'T') //0x4754
|
||||
#define INTCMD_DEBUG_MODE (('D'<<8)+'B') //0x4442
|
||||
|
||||
#define INTCMD_SAVE_SETUP (('S'<<8)+'F') //0x5346 Save the factory setting
|
||||
#define INTCMD_RESTORE (('R'<<8)+'F') //0x5246 Restore factory settings
|
||||
#define INTCMD_RESET_CORR (('R'<<8)+'C') //0x5243 Restore
|
||||
#define INTCMD_ZERO_CALIB_MODE (('Z'<<8)+'C') //0x5A43--23107
|
||||
|
||||
#define INTCMD_PRESET_OFFSET (('P'<<8)+'W') // 0x5057--20567
|
||||
#define INTCMD_CALIB_HTEMP (('H'<<8)+'T') // 0x4854--18516
|
||||
#define INTCMD_CALIB_LTEMP (('L'<<8)+'T') // 0x4c54--19540
|
||||
#define INTCMD_PRESET_OFFSET_END (('P'<<8)+'D') //0x5044
|
||||
#define INTCMD_CALIB_HTEMP_END (('H'<<8)+'D') //0x4844
|
||||
#define INTCMD_CALIB_LTEMP_END (('L'<<8)+'D') //0x4C44
|
||||
|
||||
#define INTCMD_RECOGNITION_TABLE INTCMD_2ND_TABLE
|
||||
#define INTCMD_TA_TABLE INTCMD_1ST_TABLE
|
||||
|
||||
#define INTCMD_ZERO_CALIB_HEX 0xC1
|
||||
/****************************************************************************************************************************************/
|
||||
|
||||
//To Flash
|
||||
#define INT_SN_BASE 0x8000 //6
|
||||
#define INT_ALARMSTATE 0x8006 //4
|
||||
#define INT_FLOWRATE 0x800A //2
|
||||
|
||||
|
||||
//#define meterSN1 0x8000
|
||||
//#define meterSN2 0x8001
|
||||
//#define meterSN3 0x8002
|
||||
//#define meterSN4 0x8003
|
||||
//#define meterSN5 0x8004
|
||||
//#define meterSN6 0x8005
|
||||
//#define alarmState 0x8006
|
||||
//#define alarmState1 0x8007
|
||||
//#define alarmState2 0x8008
|
||||
//#define alarmState3 0x8009
|
||||
//#define flowRateH 0x800A
|
||||
//#define flowRateL 0x800B
|
||||
//#define flowAccumulationIntegerH 0x800C
|
||||
//#define flowAccumulationIntegerL 0x800D
|
||||
//#define flowAccumulationDecimal 0x800E
|
||||
//#define PCBTemperature 0x800F
|
||||
//#define GasTemperature 0x8010
|
||||
////#define 0x8011
|
||||
////#define 0x8012
|
||||
////#define 0x8013
|
||||
////#define 0x8014
|
||||
//#define GASPressureH 0x8015
|
||||
//#define GASPressureL 0x8016
|
||||
//#define density 0x8017
|
||||
//#define batteryCY 0x8018
|
||||
//#define batteryVoltage 0x8019
|
||||
//#define batteryDay 0x801A
|
||||
//#define batteryRDay 0x801B
|
||||
//#define ComBatteryCY 0x801C
|
||||
//#define ComBatteryVoltage 0x801D
|
||||
//#define ComBatteryDay 0x801E
|
||||
//#define ComBatteryRDay 0x801F
|
||||
//#define useMinte 0x8020
|
||||
//#define useHourH 0x8021
|
||||
//#define useHourL 0x8022
|
||||
//#define VHHParameter 0x8023
|
||||
////#define 0x8024
|
||||
////#define 0x8025
|
||||
//#define flowAccumulationHexH 0x8026
|
||||
//#define flowAccumulationHexHM 0x8027
|
||||
//#define flowAccumulationHexLM 0x8028
|
||||
//#define flowAccumulationHexL 0x8029
|
||||
////#define 0x802A
|
||||
////#define 0x802B
|
||||
////#define 0x802C
|
||||
////#define 0x802D
|
||||
////#define 0x802E
|
||||
//#define densityFSParameter 0x802F
|
||||
////#define 0x8030
|
||||
////#define 0x8031
|
||||
////#define 0x8032
|
||||
////#define 0x8033
|
||||
////#define 0x8034
|
||||
////#define 0x8035
|
||||
////#define 0x8036
|
||||
////#define 0x8037
|
||||
////#define 0x8038
|
||||
////#define 0x8039
|
||||
////#define 0x803A
|
||||
////#define 0x803B
|
||||
////#define 0x803C
|
||||
////#define 0x803D
|
||||
////#define 0x803E
|
||||
////#define 0x803F
|
||||
////#define 0x8040
|
||||
////#define 0x8041
|
||||
////#define 0x8042
|
||||
////#define 0x8043
|
||||
////#define 0x8044
|
||||
////#define 0x8045
|
||||
////#define 0x8046
|
||||
////#define 0x8047
|
||||
////#define 0x8048
|
||||
////#define 0x8049
|
||||
////#define 0x804A
|
||||
////#define 0x804B
|
||||
////#define 0x804C
|
||||
////#define 0x804D
|
||||
//#define softCRCCode 0x804E
|
||||
//#define softVersion 0x804F
|
||||
//#define protocol 0x8050
|
||||
//#define localAddress 0x8051
|
||||
//#define baudRate 0x8052
|
||||
//#define minFlowRateH 0x8053
|
||||
//#define minFlowRateL 0x8054
|
||||
//#define maxFlowRateH 0x8055
|
||||
//#define maxFlowRateL 0x8056
|
||||
//#define minAnalogOutputH 0x8057
|
||||
//#define minAnalogOutputL 0x8058
|
||||
//#define maxAnalogOutputH 0x8059
|
||||
//#define maxAnalogOutputL 0x805A
|
||||
//#define GDCFactor 0x805B
|
||||
//#define filterTime 0x805C
|
||||
//#define responseTime 0x805D
|
||||
//#define offsetGas 0x805E
|
||||
//#define offsetGasA 0x805F
|
||||
//#define flowUnit 0x8060
|
||||
//#define VHHParameterAir 0x8061
|
||||
//#define VHHParameterScale 0x8062
|
||||
//#define factoryUnitPerPulse 0x8063
|
||||
//#define PulseLevel 0x8064
|
||||
//#define samplingTiming 0x8065
|
||||
//#define alarmAccH 0x8066
|
||||
//#define alarmAccL 0x8067
|
||||
//#define alarmUpperFlowRateH 0x8068
|
||||
//#define alarmUpperFlowRateL 0x8069
|
||||
//#define alarmLowerFlowRateH 0x806A
|
||||
//#define alarmLowerFlowRateL 0x806B
|
||||
//#define alarmFunction 0x806C
|
||||
//#define alarmOutDelay 0x806D
|
||||
//#define uartDecimalPoint 0x806E
|
||||
//#define historyPeriod 0x806F
|
||||
//#define reverseFlowRateMinH 0x8070
|
||||
//#define reverseFlowRateMinL 0x8071
|
||||
//#define reverseFlowRateMaxH 0x8072
|
||||
//#define reverseFlowRateMaxL 0x8073
|
||||
//#define I2CAddr 0x8074
|
||||
//#define I2CCrcMod 0x8075
|
||||
//#define timingTxdStart 0x8076
|
||||
//#define timingTxdLen 0x8077
|
||||
//#define timingTxdTime 0x8078
|
||||
//#define pressureOffset 0x8079
|
||||
////#define 0x807A
|
||||
////#define 0x807B
|
||||
////#define 0x807C
|
||||
////#define 0x807D
|
||||
//#define keyPassWordH 0x807E
|
||||
//#define keyPassWordL 0x807F
|
||||
////#define 0x8080
|
||||
////#define 0x8081
|
||||
////#define 0x8082
|
||||
////#define 0x8083
|
||||
////#define 0x8084
|
||||
////#define 0x8085
|
||||
////#define 0x8086
|
||||
////#define 0x8088
|
||||
////#define 0x8088
|
||||
////#define 0x8089
|
||||
////#define 0x808A
|
||||
////#define 0x808B
|
||||
////#define 0x808C
|
||||
////#define 0x808D
|
||||
////#define 0x808E
|
||||
////#define 0x808F
|
||||
////#define 0x8090
|
||||
////#define 0x8091
|
||||
////#define 0x8092
|
||||
////#define 0x8093
|
||||
////#define 0x8094
|
||||
////#define 0x8095
|
||||
////#define 0x8099
|
||||
////#define 0x8097
|
||||
////#define 0x8098
|
||||
////#define 0x8099
|
||||
////#define 0x809A
|
||||
////#define 0x809B
|
||||
////#define 0x809C
|
||||
////#define 0x809D
|
||||
////#define 0x809E
|
||||
////#define 0x809F
|
||||
////#define 0x80A0
|
||||
////#define 0x80A1
|
||||
////#define 0x80A2
|
||||
////#define 0x80A3
|
||||
////#define 0x80A4
|
||||
////#define 0x80A5
|
||||
////#define 0x80A6
|
||||
////#define 0x80A7
|
||||
////#define 0x80A8
|
||||
////#define 0x80A9
|
||||
//#define minLeakFlowRate 0x80AA
|
||||
//#define maxLeakFlowRate 0x80AB
|
||||
//#define leakDetectTime 0x80AC
|
||||
////#define 0x80AD
|
||||
//#define GDCFactorAType 0x80AE
|
||||
////#define 0x80AF
|
||||
////#define 0x80B0
|
||||
////#define 0x80B1
|
||||
////#define 0x80B2
|
||||
////#define 0x80B3
|
||||
////#define 0x80B4
|
||||
////#define 0x80B5
|
||||
////#define 0x80B6
|
||||
////#define 0x80BB
|
||||
////#define 0x80B8
|
||||
////#define 0x80B9
|
||||
////#define 0x80BA
|
||||
////#define 0x80BB
|
||||
////#define 0x80BC
|
||||
////#define 0x80BD
|
||||
////#define 0x80BE
|
||||
////#define 0x80BF
|
||||
//#define CMDCalOffset 0x80C0
|
||||
//#define CMDClrRecord 0x80C1
|
||||
////#define 0x80C2
|
||||
////#define 0x80C3
|
||||
////#define 0x80C4
|
||||
////#define 0x80C5
|
||||
////#define 0x80C6
|
||||
////#define 0x80C7
|
||||
////#define 0x80C8
|
||||
////#define 0x80C9
|
||||
////#define 0x80CA
|
||||
////#define 0x80CB
|
||||
////#define 0x80CC
|
||||
////#define 0x80CD
|
||||
////#define 0x80CE
|
||||
//#define CMDComPassword 0x80CF
|
||||
//#define MAPPoint1 0x80D0
|
||||
//#define MAPPoint2 0x80D1
|
||||
//#define MAPPoint3 0x80D2
|
||||
//#define MAPPoint4 0x80D3
|
||||
//#define MAPPoint5 0x80D4
|
||||
//#define MAPPoint6 0x80D5
|
||||
//#define MAPPoint7 0x80D6
|
||||
//#define MAPPoint8 0x80D7
|
||||
//#define MAPPoint9 0x80D8
|
||||
//#define MAPPoint10 0x80D9
|
||||
//#define MAPPoint11 0x80DA
|
||||
//#define MAPPoint12 0x80DB
|
||||
//#define MAPPoint13 0x80DC
|
||||
//#define MAPPoint14 0x80DD
|
||||
//#define MAPPoint15 0x80DE
|
||||
//#define MAPPoint16 0x80DF
|
||||
//#define MAPPoint17 0x80E0
|
||||
//#define MAPPoint18 0x80E1
|
||||
//#define MAPPoint19 0x80E2
|
||||
//#define MAPPoint20 0x80E3
|
||||
//#define MAPPoint21 0x80E4
|
||||
//#define MAPPoint22 0x80E5
|
||||
//#define MAPPoint23 0x80E6
|
||||
//#define MAPPoint24 0x80E7
|
||||
//#define MAPPoint25 0x80E8
|
||||
//#define MAPPoint26 0x80E9
|
||||
//#define MAPPoint27 0x80EA
|
||||
//#define MAPPoint28 0x80EB
|
||||
//#define MAPPoint29 0x80EC
|
||||
//#define MAPPoint30 0x80ED
|
||||
//#define MAPPoint31 0x80EE
|
||||
//#define MAPPoint32 0x80EF
|
||||
//#define MAPPoint33 0x80F0
|
||||
//#define MAPPoint34 0x80F1
|
||||
//#define MAPPoint35 0x80F2
|
||||
//#define MAPPoint36 0x80F3
|
||||
//#define MAPPoint37 0x80F4
|
||||
//#define MAPPoint38 0x80F5
|
||||
//#define MAPPoint39 0x80F6
|
||||
//#define MAPPoint40 0x80F7
|
||||
//#define MAPPoint41 0x80F8
|
||||
//#define MAPPoint42 0x80F9
|
||||
//#define MAPPoint43 0x80FA
|
||||
//#define MAPPoint44 0x80FB
|
||||
//#define MAPPoint45 0x80FC
|
||||
//#define MAPPoint46 0x80FD
|
||||
//#define MAPPoint47 0x80FE
|
||||
//#define MAPPoint48 0x80FF
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#endif
|
||||
@@ -2,29 +2,32 @@
|
||||
#define __InternalModbusDefine_h__
|
||||
|
||||
/******************************************************************************/
|
||||
#define INT_METER_INFO 0x8000
|
||||
#define INT_METER_CODE 0x8300
|
||||
#define INT_METER_PARA 0x8200
|
||||
#define INT_METER_SYS 0x8400
|
||||
#define INT_METER_INFO 0x8000 // <20>DZ<EFBFBD><C7B1><EFBFBD>Ϣ<EFBFBD><CFA2><EFBFBD>̶<EFBFBD><CCB6><EFBFBD>ַ<EFBFBD><D6B7>
|
||||
#define INT_METER_OPERATE 0x8200 // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ִ<EFBFBD><D6B4><EFBFBD><EFBFBD>
|
||||
#define INT_METER_PARA 0x8210 // <20>ڲ<EFBFBD>16bit<69><74><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 0x8220-0x827F
|
||||
#define INT_METER_DWORD_PARA 0x8280 // <20>ڲ<EFBFBD>32bit<69><74><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 0x8280-0x82FF
|
||||
#define INT_METER_CODE 0x8300 // ʵʱ<CAB5><CAB1><EFBFBD>ݶ<EFBFBD>ȡ
|
||||
#define INT_METER_SYS 0x8400 // ϵͳ״̬<D7B4><CCAC>ȡ
|
||||
|
||||
#define INT_METER_BASIC 0x8500
|
||||
#define INT_METER_BASIC_MASK 0xff00
|
||||
#define INT_METER_BASIC 0x8600 // <20>ڲ<EFBFBD><DAB2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݱ<EFBFBD><DDB1><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define INT_METER_BASIC_MASK 0xFF00
|
||||
#define INT_METER_BASIC_MAX (INT_METER_BASIC + BASIC_DATA_MAX)
|
||||
|
||||
#define INT_METER_9000 0x9000
|
||||
#define INT_METER_A000 0xA000
|
||||
#define INT_METER_D000 0xD000
|
||||
#define INT_METER_E000 0xE000
|
||||
#define INT_METER_E000 0xE000 // У<D0A3><D7BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define INT_METER_F000 0xF000
|
||||
#define INT_MASK 0xFF00
|
||||
|
||||
/******************************************************************************/
|
||||
#define INT_METER_INFO_MAX (INT_METER_INFO+0x00ff)
|
||||
#define INT_METER_PARA_MAX (INT_METER_PARA+0x00ff)
|
||||
#define INT_METER_CODE_MAX (INT_METER_CODE+0x00ff)
|
||||
#define INT_METER_SYS_MAX (INT_METER_SYS+0x00ff)
|
||||
//#define INT_METER_85FF +0x00ff)
|
||||
//#define INT_METER_86FF +0x00ff)
|
||||
#define INT_METER_INFO_MAX 0x80FF // <20>DZ<EFBFBD><C7B1><EFBFBD>Ϣ<EFBFBD><CFA2><EFBFBD>̶<EFBFBD><CCB6><EFBFBD>ַ<EFBFBD><D6B7>
|
||||
#define INT_METER_OPERATE_MAX 0x820F // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ִ<EFBFBD><D6B4><EFBFBD><EFBFBD>
|
||||
#define INT_METER_PARA_MAX 0x827F // <20>ڲ<EFBFBD>16bit<69><74><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 0x8220-0x827F
|
||||
#define INT_METER_DWORD_PARA_MAX 0x82FF // <20>ڲ<EFBFBD>32bit<69><74><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 0x8290-0x82FF
|
||||
#define INT_METER_OPERATE_MAX 0x82FF
|
||||
#define INT_METER_CODE_MAX 0x8330 // ʵʱ<CAB5><CAB1><EFBFBD>ݶ<EFBFBD>ȡ
|
||||
#define INT_METER_SYS_MAX 0x84FF // ϵͳ״̬<D7B4><CCAC>ȡ
|
||||
|
||||
/******************************************************************************/
|
||||
// for factory control
|
||||
@@ -82,6 +85,37 @@
|
||||
#define INT_CURVE_NODE36 (INT_CURVE_BASE+105)
|
||||
#define INT_CURVE_MAX (INT_CURVE_NODE1 + CURVE_DATA_MAX*3)
|
||||
|
||||
/*******************************************************************************/
|
||||
// Variable Address 0x8100 // flowrate
|
||||
// system complier infomation
|
||||
// For System work state
|
||||
#define INT_SYS_STATE 0x8400
|
||||
#define INT_SYS_MODE 0x8401
|
||||
#define INT_HARD_STATE 0x8402
|
||||
#define INT_SWTICH_STATE 0x8403
|
||||
#define INT_SYSTEM_VOLTAGE 0x8404
|
||||
#define INT_PRODUCT_MODEL 0x8405 // 06 07 08 09 0a // 0b 0c 0d 0e 0f
|
||||
#define INT_BUILD_DATE 0x840B // 0x840B 840C 840D 840E 840F
|
||||
|
||||
#define INT_NC_8411 0x8411 // <20><><EFBFBD>߱궨ʱ<EAB6A8>Ļ<EFBFBD><C4BB><EFBFBD><EFBFBD>¶<EFBFBD>
|
||||
#define INT_FR_PPM 0x8412 // PPM
|
||||
#define INT_STD_TA 0x8413 // <20><><EFBFBD>¶<EFBFBD> STD
|
||||
#define INT_CODE_COEFF 0x8414 // TR<54>¶<EFBFBD>ϵ<EFBFBD><CFB5> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB>ϵ<EFBFBD><CFB5>
|
||||
#define INT_TA_DELTA 0x8415 // MCU<43>¶<EFBFBD><C2B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ
|
||||
#define INT_BL_FLOW 0x8416
|
||||
#define INT_DOP_VALUE 0x8417 // <20><><EFBFBD>ֵ<EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define INT_BPS 0x8419 // УʱBPS
|
||||
|
||||
#define INT_DAC_ADJUST_OUT1 0x841A //
|
||||
#define INT_DAC_ADJUST_OUT2 0x841B //
|
||||
#define INT_DAC_ADJUST_OUT3 0x841C //
|
||||
#define INT_DAC_ADJUST_OVER 0x841D //
|
||||
#define INT_ZERO_CALIB_COUNTER 0x841E //
|
||||
|
||||
/*******************************************************************************/
|
||||
// FIX Address 0x8400 // flowrate
|
||||
// system complier infomation
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define INT_FIX_INFO_MAX 0x8200
|
||||
#define INT_REG_BASE 0x8200
|
||||
// fixed Read Address
|
||||
@@ -98,84 +132,16 @@
|
||||
#define INT_CALIB_DEPTH 0x820B // 2Byte [Disable Write]
|
||||
#define INT_CALIB_WIDTH 0x820C // 2Byte [Disable Write]
|
||||
// Variable Address
|
||||
#define INT_COMMAND 0x820D //internal control start address [Disable Read]
|
||||
#define INT_COMMAND 0x820D // internal control start address [Disable Read]
|
||||
#define INT_CONTROL 0x820D // mode control:9d 45, 9D 00, 55 [Disable Read]
|
||||
#define INT_CLEAR_RECORD 0x820E // clear data record: [Disable Read]
|
||||
#define INT_TEST_OFFSET 0x820F // [Disable Read]
|
||||
// parameter Address
|
||||
|
||||
// parameter Address [16 bit] 0x8210 - 0x827F
|
||||
#define INT_PARAMETER 0x8210 // internal parameter write and read address start
|
||||
#define INT_PROTOCOL 0x8210 // MODBUS Slaver Addr
|
||||
#define INT_SLAVER_ADDR 0x8211 // MODBUS Slaver Addr
|
||||
#define INT_METER_FACTOR 0x8212
|
||||
#define INT_GDCF 0x8213
|
||||
#define INT_MAX_FLOW 0x8214
|
||||
#define INT_OFFSET_GAS 0x8216
|
||||
#define INT_OFFSET_AIR 0x8217
|
||||
#define INT_SAMPLE_PERIOD 0x8218
|
||||
#define INT_HISTORY_PERIOD 0x8219
|
||||
#define INT_PULSE_UNIT 0x821A
|
||||
//#define INT_MAX_LOOP_FR 0x821B
|
||||
#define INT_SENSOR_SN 0x821D // 0x821D/0x821E/0x821F
|
||||
#define INT_TOTAL_ACC 0x8220 // 0x8220-0x8225
|
||||
#define INT_CALIB_TA 0x8226 // 0x8226
|
||||
#define INT_OFFSET_A_GAS 0x8227
|
||||
#define INT_OFFSET_A_AIR 0x8228
|
||||
#define INT_ATYPE_INDEX_GAIN 0x8229
|
||||
#define INT_GDCF_ATYPE 0x822A
|
||||
#define INT_GDCF_CTYPE 0x822B
|
||||
#define INT_CALIB_PIPE 0x822C
|
||||
#define INT_WORK_PIPE 0x822D
|
||||
#define INT_WORK_UNIT 0x822E
|
||||
#define INT_DIS_LANGUAGE 0x822F
|
||||
#define INT_ACC_OUT_BIT 0x8230
|
||||
#define INT_REVERSE_SCALE 0x8231
|
||||
#define INT_VHH_HIGH 0x8232
|
||||
#define INT_VHH_ROOM 0x8233
|
||||
#define INT_VHH_LOW 0x8234
|
||||
#define INT_NRH_HIGH 0x8235
|
||||
#define INT_NRH_ROOM 0x8236
|
||||
#define INT_NRH_LOW 0x8237
|
||||
#define INT_NRR_HIGH 0x8238
|
||||
#define INT_NRR_ROOM 0x8239
|
||||
#define INT_NRR_LOW 0x823A
|
||||
#define INT_GCF_A 0x823B
|
||||
#define INT_GCF_B 0x823D
|
||||
#define INT_GCF_C 0x823E
|
||||
#define INT_RH_GAINRES 0x8240
|
||||
#define INT_ZERO_SUPPRESSION 0x8244
|
||||
#define INT_STATIC_LOW_TA 0x8245
|
||||
#define INT_STATIC_HIGH_TA 0x8246
|
||||
#define INT_PULSE_COUNTER 0x8247 // byte = 4
|
||||
#define INT_ATYPE_RC 0x8249 //
|
||||
#define INT_ATYPE_WIPER 0x824A //
|
||||
#define INT_CTYPE_WIPER 0x824B //
|
||||
#define INT_CTYPE_ADC 0x824C //
|
||||
#define INT_OFFSET_HIGH 0x824D //
|
||||
#define INT_OFFSET_LOW 0x824E //
|
||||
#define INT_TRH_HIGH 0x824F //
|
||||
#define INT_TRH_LOW 0x8250 //
|
||||
#define INT_MEMS_RATIO 0x8251 //
|
||||
#define INT_SYS_LCD 0x8252 //
|
||||
#define INT_SYS_CHIP 0x8253 //
|
||||
#define INT_TEMP_CORR 0x8254 //
|
||||
#define INT_OFFSET_VDUGX_GAS 0x8255
|
||||
#define INT_OFFSET_VDUGX_AIR 0x8256
|
||||
#define INT_OFFSET_RGINX 0x8257
|
||||
#define INT_NRH_P50 0x8258
|
||||
#define INT_NRH_P0 0x8259
|
||||
#define INT_ADC_GAIN 0x825A
|
||||
#define INT_RES_FACTOR 0x825B
|
||||
#define INT_BATTEST_PERIOD 0x825C
|
||||
#define INT_FR_SWITCH_POINT 0x825D
|
||||
#define INT_CALIB_FR_GAIN 0x825F // У<D0A3><D7BC><EFBFBD><EFBFBD><EFBFBD>Ŵ<EFBFBD><C5B4><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define INT_AUTO_CALIB_ATYPE 0x8260
|
||||
#define INT_USER_INIT_INDEX 0x8261
|
||||
#define INT_DIVHX_HIGH 0x8262
|
||||
#define INT_DIVHX_ROOM 0x8263
|
||||
#define INT_DIVHX_LOW 0x8264
|
||||
#define INT_VDUGX_HIGH 0x8265
|
||||
#define INT_VDUGX_ROOM 0x8266
|
||||
#define INT_VDUGX_LOW 0x8267
|
||||
|
||||
// parameter Address [32 bit] 0x8290
|
||||
|
||||
//==============================================================================
|
||||
// Variable Address(read:MAX 8 Line)
|
||||
@@ -236,31 +202,6 @@
|
||||
#define SAMPLING_MAX (INT_SAMPLING_MAX - INT_SAMPLING_DATA1)
|
||||
|
||||
/*******************************************************************************/
|
||||
// Variable Address 0x8400 // flowrate
|
||||
// system complier infomation
|
||||
// For System work state
|
||||
#define INT_SYS_STATE 0x8400
|
||||
#define INT_SYS_MODE 0x8401
|
||||
#define INT_HARD_STATE 0x8402
|
||||
#define INT_SWTICH_STATE 0x8403
|
||||
#define INT_SYSTEM_VOLTAGE 0x8404
|
||||
#define INT_PRODUCT_MODEL 0x8405// 06 07 08 09 0a // 0b 0c 0d 0e 0f
|
||||
#define INT_BUILD_DATE 0x840B
|
||||
#define INT_PGA_SCALE 0x8410 // PGA<47>Ŵ<EFBFBD><C5B4><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define INT_NC_8411 0x8411 // <20><><EFBFBD>߱궨ʱ<EAB6A8>Ļ<EFBFBD><C4BB><EFBFBD><EFBFBD>¶<EFBFBD>
|
||||
#define INT_FR_PPM 0x8412 // PPM
|
||||
#define INT_STD_TA 0x8413 // <20><><EFBFBD>¶<EFBFBD> STD
|
||||
#define INT_CODE_COEFF 0x8414 // TR<54>¶<EFBFBD>ϵ<EFBFBD><CFB5> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB>ϵ<EFBFBD><CFB5>
|
||||
#define INT_TA_DELTA 0x8415 // MCU<43>¶<EFBFBD><C2B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ
|
||||
#define INT_BL_FLOW 0x8416
|
||||
#define INT_DOP_VALUE 0x8417 // <20><><EFBFBD>ֵ<EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define INT_BPS 0x8419 // УʱBPS
|
||||
|
||||
#define INT_DAC_ADJUST_OUT1 0x841A //
|
||||
#define INT_DAC_ADJUST_OUT2 0x841B //
|
||||
#define INT_DAC_ADJUST_OUT3 0x841C //
|
||||
#define INT_DAC_ADJUST_OVER 0x841D //
|
||||
#define INT_ZERO_CALIB_COUNTER 0x841E //
|
||||
//==============================================================================
|
||||
// fixed Read Address
|
||||
#define INT_UPDATE_APP 0xDF00
|
||||
@@ -298,278 +239,308 @@
|
||||
#define INTCMD_PRESET_OFFSET_END (('P'<<8)+'D') //0x5044
|
||||
#define INTCMD_CALIB_HTEMP_END (('H'<<8)+'D') //0x4844
|
||||
#define INTCMD_CALIB_LTEMP_END (('L'<<8)+'D') //0x4C44
|
||||
#define INTCMD_CALIB_TEMP_END (('H'<<8)+'L') //
|
||||
|
||||
#define INTCMD_RECOGNITION_TABLE INTCMD_2ND_TABLE
|
||||
#define INTCMD_TA_TABLE INTCMD_1ST_TABLE
|
||||
|
||||
#define INTCMD_ZERO_CALIB_HEX 0xC1
|
||||
/****************************************************************************************************************************************/
|
||||
/***********************************************************************************************/
|
||||
|
||||
//To Flash
|
||||
#define INT_SN_BASE 0x8000 //6
|
||||
#define INT_ALARMSTATE 0x8006 //4
|
||||
#define INT_FLOWRATE 0x800A //2
|
||||
#define INT_SN_BASE 0x8000 //6
|
||||
#define INT_ALARMSTATE 0x8006 //4
|
||||
#define INT_FLOWRATE 0x800A //2
|
||||
/***********************************************************************************************/
|
||||
// <20><><EFBFBD><EFBFBD>ָ<EFBFBD>붨<EFBFBD><EBB6A8>
|
||||
#define REG_WORD_START 0x8210
|
||||
#define REG_0X8210 (0x8210 - REG_WORD_START)
|
||||
#define REG_0X8211 (0x8211 - REG_WORD_START)
|
||||
#define REG_0X8212 (0x8212 - REG_WORD_START)
|
||||
#define REG_0X8213 (0x8213 - REG_WORD_START)
|
||||
#define REG_0X8214 (0x8214 - REG_WORD_START)
|
||||
#define REG_0X8215 (0x8215 - REG_WORD_START)
|
||||
#define REG_0X8216 (0x8216 - REG_WORD_START)
|
||||
#define REG_0X8217 (0x8217 - REG_WORD_START)
|
||||
#define REG_0X8218 (0x8218 - REG_WORD_START)
|
||||
#define REG_0X8219 (0x8219 - REG_WORD_START)
|
||||
#define REG_0X821A (0x821A - REG_WORD_START)
|
||||
#define REG_0X821B (0x821B - REG_WORD_START)
|
||||
#define REG_0X821C (0x821C - REG_WORD_START)
|
||||
#define REG_0X821D (0x821D - REG_WORD_START)
|
||||
#define REG_0X821E (0x821E - REG_WORD_START)
|
||||
#define REG_0X821F (0x821F - REG_WORD_START)
|
||||
#define REG_0X8220 (0x8220 - REG_WORD_START)
|
||||
#define REG_0X8221 (0x8221 - REG_WORD_START)
|
||||
#define REG_0X8222 (0x8222 - REG_WORD_START)
|
||||
#define REG_0X8223 (0x8223 - REG_WORD_START)
|
||||
#define REG_0X8224 (0x8224 - REG_WORD_START)
|
||||
#define REG_0X8225 (0x8225 - REG_WORD_START)
|
||||
#define REG_0X8226 (0x8226 - REG_WORD_START)
|
||||
#define REG_0X8227 (0x8227 - REG_WORD_START)
|
||||
#define REG_0X8228 (0x8228 - REG_WORD_START)
|
||||
#define REG_0X8229 (0x8229 - REG_WORD_START)
|
||||
#define REG_0X822A (0x822A - REG_WORD_START)
|
||||
#define REG_0X822B (0x822B - REG_WORD_START)
|
||||
#define REG_0X822C (0x822C - REG_WORD_START)
|
||||
#define REG_0X822D (0x822D - REG_WORD_START)
|
||||
#define REG_0X822E (0x822E - REG_WORD_START)
|
||||
#define REG_0X822F (0x822F - REG_WORD_START)
|
||||
#define REG_0X8230 (0x8230 - REG_WORD_START)
|
||||
#define REG_0X8231 (0x8231 - REG_WORD_START)
|
||||
#define REG_0X8232 (0x8232 - REG_WORD_START)
|
||||
#define REG_0X8233 (0x8233 - REG_WORD_START)
|
||||
#define REG_0X8234 (0x8234 - REG_WORD_START)
|
||||
#define REG_0X8235 (0x8235 - REG_WORD_START)
|
||||
#define REG_0X8236 (0x8236 - REG_WORD_START)
|
||||
#define REG_0X8237 (0x8237 - REG_WORD_START)
|
||||
#define REG_0X8238 (0x8238 - REG_WORD_START)
|
||||
#define REG_0X8239 (0x8239 - REG_WORD_START)
|
||||
#define REG_0X823A (0x823A - REG_WORD_START)
|
||||
#define REG_0X823B (0x823B - REG_WORD_START)
|
||||
#define REG_0X823C (0x823C - REG_WORD_START)
|
||||
#define REG_0X823D (0x823D - REG_WORD_START)
|
||||
#define REG_0X823E (0x823E - REG_WORD_START)
|
||||
#define REG_0X823F (0x823F - REG_WORD_START)
|
||||
#define REG_0X8240 (0x8240 - REG_WORD_START)
|
||||
#define REG_0X8241 (0x8241 - REG_WORD_START)
|
||||
#define REG_0X8242 (0x8242 - REG_WORD_START)
|
||||
#define REG_0X8243 (0x8243 - REG_WORD_START)
|
||||
#define REG_0X8244 (0x8244 - REG_WORD_START)
|
||||
#define REG_0X8245 (0x8245 - REG_WORD_START)
|
||||
#define REG_0X8246 (0x8246 - REG_WORD_START)
|
||||
#define REG_0X8247 (0x8247 - REG_WORD_START)
|
||||
#define REG_0X8248 (0x8248 - REG_WORD_START)
|
||||
#define REG_0X8249 (0x8249 - REG_WORD_START)
|
||||
#define REG_0X824A (0x824A - REG_WORD_START)
|
||||
#define REG_0X824B (0x824B - REG_WORD_START)
|
||||
#define REG_0X824C (0x824C - REG_WORD_START)
|
||||
#define REG_0X824D (0x824D - REG_WORD_START)
|
||||
#define REG_0X824E (0x824E - REG_WORD_START)
|
||||
#define REG_0X824F (0x824F - REG_WORD_START)
|
||||
#define REG_0X8250 (0x8250 - REG_WORD_START)
|
||||
#define REG_0X8251 (0x8251 - REG_WORD_START)
|
||||
#define REG_0X8252 (0x8252 - REG_WORD_START)
|
||||
#define REG_0X8253 (0x8253 - REG_WORD_START)
|
||||
#define REG_0X8254 (0x8254 - REG_WORD_START)
|
||||
#define REG_0X8255 (0x8255 - REG_WORD_START)
|
||||
#define REG_0X8256 (0x8256 - REG_WORD_START)
|
||||
#define REG_0X8257 (0x8257 - REG_WORD_START)
|
||||
#define REG_0X8258 (0x8258 - REG_WORD_START)
|
||||
#define REG_0X8259 (0x8259 - REG_WORD_START)
|
||||
#define REG_0X825A (0x825A - REG_WORD_START)
|
||||
#define REG_0X825B (0x825B - REG_WORD_START)
|
||||
#define REG_0X825C (0x825C - REG_WORD_START)
|
||||
#define REG_0X825D (0x825D - REG_WORD_START)
|
||||
#define REG_0X825E (0x825E - REG_WORD_START)
|
||||
#define REG_0X825F (0x825F - REG_WORD_START)
|
||||
#define REG_0X8260 (0x8260 - REG_WORD_START)
|
||||
#define REG_0X8261 (0x8261 - REG_WORD_START)
|
||||
#define REG_0X8262 (0x8262 - REG_WORD_START)
|
||||
#define REG_0X8263 (0x8263 - REG_WORD_START)
|
||||
#define REG_0X8264 (0x8264 - REG_WORD_START)
|
||||
#define REG_0X8265 (0x8265 - REG_WORD_START)
|
||||
#define REG_0X8266 (0x8266 - REG_WORD_START)
|
||||
#define REG_0X8267 (0x8267 - REG_WORD_START)
|
||||
#define REG_0X8268 (0x8268 - REG_WORD_START)
|
||||
#define REG_0X8269 (0x8269 - REG_WORD_START)
|
||||
#define REG_0X826A (0x826A - REG_WORD_START)
|
||||
#define REG_0X826B (0x826B - REG_WORD_START)
|
||||
#define REG_0X826C (0x826C - REG_WORD_START)
|
||||
#define REG_0X826D (0x826D - REG_WORD_START)
|
||||
#define REG_0X826E (0x826E - REG_WORD_START)
|
||||
#define REG_0X826F (0x826F - REG_WORD_START)
|
||||
#define REG_0X8270 (0x8270 - REG_WORD_START)
|
||||
#define REG_0X8271 (0x8271 - REG_WORD_START)
|
||||
#define REG_0X8272 (0x8272 - REG_WORD_START)
|
||||
#define REG_0X8273 (0x8273 - REG_WORD_START)
|
||||
#define REG_0X8274 (0x8274 - REG_WORD_START)
|
||||
#define REG_0X8275 (0x8275 - REG_WORD_START)
|
||||
#define REG_0X8276 (0x8276 - REG_WORD_START)
|
||||
#define REG_0X8277 (0x8277 - REG_WORD_START)
|
||||
#define REG_0X8278 (0x8278 - REG_WORD_START)
|
||||
#define REG_0X8279 (0x8279 - REG_WORD_START)
|
||||
#define REG_0X827A (0x827A - REG_WORD_START)
|
||||
#define REG_0X827B (0x827B - REG_WORD_START)
|
||||
#define REG_0X827C (0x827C - REG_WORD_START)
|
||||
#define REG_0X827D (0x827D - REG_WORD_START)
|
||||
#define REG_0X827E (0x827E - REG_WORD_START)
|
||||
#define REG_0X827F (0x827F - REG_WORD_START)
|
||||
#define WORD_INX_MAX (REG_0X827F + 1)
|
||||
|
||||
#define REG_DWORD_START 0X8280
|
||||
#define REG_0X8280 (0X8280 - REG_DWORD_START)
|
||||
#define REG_0X8282 (0X8282 - REG_DWORD_START)
|
||||
#define REG_0X8284 (0X8284 - REG_DWORD_START)
|
||||
#define REG_0X8286 (0X8286 - REG_DWORD_START)
|
||||
#define REG_0X8288 (0X8288 - REG_DWORD_START)
|
||||
#define REG_0X828A (0X828A - REG_DWORD_START)
|
||||
#define REG_0X828C (0X828C - REG_DWORD_START)
|
||||
#define REG_0X828E (0X828E - REG_DWORD_START)
|
||||
#define REG_0X8290 (0X8290 - REG_DWORD_START)
|
||||
#define REG_0X8292 (0X8292 - REG_DWORD_START)
|
||||
#define REG_0X8294 (0X8294 - REG_DWORD_START)
|
||||
#define REG_0X8296 (0X8296 - REG_DWORD_START)
|
||||
#define REG_0X8298 (0X8298 - REG_DWORD_START)
|
||||
#define REG_0X829A (0X829A - REG_DWORD_START)
|
||||
#define REG_0X829C (0X828C - REG_DWORD_START)
|
||||
#define REG_0X829E (0X828E - REG_DWORD_START)
|
||||
#define DWORD_INX_MAX (REG_0X829E+1)
|
||||
|
||||
//#define meterSN1 0x8000
|
||||
//#define meterSN2 0x8001
|
||||
//#define meterSN3 0x8002
|
||||
//#define meterSN4 0x8003
|
||||
//#define meterSN5 0x8004
|
||||
//#define meterSN6 0x8005
|
||||
//#define alarmState 0x8006
|
||||
//#define alarmState1 0x8007
|
||||
//#define alarmState2 0x8008
|
||||
//#define alarmState3 0x8009
|
||||
//#define flowRateH 0x800A
|
||||
//#define flowRateL 0x800B
|
||||
//#define flowAccumulationIntegerH 0x800C
|
||||
//#define flowAccumulationIntegerL 0x800D
|
||||
//#define flowAccumulationDecimal 0x800E
|
||||
//#define PCBTemperature 0x800F
|
||||
//#define GasTemperature 0x8010
|
||||
////#define 0x8011
|
||||
////#define 0x8012
|
||||
////#define 0x8013
|
||||
////#define 0x8014
|
||||
//#define GASPressureH 0x8015
|
||||
//#define GASPressureL 0x8016
|
||||
//#define density 0x8017
|
||||
//#define batteryCY 0x8018
|
||||
//#define batteryVoltage 0x8019
|
||||
//#define batteryDay 0x801A
|
||||
//#define batteryRDay 0x801B
|
||||
//#define ComBatteryCY 0x801C
|
||||
//#define ComBatteryVoltage 0x801D
|
||||
//#define ComBatteryDay 0x801E
|
||||
//#define ComBatteryRDay 0x801F
|
||||
//#define useMinte 0x8020
|
||||
//#define useHourH 0x8021
|
||||
//#define useHourL 0x8022
|
||||
//#define VHHParameter 0x8023
|
||||
////#define 0x8024
|
||||
////#define 0x8025
|
||||
//#define flowAccumulationHexH 0x8026
|
||||
//#define flowAccumulationHexHM 0x8027
|
||||
//#define flowAccumulationHexLM 0x8028
|
||||
//#define flowAccumulationHexL 0x8029
|
||||
////#define 0x802A
|
||||
////#define 0x802B
|
||||
////#define 0x802C
|
||||
////#define 0x802D
|
||||
////#define 0x802E
|
||||
//#define densityFSParameter 0x802F
|
||||
////#define 0x8030
|
||||
////#define 0x8031
|
||||
////#define 0x8032
|
||||
////#define 0x8033
|
||||
////#define 0x8034
|
||||
////#define 0x8035
|
||||
////#define 0x8036
|
||||
////#define 0x8037
|
||||
////#define 0x8038
|
||||
////#define 0x8039
|
||||
////#define 0x803A
|
||||
////#define 0x803B
|
||||
////#define 0x803C
|
||||
////#define 0x803D
|
||||
////#define 0x803E
|
||||
////#define 0x803F
|
||||
////#define 0x8040
|
||||
////#define 0x8041
|
||||
////#define 0x8042
|
||||
////#define 0x8043
|
||||
////#define 0x8044
|
||||
////#define 0x8045
|
||||
////#define 0x8046
|
||||
////#define 0x8047
|
||||
////#define 0x8048
|
||||
////#define 0x8049
|
||||
////#define 0x804A
|
||||
////#define 0x804B
|
||||
////#define 0x804C
|
||||
////#define 0x804D
|
||||
//#define softCRCCode 0x804E
|
||||
//#define softVersion 0x804F
|
||||
//#define protocol 0x8050
|
||||
//#define localAddress 0x8051
|
||||
//#define baudRate 0x8052
|
||||
//#define minFlowRateH 0x8053
|
||||
//#define minFlowRateL 0x8054
|
||||
//#define maxFlowRateH 0x8055
|
||||
//#define maxFlowRateL 0x8056
|
||||
//#define minAnalogOutputH 0x8057
|
||||
//#define minAnalogOutputL 0x8058
|
||||
//#define maxAnalogOutputH 0x8059
|
||||
//#define maxAnalogOutputL 0x805A
|
||||
//#define GDCFactor 0x805B
|
||||
//#define filterTime 0x805C
|
||||
//#define responseTime 0x805D
|
||||
//#define offsetGas 0x805E
|
||||
//#define offsetGasA 0x805F
|
||||
//#define flowUnit 0x8060
|
||||
//#define VHHParameterAir 0x8061
|
||||
//#define VHHParameterScale 0x8062
|
||||
//#define factoryUnitPerPulse 0x8063
|
||||
//#define PulseLevel 0x8064
|
||||
//#define samplingTiming 0x8065
|
||||
//#define alarmAccH 0x8066
|
||||
//#define alarmAccL 0x8067
|
||||
//#define alarmUpperFlowRateH 0x8068
|
||||
//#define alarmUpperFlowRateL 0x8069
|
||||
//#define alarmLowerFlowRateH 0x806A
|
||||
//#define alarmLowerFlowRateL 0x806B
|
||||
//#define alarmFunction 0x806C
|
||||
//#define alarmOutDelay 0x806D
|
||||
//#define uartDecimalPoint 0x806E
|
||||
//#define historyPeriod 0x806F
|
||||
//#define reverseFlowRateMinH 0x8070
|
||||
//#define reverseFlowRateMinL 0x8071
|
||||
//#define reverseFlowRateMaxH 0x8072
|
||||
//#define reverseFlowRateMaxL 0x8073
|
||||
//#define I2CAddr 0x8074
|
||||
//#define I2CCrcMod 0x8075
|
||||
//#define timingTxdStart 0x8076
|
||||
//#define timingTxdLen 0x8077
|
||||
//#define timingTxdTime 0x8078
|
||||
//#define pressureOffset 0x8079
|
||||
////#define 0x807A
|
||||
////#define 0x807B
|
||||
////#define 0x807C
|
||||
////#define 0x807D
|
||||
//#define keyPassWordH 0x807E
|
||||
//#define keyPassWordL 0x807F
|
||||
////#define 0x8080
|
||||
////#define 0x8081
|
||||
////#define 0x8082
|
||||
////#define 0x8083
|
||||
////#define 0x8084
|
||||
////#define 0x8085
|
||||
////#define 0x8086
|
||||
////#define 0x8088
|
||||
////#define 0x8088
|
||||
////#define 0x8089
|
||||
////#define 0x808A
|
||||
////#define 0x808B
|
||||
////#define 0x808C
|
||||
////#define 0x808D
|
||||
////#define 0x808E
|
||||
////#define 0x808F
|
||||
////#define 0x8090
|
||||
////#define 0x8091
|
||||
////#define 0x8092
|
||||
////#define 0x8093
|
||||
////#define 0x8094
|
||||
////#define 0x8095
|
||||
////#define 0x8099
|
||||
////#define 0x8097
|
||||
////#define 0x8098
|
||||
////#define 0x8099
|
||||
////#define 0x809A
|
||||
////#define 0x809B
|
||||
////#define 0x809C
|
||||
////#define 0x809D
|
||||
////#define 0x809E
|
||||
////#define 0x809F
|
||||
////#define 0x80A0
|
||||
////#define 0x80A1
|
||||
////#define 0x80A2
|
||||
////#define 0x80A3
|
||||
////#define 0x80A4
|
||||
////#define 0x80A5
|
||||
////#define 0x80A6
|
||||
////#define 0x80A7
|
||||
////#define 0x80A8
|
||||
////#define 0x80A9
|
||||
//#define minLeakFlowRate 0x80AA
|
||||
//#define maxLeakFlowRate 0x80AB
|
||||
//#define leakDetectTime 0x80AC
|
||||
////#define 0x80AD
|
||||
//#define GDCFactorAType 0x80AE
|
||||
////#define 0x80AF
|
||||
////#define 0x80B0
|
||||
////#define 0x80B1
|
||||
////#define 0x80B2
|
||||
////#define 0x80B3
|
||||
////#define 0x80B4
|
||||
////#define 0x80B5
|
||||
////#define 0x80B6
|
||||
////#define 0x80BB
|
||||
////#define 0x80B8
|
||||
////#define 0x80B9
|
||||
////#define 0x80BA
|
||||
////#define 0x80BB
|
||||
////#define 0x80BC
|
||||
////#define 0x80BD
|
||||
////#define 0x80BE
|
||||
////#define 0x80BF
|
||||
//#define CMDCalOffset 0x80C0
|
||||
//#define CMDClrRecord 0x80C1
|
||||
////#define 0x80C2
|
||||
////#define 0x80C3
|
||||
////#define 0x80C4
|
||||
////#define 0x80C5
|
||||
////#define 0x80C6
|
||||
////#define 0x80C7
|
||||
////#define 0x80C8
|
||||
////#define 0x80C9
|
||||
////#define 0x80CA
|
||||
////#define 0x80CB
|
||||
////#define 0x80CC
|
||||
////#define 0x80CD
|
||||
////#define 0x80CE
|
||||
//#define CMDComPassword 0x80CF
|
||||
//#define MAPPoint1 0x80D0
|
||||
//#define MAPPoint2 0x80D1
|
||||
//#define MAPPoint3 0x80D2
|
||||
//#define MAPPoint4 0x80D3
|
||||
//#define MAPPoint5 0x80D4
|
||||
//#define MAPPoint6 0x80D5
|
||||
//#define MAPPoint7 0x80D6
|
||||
//#define MAPPoint8 0x80D7
|
||||
//#define MAPPoint9 0x80D8
|
||||
//#define MAPPoint10 0x80D9
|
||||
//#define MAPPoint11 0x80DA
|
||||
//#define MAPPoint12 0x80DB
|
||||
//#define MAPPoint13 0x80DC
|
||||
//#define MAPPoint14 0x80DD
|
||||
//#define MAPPoint15 0x80DE
|
||||
//#define MAPPoint16 0x80DF
|
||||
//#define MAPPoint17 0x80E0
|
||||
//#define MAPPoint18 0x80E1
|
||||
//#define MAPPoint19 0x80E2
|
||||
//#define MAPPoint20 0x80E3
|
||||
//#define MAPPoint21 0x80E4
|
||||
//#define MAPPoint22 0x80E5
|
||||
//#define MAPPoint23 0x80E6
|
||||
//#define MAPPoint24 0x80E7
|
||||
//#define MAPPoint25 0x80E8
|
||||
//#define MAPPoint26 0x80E9
|
||||
//#define MAPPoint27 0x80EA
|
||||
//#define MAPPoint28 0x80EB
|
||||
//#define MAPPoint29 0x80EC
|
||||
//#define MAPPoint30 0x80ED
|
||||
//#define MAPPoint31 0x80EE
|
||||
//#define MAPPoint32 0x80EF
|
||||
//#define MAPPoint33 0x80F0
|
||||
//#define MAPPoint34 0x80F1
|
||||
//#define MAPPoint35 0x80F2
|
||||
//#define MAPPoint36 0x80F3
|
||||
//#define MAPPoint37 0x80F4
|
||||
//#define MAPPoint38 0x80F5
|
||||
//#define MAPPoint39 0x80F6
|
||||
//#define MAPPoint40 0x80F7
|
||||
//#define MAPPoint41 0x80F8
|
||||
//#define MAPPoint42 0x80F9
|
||||
//#define MAPPoint43 0x80FA
|
||||
//#define MAPPoint44 0x80FB
|
||||
//#define MAPPoint45 0x80FC
|
||||
//#define MAPPoint46 0x80FD
|
||||
//#define MAPPoint47 0x80FE
|
||||
//#define MAPPoint48 0x80FF
|
||||
//MAX MIN DEFAULT
|
||||
#define INT_WORD_REG_MAX 112
|
||||
#define REG_0X8200_VALUE {65535,0,0}
|
||||
#define REG_0X8201_VALUE {65535,0,0}
|
||||
#define REG_0X8202_VALUE {65535,0,0}
|
||||
#define REG_0X8203_VALUE {65535,0,0}
|
||||
#define REG_0X8204_VALUE {65535,0,0}
|
||||
#define REG_0X8205_VALUE {65535,0,0}
|
||||
#define REG_0X8206_VALUE {65535,0,0}
|
||||
#define REG_0X8207_VALUE {65535,0,0}
|
||||
#define REG_0X8208_VALUE {65535,0,0}
|
||||
#define REG_0X8209_VALUE {65535,0,0}
|
||||
#define REG_0X820A_VALUE {65535,0,0}
|
||||
#define REG_0X820B_VALUE {65535,0,0}
|
||||
#define REG_0X820C_VALUE {65535,0,0}
|
||||
#define REG_0X820D_VALUE {65535,0,0}
|
||||
#define REG_0X820E_VALUE {65535,0,0}
|
||||
#define REG_0X820F_VALUE {65535,0,0}
|
||||
|
||||
#define REG_0X8210_VALUE {65535,0,0}
|
||||
#define REG_0X8211_VALUE {65535,0,0}
|
||||
#define REG_0X8212_VALUE {65535,0,0}
|
||||
#define REG_0X8213_VALUE {65535,0,0}
|
||||
#define REG_0X8214_VALUE {65535,0,0}
|
||||
#define REG_0X8215_VALUE {65535,0,0}
|
||||
#define REG_0X8216_VALUE {65535,0,0}
|
||||
#define REG_0X8217_VALUE {65535,0,0}
|
||||
#define REG_0X8218_VALUE {65535,0,0}
|
||||
#define REG_0X8219_VALUE {65535,0,0}
|
||||
#define REG_0X821A_VALUE {65535,0,0}
|
||||
#define REG_0X821B_VALUE {65535,0,0}
|
||||
#define REG_0X821C_VALUE {65535,0,0}
|
||||
#define REG_0X821D_VALUE {65535,0,0}
|
||||
#define REG_0X821E_VALUE {65535,0,0}
|
||||
#define REG_0X821F_VALUE {65535,0,0}
|
||||
|
||||
#define REG_0X8220_VALUE {65535,0,0}
|
||||
#define REG_0X8221_VALUE {65535,0,0}
|
||||
#define REG_0X8222_VALUE {65535,0,0}
|
||||
#define REG_0X8223_VALUE {65535,0,0}
|
||||
#define REG_0X8224_VALUE {65535,0,0}
|
||||
#define REG_0X8225_VALUE {65535,0,0}
|
||||
#define REG_0X8226_VALUE {65535,0,0}
|
||||
#define REG_0X8227_VALUE {65535,0,0}
|
||||
#define REG_0X8228_VALUE {65535,0,0}
|
||||
#define REG_0X8229_VALUE {65535,0,0}
|
||||
#define REG_0X822A_VALUE {65535,0,0}
|
||||
#define REG_0X822B_VALUE {65535,0,0}
|
||||
#define REG_0X822C_VALUE {65535,0,0}
|
||||
#define REG_0X822D_VALUE {65535,0,0}
|
||||
#define REG_0X822E_VALUE {65535,0,0}
|
||||
#define REG_0X822F_VALUE {65535,0,0}
|
||||
|
||||
#define REG_0X8230_VALUE {65535,0,0}
|
||||
#define REG_0X8231_VALUE {65535,0,0}
|
||||
#define REG_0X8232_VALUE {65535,0,0}
|
||||
#define REG_0X8233_VALUE {65535,0,0}
|
||||
#define REG_0X8234_VALUE {65535,0,0}
|
||||
#define REG_0X8235_VALUE {65535,0,0}
|
||||
#define REG_0X8236_VALUE {65535,0,0}
|
||||
#define REG_0X8237_VALUE {65535,0,0}
|
||||
#define REG_0X8238_VALUE {65535,0,0}
|
||||
#define REG_0X8239_VALUE {65535,0,0}
|
||||
#define REG_0X823A_VALUE {65535,0,0}
|
||||
#define REG_0X823B_VALUE {65535,0,0}
|
||||
#define REG_0X823C_VALUE {65535,0,0}
|
||||
#define REG_0X823D_VALUE {65535,0,0}
|
||||
#define REG_0X823E_VALUE {65535,0,0}
|
||||
#define REG_0X823F_VALUE {65535,0,0}
|
||||
|
||||
#define REG_0X8240_VALUE {65535,0,0}
|
||||
#define REG_0X8241_VALUE {65535,0,0}
|
||||
#define REG_0X8242_VALUE {65535,0,0}
|
||||
#define REG_0X8243_VALUE {65535,0,0}
|
||||
#define REG_0X8244_VALUE {65535,0,0}
|
||||
#define REG_0X8245_VALUE {65535,0,0}
|
||||
#define REG_0X8246_VALUE {65535,0,0}
|
||||
#define REG_0X8247_VALUE {65535,0,0}
|
||||
#define REG_0X8248_VALUE {65535,0,0}
|
||||
#define REG_0X8249_VALUE {65535,0,0}
|
||||
#define REG_0X824A_VALUE {65535,0,0}
|
||||
#define REG_0X824B_VALUE {65535,0,0}
|
||||
#define REG_0X824C_VALUE {65535,0,0}
|
||||
#define REG_0X824D_VALUE {65535,0,0}
|
||||
#define REG_0X824E_VALUE {65535,0,0}
|
||||
#define REG_0X824F_VALUE {65535,0,0}
|
||||
|
||||
#define REG_0X8250_VALUE {65535,0,0}
|
||||
#define REG_0X8251_VALUE {65535,0,0}
|
||||
#define REG_0X8252_VALUE {65535,0,0}
|
||||
#define REG_0X8253_VALUE {65535,0,0}
|
||||
#define REG_0X8254_VALUE {65535,0,0}
|
||||
#define REG_0X8255_VALUE {65535,0,0}
|
||||
#define REG_0X8256_VALUE {65535,0,0}
|
||||
#define REG_0X8257_VALUE {65535,0,0}
|
||||
#define REG_0X8258_VALUE {65535,0,0}
|
||||
#define REG_0X8259_VALUE {65535,0,0}
|
||||
#define REG_0X825A_VALUE {65535,0,0}
|
||||
#define REG_0X825B_VALUE {65535,0,0}
|
||||
#define REG_0X825C_VALUE {65535,0,0}
|
||||
#define REG_0X825D_VALUE {65535,0,0}
|
||||
#define REG_0X825E_VALUE {65535,0,0}
|
||||
#define REG_0X825F_VALUE {65535,0,0}
|
||||
|
||||
#define REG_0X8260_VALUE {65535,0,0}
|
||||
#define REG_0X8261_VALUE {65535,0,0}
|
||||
#define REG_0X8262_VALUE {65535,0,0}
|
||||
#define REG_0X8263_VALUE {65535,0,0}
|
||||
#define REG_0X8264_VALUE {65535,0,0}
|
||||
#define REG_0X8265_VALUE {65535,0,0}
|
||||
#define REG_0X8266_VALUE {65535,0,0}
|
||||
#define REG_0X8267_VALUE {65535,0,0}
|
||||
#define REG_0X8268_VALUE {65535,0,0}
|
||||
#define REG_0X8269_VALUE {65535,0,0}
|
||||
#define REG_0X826A_VALUE {65535,0,0}
|
||||
#define REG_0X826B_VALUE {65535,0,0}
|
||||
#define REG_0X826C_VALUE {65535,0,0}
|
||||
#define REG_0X826D_VALUE {65535,0,0}
|
||||
#define REG_0X826E_VALUE {65535,0,0}
|
||||
#define REG_0X826F_VALUE {65535,0,0}
|
||||
|
||||
#define REG_0X8270_VALUE {65535,0,0}
|
||||
#define REG_0X8271_VALUE {65535,0,0}
|
||||
#define REG_0X8272_VALUE {65535,0,0}
|
||||
#define REG_0X8273_VALUE {65535,0,0}
|
||||
#define REG_0X8274_VALUE {65535,0,0}
|
||||
#define REG_0X8275_VALUE {65535,0,0}
|
||||
#define REG_0X8276_VALUE {65535,0,0}
|
||||
#define REG_0X8277_VALUE {65535,0,0}
|
||||
#define REG_0X8278_VALUE {65535,0,0}
|
||||
#define REG_0X8279_VALUE {65535,0,0}
|
||||
#define REG_0X827A_VALUE {65535,0,0}
|
||||
#define REG_0X827B_VALUE {65535,0,0}
|
||||
#define REG_0X827C_VALUE {65535,0,0}
|
||||
#define REG_0X827D_VALUE {65535,0,0}
|
||||
#define REG_0X827E_VALUE {65535,0,0}
|
||||
#define REG_0X827F_VALUE {65535,0,0}
|
||||
|
||||
#define INT_DWORD_REG_MAX 16
|
||||
#define REG_0X8280_VALUE {65535,0,0}
|
||||
#define REG_0X8282_VALUE {65535,0,0}
|
||||
#define REG_0X8284_VALUE {65535,0,0}
|
||||
#define REG_0X8286_VALUE {65535,0,0}
|
||||
#define REG_0X8288_VALUE {65535,0,0}
|
||||
#define REG_0X828A_VALUE {65535,0,0}
|
||||
#define REG_0X828C_VALUE {65535,0,0}
|
||||
#define REG_0X828E_VALUE {65535,0,0}
|
||||
#define REG_0X8290_VALUE {65535,0,0}
|
||||
#define REG_0X8292_VALUE {65535,0,0}
|
||||
#define REG_0X8294_VALUE {65535,0,0}
|
||||
#define REG_0X8296_VALUE {65535,0,0}
|
||||
#define REG_0X8298_VALUE {65535,0,0}
|
||||
#define REG_0X829A_VALUE {65535,0,0}
|
||||
#define REG_0X829C_VALUE {65535,0,0}
|
||||
#define REG_0X829E_VALUE {65535,0,0}
|
||||
|
||||
#endif
|
||||
@@ -49,18 +49,16 @@ void ModBusErrorInfo(u8 ErrorCode)
|
||||
void ModBusReadMultiByte(void)
|
||||
{
|
||||
if(MBBuf.StartAddr < INT_PARAMETER_PROTOCOL) UserReadDataProtocol();
|
||||
else InternalReadParameterProtocolInFlash();//InternalReadParameterProtocolInFlash InternalReadParameterProtocol
|
||||
else InternalReadParameterProtocol();
|
||||
}
|
||||
|
||||
/******************************************************************************/
|
||||
void ModBusWriteMultiByte(void)
|
||||
{
|
||||
if(MBBuf.StartAddr < INT_PARAMETER_PROTOCOL) UserWriteDataProtocol();
|
||||
else InternalWriteParameterProtocolToFlash();//InternalWriteParameterProtocol(); InternalWriteParameterProtocol_withflash
|
||||
else InternalWriteParameterProtocol();
|
||||
}
|
||||
|
||||
|
||||
|
||||
/******************************************************************************/
|
||||
//ModBus<75><73><EFBFBD>ݴ<EFBFBD><DDB4><EFBFBD>
|
||||
void ModBusDataProcessing(void)
|
||||
@@ -72,20 +70,24 @@ void ModBusDataProcessing(void)
|
||||
MBBuf.StartAddr = ((u16)MBBuf.RxPointer[2] << 8) | (u16)MBBuf.RxPointer[3];
|
||||
MBBuf.ByteNumber = ((u16)MBBuf.RxPointer[4] << 8) | (u16)MBBuf.RxPointer[5];
|
||||
|
||||
if(MBBuf.ByteNumber > ENABLE_REG_MAX) { MBBuf.BusError = SLAVE_DEVICE_FAILURE; break; }
|
||||
if(MBBuf.ByteNumber > ENABLE_REG_MAX) {
|
||||
MBBuf.BusError = SLAVE_DEVICE_FAILURE;
|
||||
break;
|
||||
}
|
||||
MBBuf.ByteNumber <<= 1;
|
||||
MBBuf.TxdLen = MBBuf.ByteNumber;
|
||||
MBBuf.TxdLen = MBBuf.ByteNumber;
|
||||
MBBuf.RxPointer[2] = MBBuf.TxdLen;//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݵ<EFBFBD><DDB5>ֽ<EFBFBD><D6BD><EFBFBD>
|
||||
MBBuf.TxdLen += 4;
|
||||
MBBuf.Index = 3;
|
||||
MBBuf.TxdLen += 4;
|
||||
MBBuf.Index = 3;
|
||||
ModBusReadMultiByte();//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
break;
|
||||
|
||||
case PRESET_SINGLE_REGISTER: //0x06 дԤ<D0B4>õ<EFBFBD><C3B5>Ĵ<EFBFBD><C4B4><EFBFBD>---------------------------------------------
|
||||
MBBuf.StartAddr = MBBuf.StartAddr = ((u16)MBBuf.RxPointer[2] << 8) | (u16)MBBuf.RxPointer[3];
|
||||
MBBuf.EndAddr = MBBuf.StartAddr + 1;
|
||||
MBBuf.TxdLen = 7;
|
||||
MBBuf.TxdLen = 7;
|
||||
MBBuf.ByteNumber = 2;
|
||||
MBBuf.Index = 4; // <20><><EFBFBD>յ<EFBFBD><D5B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ч<EFBFBD><D0A7>ʼ
|
||||
MBBuf.Index = 4; // <20><><EFBFBD>յ<EFBFBD><D5B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ч<EFBFBD><D0A7>ʼ
|
||||
ModBusWriteMultiByte();//д<><D0B4><EFBFBD><EFBFBD>
|
||||
break;
|
||||
|
||||
@@ -93,8 +95,10 @@ void ModBusDataProcessing(void)
|
||||
//if(RxdIndex < 11) return;
|
||||
MBBuf.StartAddr = ((u16)MBBuf.RxPointer[2] << 8) | (u16)MBBuf.RxPointer[3];
|
||||
MBBuf.ByteNumber = ((u16)MBBuf.RxPointer[4] << 8) | (u16)MBBuf.RxPointer[5];
|
||||
if(MBBuf.ByteNumber > ENABLE_REG_MAX) { MBBuf.BusError = SLAVE_DEVICE_FAILURE; break; }
|
||||
|
||||
if(MBBuf.ByteNumber > ENABLE_REG_MAX) {
|
||||
MBBuf.BusError = SLAVE_DEVICE_FAILURE;
|
||||
break;
|
||||
}
|
||||
MBBuf.EndAddr = MBBuf.StartAddr + MBBuf.ByteNumber;
|
||||
MBBuf.ByteNumber <<= 1;
|
||||
//<><D7BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
@@ -103,26 +107,23 @@ void ModBusDataProcessing(void)
|
||||
MBBuf.Index = 7;
|
||||
ModBusWriteMultiByte();//д<><D0B4><EFBFBD><EFBFBD>
|
||||
break;
|
||||
|
||||
case ERROR_TEST : //0x08 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>-------------------------------------------------------------
|
||||
if (MBBuf.RxPointer[0] != 0x00) //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǹ㲥<C7B9><E3B2A5>ַ <20><><EFBFBD>ظ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ĭ
|
||||
break;
|
||||
// <09><><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD>MODBUS<55><53><EFBFBD><EFBFBD>
|
||||
case 0x2B:
|
||||
BLEModBusReturnDevice();
|
||||
break;
|
||||
case 0x42:
|
||||
BLEModBusReturnData();
|
||||
break;
|
||||
case 0x43:
|
||||
BLEModBusReturnparameter();
|
||||
break;
|
||||
break;
|
||||
|
||||
default: //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>δʶ<CEB4><CAB6>-----------------------------------------------------------------------
|
||||
MBBuf.BusError = ILLEGAL_FUNCTION;
|
||||
break;
|
||||
}
|
||||
|
||||
if(MBBuf.BusError != 0) ModBusErrorInfo(MBBuf.BusError);
|
||||
if(MBBuf.RxPointer[0] == 0x00) { MBBuf.TxdLen = 0; return; } //<2F>㲥<EFBFBD><E3B2A5>ַ <20><>Ĭ
|
||||
//<2F>㲥<EFBFBD><E3B2A5>ַ <20><>Ĭ
|
||||
if(MBBuf.RxPointer[0] == 0x00) {
|
||||
MBBuf.TxdLen = 0;
|
||||
return;
|
||||
}
|
||||
|
||||
if(MBBuf.TxdLen == 0) return;
|
||||
ComputeTxdDataCRC();
|
||||
memmove( (char *)MBBuf.TxPointer, (char *)MBBuf.RxPointer, MBBuf.TxdLen);
|
||||
@@ -136,49 +137,40 @@ u8 ModBusProtocolDetection(void)
|
||||
|
||||
MBBuf.TxdLen = 0;
|
||||
if(MBBuf.RxdLen < 5) return 0;
|
||||
localAddress= 1 ;
|
||||
//if((MBBuf.RxPointer[0] != 0) && (MBBuf.RxPointer[0] != localAddress)) // <20><>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD>
|
||||
if(MBBuf.RxPointer[0] != localAddress) return 0; // <20><>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD>
|
||||
|
||||
tempL.Byte[1] = MBBuf.RxPointer[MBBuf.RxdLen-1];
|
||||
tempL.Byte[0] = MBBuf.RxPointer[MBBuf.RxdLen-2];
|
||||
CRCTempRX = tempL.Word[0];
|
||||
// <20>жϵ<D0B6>ַ<EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD>
|
||||
if(MBBuf.RxPointer[0] == localAddress) goto DetecteNext;
|
||||
else if(MBBuf.RxPointer[0] == 0) goto DetecteNext;
|
||||
else return 0;
|
||||
|
||||
DetecteNext:
|
||||
//tempL.Byte[1] = MBBuf.RxPointer[MBBuf.RxdLen-1];
|
||||
//tempL.Byte[0] = MBBuf.RxPointer[MBBuf.RxdLen-2];
|
||||
//CRCTempRX = tempL.Word[0];
|
||||
CRCTempRX = ((u16)MBBuf.RxPointer[MBBuf.RxdLen-1] << 8) | (u16)MBBuf.RxPointer[MBBuf.RxdLen-2];
|
||||
CRCTempCX = ModBusCRC(MBBuf.RxPointer, MBBuf.RxdLen-3); // <20><><EFBFBD><EFBFBD>CRC
|
||||
if(CRCTempRX != CRCTempCX)
|
||||
return 0; // CRC<52><43><EFBFBD><EFBFBD>
|
||||
|
||||
return 1;
|
||||
if(CRCTempRX != CRCTempCX) return 0; // CRC<52><43><EFBFBD><EFBFBD>
|
||||
else return 1;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
/******************************************************************************/
|
||||
//Modbus<75><73><EFBFBD><EFBFBD>ָ<EFBFBD>봦<EFBFBD><EBB4A6>
|
||||
u8 ModbusVariablePointerProcess(void)
|
||||
{
|
||||
if(MBBuf.ByteNumber >= MBBuf.DataByte) MBBuf.ByteNumber -= MBBuf.DataByte;
|
||||
else return 1;
|
||||
if(MBBuf.ByteNumber < 2) return 1;
|
||||
|
||||
MBBuf.DataByte >>= 1;
|
||||
MBBuf.StartAddr += MBBuf.DataByte;
|
||||
if(MBBuf.ByteNumber >= MBBuf.DataByte) MBBuf.ByteNumber -= MBBuf.DataByte;
|
||||
else return 1;
|
||||
|
||||
return 0;
|
||||
if(MBBuf.ByteNumber < 2) return 1;
|
||||
|
||||
MBBuf.DataByte >>= 1;
|
||||
MBBuf.StartAddr += MBBuf.DataByte;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
/******************************************************************************/
|
||||
u8 ModbusVariablePointerDec(void)
|
||||
{
|
||||
if(MBBuf.ByteNumber < MBBuf.DataByte + 2)
|
||||
{
|
||||
if(MBBuf.ByteNumber < MBBuf.DataByte + 2) {
|
||||
MBBuf.ByteNumber = 0;
|
||||
return 1;
|
||||
}
|
||||
|
||||
@@ -1,6 +1,10 @@
|
||||
#ifndef __MODBUS_h__
|
||||
#define __MODBUS_h__
|
||||
|
||||
#define MAX 0
|
||||
#define MIN 1
|
||||
#define DEFAULT 2
|
||||
//******************************************************************************
|
||||
typedef struct
|
||||
{
|
||||
u16 StartAddr;
|
||||
@@ -35,7 +39,6 @@ typedef struct
|
||||
#define SLAVER_ADDR_MIN 1
|
||||
|
||||
//******************************************************************************
|
||||
#define SLAVER_ID 0
|
||||
#define FUNCTION_CODE 1
|
||||
|
||||
//******************************************************************************
|
||||
|
||||
@@ -25,7 +25,7 @@ void ReadTimeBase(void)
|
||||
ModbusVariablePointerDec();
|
||||
}
|
||||
|
||||
/******************************************************************************/
|
||||
///******************************************************************************/
|
||||
void WriteTimeBase(void)
|
||||
{
|
||||
MBBuf.DataByte = 6;
|
||||
@@ -49,22 +49,9 @@ void WriteTimeBase(void)
|
||||
#elif(ENABLE_EXT_RTC)
|
||||
if(TestExtRTCReady()) ExtRTCTimeSet();
|
||||
#endif
|
||||
|
||||
//FY
|
||||
// RTCCTL0 = 0xA500 + RTCTEVIE;
|
||||
// RTCCTL13 = RTCHOLD;
|
||||
// RTCYEAR = (u16)timer[YEAR]+2000;
|
||||
// RTCMON = timer[MONTH];
|
||||
// RTCDAY = timer[DATE];
|
||||
// RTCHOUR = timer[HOUR];
|
||||
// RTCMIN = timer[MINUTE];
|
||||
// RTCSEC = timer[SECOND];
|
||||
// RTCCTL0 = 0xA500 + RTCTEVIE;
|
||||
// RTCCTL13 = RTCMODE; // Minute changed
|
||||
// RTCCTL0 = 0;
|
||||
}
|
||||
|
||||
/******************************************************************************/
|
||||
///******************************************************************************/
|
||||
u16 ReadSecond(void)
|
||||
{
|
||||
// u16 newSecond = RTCHOUR;
|
||||
@@ -79,74 +66,65 @@ u16 ReadSecond(void)
|
||||
return 1;
|
||||
}
|
||||
|
||||
/******************************************************************************/
|
||||
void SaveFactorySetting(void) // Save the factory setting
|
||||
{
|
||||
u16 I;
|
||||
u8 temp[64];
|
||||
|
||||
for(I=0; I< SAVE_PARA_MAX; I++)
|
||||
{
|
||||
ReadMultiByteFromEEPROM(I*64, temp, 64, PARA_EEPROM);
|
||||
WriteMultiByteToEEPROM(I*64, temp, 64, DATA_EEPROM);
|
||||
}
|
||||
|
||||
WriteaAnAlarmData(0);
|
||||
}
|
||||
|
||||
/******************************************************************************/
|
||||
void RestoreFactorySetting(void)
|
||||
{
|
||||
u16 I;
|
||||
unsigned char temp[64];
|
||||
|
||||
for(I=0; I< SAVE_PARA_MAX; I++)
|
||||
{
|
||||
ReadMultiByteFromEEPROM(I*64, temp, 64, DATA_EEPROM);
|
||||
WriteMultiByteToEEPROM(I*64, temp, 64, PARA_EEPROM);
|
||||
}
|
||||
|
||||
SystemParameterInit();
|
||||
}
|
||||
|
||||
/******************************************************************************/
|
||||
void WriteMEMSRatio(void)
|
||||
{
|
||||
// tmpLA = (u32)(NRHHigh - NRHLow);
|
||||
// tmpLA *= (u32)RRRHRatio;
|
||||
// tmpLA /= (u32)(RHHighTa - RHLowTa);
|
||||
// tempL.Word[0] = (u16)tmpLA;
|
||||
///******************************************************************************/
|
||||
//void SaveFactorySetting(void) // Save the factory setting
|
||||
//{
|
||||
// u16 I;
|
||||
// u8 temp[64];
|
||||
//
|
||||
// MEMSRatio = WriteShortParameterToEEPROM(MEMS_RATIO, MEMS_RATIO_WIDTH);
|
||||
//FY
|
||||
}
|
||||
// for(I=0; I< SAVE_PARA_MAX; I++)
|
||||
// {
|
||||
// ReadMultiByteFromMemory(I*64, temp, 64, PARA_EEPROM);
|
||||
// WriteMultiByteToMemory(I*64, temp, 64, DATA_EEPROM);
|
||||
// }
|
||||
//
|
||||
// WriteaAnAlarmData(0);
|
||||
//}
|
||||
|
||||
///******************************************************************************/
|
||||
//void RestoreFactorySetting(void)
|
||||
//{
|
||||
// u16 I;
|
||||
// unsigned char temp[64];
|
||||
//
|
||||
// for(I=0; I< SAVE_PARA_MAX; I++)
|
||||
// {
|
||||
// ReadMultiByteFromMemory(I*64, temp, 64, DATA_EEPROM);
|
||||
// WriteMultiByteToMemory(I*64, temp, 64, PARA_EEPROM);
|
||||
// }
|
||||
//
|
||||
// SystemParameterInit();
|
||||
//}
|
||||
|
||||
/******************************************************************************/
|
||||
//<2F>DZ<EFBFBD><C7B1><EFBFBD>Ϣ
|
||||
void ReadCalibFAC(void)
|
||||
{
|
||||
tempL.Word[0] = 0x8000;//FAC<41><43><EFBFBD><EFBFBD>0x8000 <20><>ʾУ<D0A3><D7BC><EFBFBD>ݴ洢<DDB4><E6B4A2>ʽΪ<CABD><CEAA><EFBFBD><EFBFBD><EFBFBD>洢<EFBFBD><E6B4A2>FL1 FM1 FH1 <20><><EFBFBD><EFBFBD>FL2 FM2 FH2 <20><>......
|
||||
tempL.Word[0] = 0x8000; //FAC<41><43><EFBFBD><EFBFBD>0x8000 <20><>ʾУ<D0A3><D7BC><EFBFBD>ݴ洢<DDB4><E6B4A2>ʽΪ<CABD><CEAA><EFBFBD><EFBFBD><EFBFBD>洢<EFBFBD><E6B4A2>FL1 FM1 FH1 <20><><EFBFBD><EFBFBD>FL2 FM2 FH2 <20><>......
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
#ifndef ENABLE_ONE_CURVE
|
||||
#pragma message("[undefined] ENABLE_ONE_CURVE")
|
||||
#elif(ENABLE_ONE_CURVE)
|
||||
calibType = INTCMD_CTYPE_CURVE;
|
||||
#endif
|
||||
calibType = INTCMD_CTYPE_CURVE;
|
||||
#endif
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
if(calibType == INTCMD_CTYPE_CURVE) tempL.Word[0] |= CALIB_COMP_FAC;//DATA_COMP_FAC
|
||||
if(calibType == INTCMD_CTYPE_CURVE) tempL.Word[0] |= CALIB_COMP_FAC;
|
||||
//------------------------------------------------------------------------------
|
||||
#ifndef ENABLE_2ND_CURVE
|
||||
#pragma message("[undefined] ENABLE_2ND_CURVE")
|
||||
#elif(ENABLE_2ND_CURVE)
|
||||
else if(calibType == INT_2ND_CURVE_CMD) tempL.Word[0] |= DATA_COMP_FAC2;
|
||||
else if(calibType == INT_2RD_CURVE_CMD) tempL.Word[0] |= CALIB_COMP_FAC2;
|
||||
#endif
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
#ifndef ENABLE_3RD_CURVE
|
||||
#pragma message("[undefined] ENABLE_3RD_CURVE")
|
||||
#elif(ENABLE_3RD_CURVE)
|
||||
else if(calibType == INT_3RD_CURVE_CMD) tempL.Word[0] |= DATA_COMP_FAC3;
|
||||
else if(calibType == INT_3RD_CURVE_CMD) tempL.Word[0] |= CALIB_COMP_FAC3;
|
||||
#endif
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
else tempL.Word[0] = 0;
|
||||
|
||||
@@ -172,8 +150,9 @@ void ReadCalibDepth(void)
|
||||
#ifndef ENABLE_2ND_CURVE
|
||||
#pragma message("[undefined] ENABLE_2ND_CURVE")
|
||||
#elif(ENABLE_2ND_CURVE)
|
||||
else if(calibType == INT_2ND_CURVE_CMD) tempL.Word[0] = CALIB_DEPTH2;
|
||||
else if(calibType == INT_2RD_CURVE_CMD) tempL.Word[0] = CALIB_DEPTH2;
|
||||
#endif
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
#ifndef ENABLE_3RD_CURVE
|
||||
#pragma message("[undefined] ENABLE_3RD_CURVE")
|
||||
@@ -181,7 +160,7 @@ void ReadCalibDepth(void)
|
||||
else if(calibType == INT_3RD_CURVE_CMD) tempL.Word[0] = CALIB_DEPTH3;
|
||||
#endif
|
||||
//------------------------------------------------------------------------------
|
||||
else tempL.Word[0] = 0;
|
||||
else tempL.Word[0] = 0;
|
||||
|
||||
curveMode |= 0x00a0;
|
||||
}
|
||||
@@ -193,11 +172,12 @@ void ReadCalibWidth(void)
|
||||
curveMode |= 0xa500;
|
||||
}
|
||||
|
||||
/******************************************************************************/
|
||||
//******************************************************************************/
|
||||
//******************************************************************************/
|
||||
void ReadCalbrationDataByCom(u16 calibAddr, u16 calibDepth)
|
||||
{
|
||||
MBBuf.StartAddr &= 0x0fff;
|
||||
if((MBBuf.StartAddr >= MAX_OPERATE_DEPTH) || (MBBuf.ByteNumber > CALIB_WIDTH))
|
||||
MBBuf.StartAddr &= 0xFFF;
|
||||
if((MBBuf.StartAddr >= calibDepth) || (MBBuf.ByteNumber > CALIB_WIDTH))
|
||||
{
|
||||
MBBuf.ByteNumber = 0;
|
||||
MBBuf.BusError = ILLEGAL_DATA_ADDRESS;
|
||||
@@ -208,22 +188,36 @@ void ReadCalbrationDataByCom(u16 calibAddr, u16 calibDepth)
|
||||
MBBuf.StartAddr += calibAddr;
|
||||
|
||||
disable_interrupts();
|
||||
ReadMultiByteFromEEPROM(MBBuf.StartAddr, &MBBuf.RxPointer[3], MBBuf.ByteNumber, PARA_EEPROM);
|
||||
ReadCalbrationDataFromMemory(MBBuf.StartAddr, &MBBuf.RxPointer[3], MBBuf.ByteNumber);
|
||||
// u8 tempBuf[CALIB_WIDTH];
|
||||
// ReadCalbrationDataFromMemory(MBBuf.StartAddr, tempBuf, MBBuf.ByteNumber);
|
||||
// memcpy(&MBBuf.RxPointer[3], tempBuf, MBBuf.ByteNumber); //<2F><><EFBFBD><EFBFBD> DMA
|
||||
enable_interrupts();
|
||||
|
||||
//systemProcessing |= WRITE_DATA_HANDLE;
|
||||
|
||||
// systemProcessing.Bit.WriteHandle = 1;
|
||||
MBBuf.ByteNumber = 0;
|
||||
}
|
||||
|
||||
/******************************************************************************/
|
||||
void CheckWritingLegality(void)
|
||||
{
|
||||
MBBuf.BusError = ACKNOWLEDGE;
|
||||
if((securityID != 0x0000AA55) && (securityID != COM_PASSWORD1) && (securityID != COM_PASSWORD2)) {
|
||||
parameterState = ABORD_OPERATION;
|
||||
MBBuf.ByteNumber = 0;
|
||||
return;
|
||||
}
|
||||
|
||||
MBBuf.BusError = 0;
|
||||
IDvalidTime = 0;
|
||||
}
|
||||
|
||||
/******************************************************************************/
|
||||
void WriteCalbrationDataByCom(u16 calibAddr, u16 calibDepth)
|
||||
{
|
||||
//---------------------------------------------------------------------------
|
||||
if((securityID != (u32)COM_PASSWORD1) && (securityID != (u32)COM_PASSWORD2)) return;
|
||||
IDvalidTime = 0;
|
||||
//---------------------------------------------------------------------------
|
||||
CheckWritingLegality();
|
||||
|
||||
MBBuf.StartAddr &= 0x0fff;
|
||||
MBBuf.StartAddr &= 0xFFF;
|
||||
if((MBBuf.StartAddr >= calibDepth) || (MBBuf.ByteNumber > CALIB_WIDTH))
|
||||
{
|
||||
MBBuf.ByteNumber = 0;
|
||||
@@ -231,28 +225,22 @@ void WriteCalbrationDataByCom(u16 calibAddr, u16 calibDepth)
|
||||
return;
|
||||
}
|
||||
|
||||
disable_interrupts();
|
||||
if(MBBuf.StartAddr == 0) WriteMeterBasicData();
|
||||
disable_interrupts();
|
||||
//if(MBBuf.StartAddr == 0) WriteMeterBasicData();
|
||||
MBBuf.StartAddr *= CALIB_WIDTH;
|
||||
MBBuf.StartAddr += calibAddr;
|
||||
|
||||
WriteMultiByteToEEPROM(MBBuf.StartAddr, &MBBuf.RxPointer[MBBuf.Index], MBBuf.ByteNumber, PARA_EEPROM);
|
||||
MBBuf.StartAddr += calibAddr;
|
||||
// u8 tempBuf[CALIB_WIDTH];
|
||||
// memcpy(tempBuf, (void *)&MBBuf.RxPointer[MBBuf.Index], MBBuf.ByteNumber); //<2F><><EFBFBD><EFBFBD> DMA
|
||||
// WriteCalbrationDataToMemory(MBBuf.StartAddr, tempBuf, MBBuf.ByteNumber);
|
||||
|
||||
WriteCalbrationDataToMemory(MBBuf.StartAddr, &MBBuf.RxPointer[MBBuf.Index], MBBuf.ByteNumber);
|
||||
enable_interrupts();
|
||||
|
||||
//systemProcessing |= WRITE_DATA_HANDLE;
|
||||
systemProcessing.Bit.WriteHandle = 1;
|
||||
MBBuf.ByteNumber = 0;
|
||||
}
|
||||
|
||||
/******************************************************************************/
|
||||
void ReadEEPROMByCom(u16 RDAdr, u16 RDLen)
|
||||
{
|
||||
ReadMultiByteFromEEPROM(RDAdr, &MBBuf.RxPointer[MBBuf.Index], MBBuf.ByteNumber, PARA_EEPROM);
|
||||
MBBuf.DataByte = RDLen;
|
||||
MBBuf.Index += RDLen;
|
||||
ModbusVariablePointerDec();
|
||||
}
|
||||
|
||||
/******************************************************************************/
|
||||
//******************************************************************************/
|
||||
void ReadFlashByCom(const unsigned char *RDAdr, u16 RDLen)
|
||||
{
|
||||
u16 I;
|
||||
@@ -263,217 +251,96 @@ void ReadFlashByCom(const unsigned char *RDAdr, u16 RDLen)
|
||||
ModbusVariablePointerDec();
|
||||
}
|
||||
|
||||
/******************************************************************************/
|
||||
void ReadArrayByCom(unsigned char *RDAdr, u16 RDLen)
|
||||
{
|
||||
u16 I;
|
||||
|
||||
for(I=0; I<RDLen; I++) MBBuf.RxPointer[MBBuf.Index++] = *(RDAdr+I);
|
||||
|
||||
MBBuf.DataByte = RDLen;
|
||||
ModbusVariablePointerDec();
|
||||
}
|
||||
///******************************************************************************/
|
||||
//void ReadArrayByCom(unsigned char *RDAdr, u16 RDLen)
|
||||
//{
|
||||
// u16 I;
|
||||
//
|
||||
// for(I=0; I<RDLen; I++) MBBuf.RxPointer[MBBuf.Index++] = *(RDAdr+I);
|
||||
//
|
||||
// MBBuf.DataByte = RDLen;
|
||||
// ModbusVariablePointerDec();
|
||||
//}
|
||||
|
||||
/******************************************************************************/
|
||||
void ReadDByteByCom(u16 RDValue)
|
||||
{
|
||||
tempL.DWord = RDValue;
|
||||
MBBuf.RxPointer[MBBuf.Index++] = tempL.Byte[1];
|
||||
MBBuf.RxPointer[MBBuf.Index++] = tempL.Byte[0];
|
||||
MBBuf.DataByte = 2;
|
||||
ModbusVariablePointerDec();
|
||||
}
|
||||
///******************************************************************************/
|
||||
//void ReadDByteByCom(u16 RDValue)
|
||||
//{
|
||||
// tempL.DWord = RDValue;
|
||||
// MBBuf.RxPointer[MBBuf.Index++] = tempL.Byte[1];
|
||||
// MBBuf.RxPointer[MBBuf.Index++] = tempL.Byte[0];
|
||||
// MBBuf.DataByte = 2;
|
||||
// ModbusVariablePointerDec();
|
||||
//}
|
||||
|
||||
/******************************************************************************/
|
||||
void ReadDWordByCom(u32 RDValue)
|
||||
{
|
||||
tempL.DWord = RDValue;
|
||||
MBBuf.RxPointer[MBBuf.Index++] = tempL.Byte[3];
|
||||
MBBuf.RxPointer[MBBuf.Index++] = tempL.Byte[2];
|
||||
MBBuf.RxPointer[MBBuf.Index++] = tempL.Byte[1];
|
||||
MBBuf.RxPointer[MBBuf.Index++] = tempL.Byte[0];
|
||||
MBBuf.DataByte = 4;
|
||||
ModbusVariablePointerDec();
|
||||
}
|
||||
///******************************************************************************/
|
||||
//void ReadDWordByCom(u32 RDValue)
|
||||
//{
|
||||
// tempL.DWord = RDValue;
|
||||
// MBBuf.RxPointer[MBBuf.Index++] = tempL.Byte[3];
|
||||
// MBBuf.RxPointer[MBBuf.Index++] = tempL.Byte[2];
|
||||
// MBBuf.RxPointer[MBBuf.Index++] = tempL.Byte[1];
|
||||
// MBBuf.RxPointer[MBBuf.Index++] = tempL.Byte[0];
|
||||
// MBBuf.DataByte = 4;
|
||||
// ModbusVariablePointerDec();
|
||||
//}
|
||||
|
||||
/******************************************************************************/
|
||||
void WriteEEPROMByCom(u16 WRAdr, u16 WRLen)
|
||||
///******************************************************************************/
|
||||
//void WriteEEPROMByCom(u16 WRAdr, u16 WRLen)
|
||||
//{
|
||||
// MBBuf.DataByte = WRLen;
|
||||
// if(MBBuf.ByteNumber < WRLen)
|
||||
// {
|
||||
// MBBuf.ByteNumber = 0;
|
||||
// MBBuf.BusError = ILLEGAL_DATA_ADDRESS;
|
||||
// return;
|
||||
// }
|
||||
//
|
||||
// WriteMultiByteToMemory(WRAdr, &MBBuf.RxPointer[MBBuf.Index], WRLen, PARA_EEPROM);
|
||||
// MBBuf.Index += WRLen;
|
||||
//}
|
||||
|
||||
/**************************************************************************************/
|
||||
/**************************************************************************************/
|
||||
void FreeWriteMultiByteParameterByCom(u8 *WRSource, u16 WRAddr, u16 WRLen)
|
||||
{
|
||||
//---------------------------------------------------------------------------
|
||||
parameterState = ABORD_OPERATION;
|
||||
MBBuf.BusError = ILLEGAL_DATA_VALUE;
|
||||
//---------------------------------------------------------------------------
|
||||
MBBuf.DataByte = WRLen;
|
||||
if(MBBuf.ByteNumber < WRLen)
|
||||
if(MBBuf.ByteNumber < MBBuf.DataByte)
|
||||
{
|
||||
MBBuf.ByteNumber = 0;
|
||||
MBBuf.BusError = ILLEGAL_DATA_ADDRESS;
|
||||
return;
|
||||
return;
|
||||
}
|
||||
|
||||
WriteMultiByteToEEPROM(WRAdr, &MBBuf.RxPointer[MBBuf.Index], WRLen, PARA_EEPROM);
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
MBBuf.BusError = 0;
|
||||
|
||||
WriteMultiByteToMemory(WRAddr, &MBBuf.RxPointer[MBBuf.Index], WRLen);
|
||||
MBBuf.Index += WRLen;
|
||||
}
|
||||
|
||||
/******************************************************************************/
|
||||
void WriteWordByCom(u16 *WRSource, u16 WRAddr,
|
||||
u16 WRLen, u16 WRMax,
|
||||
u16 WRMin )
|
||||
{
|
||||
//---------------------------------------------------------------------------
|
||||
parameterState = ABORD_OPERATION;
|
||||
MBBuf.BusError = ILLEGAL_DATA_VALUE;
|
||||
//---------------------------------------------------------------------------
|
||||
|
||||
MBBuf.DataByte = 2;
|
||||
if(MBBuf.ByteNumber < MBBuf.DataByte)
|
||||
{
|
||||
MBBuf.ByteNumber = 0;
|
||||
return;
|
||||
}
|
||||
|
||||
u16 I;
|
||||
|
||||
tempL.Byte[1] = MBBuf.RxPointer[MBBuf.Index++];
|
||||
tempL.Byte[0] = MBBuf.RxPointer[MBBuf.Index++];
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
MBBuf.BusError = ACKNOWLEDGE;
|
||||
if((securityID != 0x0000AA55) && (securityID != COM_PASSWORD1) && (securityID != COM_PASSWORD2)) return;
|
||||
MBBuf.BusError = 0; //V2004
|
||||
IDvalidTime = 0;
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
if(tempL.Word[0] > WRMax) return;
|
||||
else if(tempL.Word[0] < WRMin) return;
|
||||
// MBBuf.BusError = 0; V2004
|
||||
|
||||
I = *WRSource;
|
||||
if(tempL.Word[0] == I) return;
|
||||
parameterState = NEED_OPERATION;
|
||||
|
||||
//I = WRLen - 1;
|
||||
//tempL.Byte[I] = CRC8(tempL.Byte, I);
|
||||
//WriteMultiByteToEEPROM(WRAddr, tempL.Byte, WRLen, PARA_EEPROM);
|
||||
//ReadMultiByteFromEEPROM(WRAddr, tempL.Byte, WRLen, PARA_EEPROM);
|
||||
//tempL.Byte[I] = 0;
|
||||
//*WRSource = tempL.Word[0];
|
||||
*WRSource = WriteShortParameterToEEPROM(WRAddr, WRLen);
|
||||
}
|
||||
|
||||
/******************************************************************************/
|
||||
void FreeWriteWordByCom(u16 *WRSource, u16 WRAddr,
|
||||
u16 WRLen, u16 WRMax,
|
||||
u16 WRMin )
|
||||
{
|
||||
//---------------------------------------------------------------------------
|
||||
parameterState = ABORD_OPERATION;
|
||||
MBBuf.BusError = ILLEGAL_DATA_VALUE;
|
||||
//---------------------------------------------------------------------------
|
||||
|
||||
MBBuf.DataByte = 2;
|
||||
if(MBBuf.ByteNumber < MBBuf.DataByte)
|
||||
{
|
||||
MBBuf.ByteNumber = 0;
|
||||
return;
|
||||
}
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
MBBuf.BusError = 0; //V2004
|
||||
|
||||
u16 I;
|
||||
|
||||
tempL.Byte[1] = MBBuf.RxPointer[MBBuf.Index++];
|
||||
tempL.Byte[0] = MBBuf.RxPointer[MBBuf.Index++];
|
||||
|
||||
if(tempL.Word[0] > WRMax) return;
|
||||
else if(tempL.Word[0] < WRMin) return;
|
||||
//MBBuf.BusError = 0; V2004
|
||||
|
||||
I = *WRSource;
|
||||
if(tempL.Word[0] == I) return;
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
parameterState = NEED_OPERATION;
|
||||
MBBuf.BusError = 0;
|
||||
//---------------------------------------------------------------------------
|
||||
|
||||
*WRSource = WriteShortParameterToEEPROM(WRAddr, WRLen);
|
||||
// *WRSource = WriteMultiByteToMemory(WRAddr, WRLen);
|
||||
ReadMultiByteFromMemory(WRAddr, WRSource,WRLen);
|
||||
}
|
||||
|
||||
/******************************************************************************/
|
||||
void WriteDWordByCom(u32 *WRSource, u16 WRAddr,u16 WRLen,
|
||||
u32 WRMax, u32 WRMin )
|
||||
/**************************************************************************************/
|
||||
void WriteMultiByteParameterByCom(u8 *WRSource, u16 WRAddr, u16 WRLen)
|
||||
{
|
||||
//---------------------------------------------------------------------------
|
||||
parameterState = ABORD_OPERATION;
|
||||
MBBuf.BusError = ILLEGAL_DATA_VALUE;
|
||||
//---------------------------------------------------------------------------
|
||||
|
||||
MBBuf.DataByte = 4;
|
||||
if(MBBuf.ByteNumber < MBBuf.DataByte)
|
||||
{
|
||||
MBBuf.ByteNumber = 0;
|
||||
return;
|
||||
}
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
tempDev.Byte[3] = MBBuf.RxPointer[MBBuf.Index++];
|
||||
tempDev.Byte[2] = MBBuf.RxPointer[MBBuf.Index++];
|
||||
tempDev.Byte[1] = MBBuf.RxPointer[MBBuf.Index++];
|
||||
tempDev.Byte[0] = MBBuf.RxPointer[MBBuf.Index++];
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
MBBuf.BusError = ACKNOWLEDGE;
|
||||
if((securityID != 0x0000AA55) && (securityID != COM_PASSWORD1) && (securityID != COM_PASSWORD2)) return;
|
||||
MBBuf.BusError = 0; //V2004
|
||||
IDvalidTime = 0;
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
if(tempDev.DWord[0] > WRMax) return;
|
||||
else if(tempDev.DWord[0] < WRMin) return;
|
||||
//MBBuf.BusError = 0; V2004
|
||||
|
||||
tempDev.DWord[1] = *WRSource;
|
||||
if(tempDev.DWord[0] == tempDev.DWord[1]) return;
|
||||
//---------------------------------------------------------------------------
|
||||
parameterState = NEED_OPERATION;
|
||||
//---------------------------------------------------------------------------
|
||||
|
||||
*WRSource = WriteParameterToEEPROM(WRAddr, WRLen);
|
||||
CheckWritingLegality();
|
||||
FreeWriteMultiByteParameterByCom(WRSource, WRAddr, WRLen);
|
||||
}
|
||||
|
||||
|
||||
/******************************************************************************/
|
||||
void SetWordCmdByCom(u16 *WRSource)
|
||||
{
|
||||
//---------------------------------------------------------------------------
|
||||
parameterState = ABORD_OPERATION;
|
||||
MBBuf.BusError = ILLEGAL_DATA_VALUE;
|
||||
//---------------------------------------------------------------------------
|
||||
|
||||
MBBuf.DataByte = 2;
|
||||
if(MBBuf.ByteNumber < 2)
|
||||
{
|
||||
MBBuf.ByteNumber = 0;
|
||||
return;
|
||||
}
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
MBBuf.BusError = ACKNOWLEDGE;
|
||||
if((securityID != 0x0000AA55) && (securityID != COM_PASSWORD1) && (securityID != COM_PASSWORD2)) return;
|
||||
MBBuf.BusError = 0; //V2004
|
||||
IDvalidTime = 0;
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
parameterState = NEED_OPERATION;
|
||||
//MBBuf.BusError = 0;
|
||||
//---------------------------------------------------------------------------
|
||||
|
||||
tempL.Byte[1] = MBBuf.RxPointer[MBBuf.Index++];
|
||||
tempL.Byte[0] = MBBuf.RxPointer[MBBuf.Index++];
|
||||
|
||||
*WRSource = tempL.Word[0];
|
||||
}
|
||||
|
||||
/******************************************************************************/
|
||||
void FreeSetWordCmdByCom(u16 *WRSource)
|
||||
{
|
||||
MBBuf.DataByte = 2;
|
||||
if(MBBuf.ByteNumber < 2)
|
||||
if(MBBuf.ByteNumber < MBBuf.DataByte)
|
||||
{
|
||||
MBBuf.ByteNumber = 0;
|
||||
parameterState = ABORD_OPERATION;
|
||||
@@ -487,42 +354,38 @@ void FreeSetWordCmdByCom(u16 *WRSource)
|
||||
tempL.Byte[1] = MBBuf.RxPointer[MBBuf.Index++];
|
||||
tempL.Byte[0] = MBBuf.RxPointer[MBBuf.Index++];
|
||||
|
||||
*WRSource = tempL.Word[0];
|
||||
*WRSource = tempL.Word[0];
|
||||
}
|
||||
|
||||
/******************************************************************************/
|
||||
void SetDWordCmdByCom(u32 *WRSource)
|
||||
void SetWordCmdByCom(u16 *WRSource)
|
||||
{
|
||||
//---------------------------------------------------------------------------
|
||||
parameterState = ABORD_OPERATION;
|
||||
MBBuf.BusError = ILLEGAL_DATA_VALUE;
|
||||
|
||||
MBBuf.DataByte = 4;
|
||||
if(MBBuf.ByteNumber < MBBuf.DataByte)
|
||||
{
|
||||
MBBuf.ByteNumber = 0;
|
||||
return;
|
||||
}
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
MBBuf.BusError = ACKNOWLEDGE;
|
||||
if((securityID != 0x0000AA55) && (securityID != COM_PASSWORD1) && (securityID != COM_PASSWORD2)) return;
|
||||
MBBuf.BusError = 0; //V2004
|
||||
IDvalidTime = 0;
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
parameterState = NEED_OPERATION;
|
||||
//MBBuf.BusError = 0;
|
||||
//---------------------------------------------------------------------------
|
||||
|
||||
tempL.Byte[3] = MBBuf.RxPointer[MBBuf.Index++];
|
||||
tempL.Byte[2] = MBBuf.RxPointer[MBBuf.Index++];
|
||||
tempL.Byte[1] = MBBuf.RxPointer[MBBuf.Index++];
|
||||
tempL.Byte[0] = MBBuf.RxPointer[MBBuf.Index++];
|
||||
|
||||
*WRSource = tempL.DWord;
|
||||
CheckWritingLegality();
|
||||
FreeSetWordCmdByCom(WRSource);
|
||||
}
|
||||
|
||||
/******************************************************************************/
|
||||
void FreWriteWordByCom(u16 *WRSource, u16 WRAddr)
|
||||
{
|
||||
u16 I;
|
||||
|
||||
I = *WRSource;
|
||||
FreeSetWordCmdByCom(WRSource);
|
||||
|
||||
if(tempL.Word[0] == I) return;
|
||||
|
||||
parameterState = NEED_OPERATION;
|
||||
*WRSource = WriteShortParameterToMemory(WRAddr);
|
||||
}
|
||||
|
||||
/******************************************************************************/
|
||||
void WriteWordByCom(u16 *WRSource, u16 WRAddr)
|
||||
{
|
||||
CheckWritingLegality();
|
||||
FreWriteWordByCom(WRSource, WRAddr);
|
||||
}
|
||||
|
||||
/******************************************************************************/
|
||||
/******************************************************************************/
|
||||
void FreeSetDWordCmdByCom(u32 *WRSource)
|
||||
{
|
||||
@@ -530,63 +393,114 @@ void FreeSetDWordCmdByCom(u32 *WRSource)
|
||||
if(MBBuf.ByteNumber < MBBuf.DataByte)
|
||||
{
|
||||
MBBuf.ByteNumber = 0;
|
||||
//---------------------------------------------------------------------------
|
||||
parameterState = ABORD_OPERATION;
|
||||
MBBuf.BusError = ILLEGAL_DATA_VALUE;
|
||||
//---------------------------------------------------------------------------
|
||||
return;
|
||||
}
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
parameterState = NEED_OPERATION;
|
||||
MBBuf.BusError = 0;
|
||||
//---------------------------------------------------------------------------
|
||||
|
||||
tempDev.Byte[3] = MBBuf.RxPointer[MBBuf.Index++];
|
||||
tempDev.Byte[2] = MBBuf.RxPointer[MBBuf.Index++];
|
||||
tempDev.Byte[1] = MBBuf.RxPointer[MBBuf.Index++];
|
||||
tempDev.Byte[0] = MBBuf.RxPointer[MBBuf.Index++];
|
||||
|
||||
tempL.Byte[3] = MBBuf.RxPointer[MBBuf.Index++];
|
||||
tempL.Byte[2] = MBBuf.RxPointer[MBBuf.Index++];
|
||||
tempL.Byte[1] = MBBuf.RxPointer[MBBuf.Index++];
|
||||
tempL.Byte[0] = MBBuf.RxPointer[MBBuf.Index++];
|
||||
|
||||
*WRSource = tempL.DWord;
|
||||
|
||||
return;
|
||||
*WRSource = tempDev.DWord[0];
|
||||
}
|
||||
|
||||
/******************************************************************************/
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD>ڲ<EFBFBD><DAB2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
void WriteMeterBasicData(void)
|
||||
void SetDWordCmdByCom(u32 *WRSource)
|
||||
{
|
||||
u16 I,J=0;
|
||||
unsigned char temp[ANX*2];
|
||||
|
||||
for(I=0; I<ANX; I++)
|
||||
{
|
||||
temp[J++] = voltageDetected[I] & 0xFF;
|
||||
temp[J++] = voltageDetected[I] >> 8;
|
||||
}
|
||||
WriteMultiByteToEEPROM(BASIC_DATA_BASE, temp, BASIC_DATA_BYTE_MAX, PARA_EEPROM);
|
||||
CheckWritingLegality();
|
||||
FreeSetDWordCmdByCom(WRSource);
|
||||
}
|
||||
|
||||
|
||||
/**************************************************************************************************************************/
|
||||
void WriteWordByComToFlash(u16* word,u8 WriteParams)
|
||||
/******************************************************************************/
|
||||
void FreWriteDWordByCom(u32 *WRSource, u16 WRAddr)
|
||||
{
|
||||
tempL.Byte[1] = MBBuf.RxPointer[MBBuf.Index++];
|
||||
tempL.Byte[0] = MBBuf.RxPointer[MBBuf.Index++];
|
||||
*word = tempL.Word[0];
|
||||
MBBuf.BusError = 0;
|
||||
munWriteParams = WriteParams; //ָ<><D6B8><EFBFBD><EFBFBD>Ҫд<D2AA><D0B4><EFBFBD><EFBFBD>Flash<73><68><EFBFBD><EFBFBD>
|
||||
if(mucSaveParams != PARAMS_ING) mucSaveParams = PARAMS_READY;//word <20><><EFBFBD><EFBFBD><EFBFBD>ڸ<EFBFBD><DAB8><EFBFBD>Flashʱ<68><CAB1>װ<EFBFBD><D7B0>
|
||||
u32 I;
|
||||
|
||||
I = *WRSource;
|
||||
FreeSetDWordCmdByCom(WRSource);
|
||||
|
||||
if(tempDev.DWord[0] == I) return;
|
||||
parameterState = NEED_OPERATION;
|
||||
|
||||
*WRSource = WriteLongParameterToMemory(WRAddr);
|
||||
}
|
||||
|
||||
/******************************************************************************/
|
||||
void WriteDWordByCom(u32 *WRSource, u16 WRAddr)
|
||||
{
|
||||
CheckWritingLegality();
|
||||
FreWriteDWordByCom(WRSource, WRAddr);
|
||||
}
|
||||
|
||||
/******************************************************************************/
|
||||
/******************************************************************************/
|
||||
void FreeWriteWordValidDataByCom(u16 *WRSource, u16 WRAddr, u16 WRMax, u16 WRMin)
|
||||
{
|
||||
u16 WRTarget;
|
||||
FreeSetWordCmdByCom(&WRTarget);
|
||||
if(WRTarget > WRMax) return;
|
||||
else if(WRTarget < WRMin) return;
|
||||
else if(*WRSource == WRTarget) return;
|
||||
|
||||
parameterState = NEED_OPERATION;
|
||||
*WRSource = WriteShortParameterToMemory(WRAddr);
|
||||
}
|
||||
|
||||
/******************************************************************************/
|
||||
void WriteWordValidDataByCom(u16 *WRSource, u16 WRAddr, u16 WRMax, u16 WRMin)
|
||||
{
|
||||
CheckWritingLegality();
|
||||
FreeWriteWordValidDataByCom(WRSource, WRAddr, WRMax, WRMin);
|
||||
}
|
||||
|
||||
/******************************************************************************/
|
||||
void FreeWriteDWordValidDataByCom(u32 *WRSource, u16 WRAddr, u32 WRMax, u32 WRMin)
|
||||
{
|
||||
u32 WRTarget;
|
||||
FreeSetDWordCmdByCom(&WRTarget);
|
||||
if(WRTarget > WRMax) return;
|
||||
else if(WRTarget < WRMin) return;
|
||||
else if(*WRSource == WRTarget) return;
|
||||
|
||||
parameterState = NEED_OPERATION;
|
||||
*WRSource = WriteLongParameterToMemory(WRAddr);
|
||||
}
|
||||
|
||||
/******************************************************************************/
|
||||
void WriteDWordValidDataByCom(u32 *WRSource, u16 WRAddr, u32 WRMax, u32 WRMin)
|
||||
{
|
||||
CheckWritingLegality();
|
||||
FreeWriteDWordValidDataByCom(WRSource, WRAddr, WRMax, WRMin);
|
||||
}
|
||||
|
||||
///******************************************************************************/
|
||||
////<2F><><EFBFBD><EFBFBD><EFBFBD>ڲ<EFBFBD><DAB2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
//void WriteMeterBasicData(void)
|
||||
//{
|
||||
// u16 I,J=0;
|
||||
// unsigned char temp[ANX*2];
|
||||
//
|
||||
// for(I=0; I<ANX; I++)
|
||||
// {
|
||||
// temp[J++] = voltageDetected[I] & 0xFF;
|
||||
// temp[J++] = voltageDetected[I] >> 8;
|
||||
// }
|
||||
// WriteMultiByteToMemory(BASIC_DATA_BASE, temp, BASIC_DATA_BYTE_MAX, PARA_EEPROM);
|
||||
//}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
///**************************************************************************************************************************/
|
||||
//void WriteWordByComToFlash(u16* word,u8 WriteParams)
|
||||
//{
|
||||
// tempL.Byte[1] = MBBuf.RxPointer[MBBuf.Index++];
|
||||
// tempL.Byte[0] = MBBuf.RxPointer[MBBuf.Index++];
|
||||
// *word = tempL.Word[0];
|
||||
// MBBuf.BusError = 0;
|
||||
// munWriteParams = WriteParams; //ָ<><D6B8><EFBFBD><EFBFBD>Ҫд<D2AA><D0B4><EFBFBD><EFBFBD>Flash<73><68><EFBFBD><EFBFBD>
|
||||
// if(mucSaveParams != PARAMS_ING) mucSaveParams = PARAMS_READY;//word <20><><EFBFBD><EFBFBD><EFBFBD>ڸ<EFBFBD><DAB8><EFBFBD>Flashʱ<68><CAB1>װ<EFBFBD><D7B0>
|
||||
//}
|
||||
@@ -10,35 +10,34 @@ extern u16 parameterState;
|
||||
void ReadTimeBase(void);
|
||||
void WriteTimeBase(void);
|
||||
u16 ReadSecond(void);
|
||||
void SaveFactorySetting(void);
|
||||
void RestoreFactorySetting(void);
|
||||
void WriteMEMSRatio(void);
|
||||
//---------------------------------------------------------------------------
|
||||
void FreeWriteMultiByteParameterByCom(u8 *WRSource, u16 WRAddr, u16 WRLen);
|
||||
void WriteMultiByteParameterByCom(u8 *WRSource, u16 WRAddr, u16 WRLen);
|
||||
//---------------------------------------------------------------------------
|
||||
void FreeSetWordCmdByCom(u16 *WRSource);
|
||||
void SetWordCmdByCom(u16 *WRSource);
|
||||
void FreWriteWordByCom(u16 *WRSource, u16 WRAddr);
|
||||
void WriteWordByCom(u16 *WRSource, u16 WRAddr);
|
||||
//---------------------------------------------------------------------------
|
||||
void FreeSetDWordCmdByCom(u32 *WRSource);
|
||||
void SetDWordCmdByCom(u32 *WRSource);
|
||||
void FreWriteDWordByCom(u32 *WRSource, u16 WRAddr);
|
||||
void WriteDWordByCom(u32 *WRSource, u16 WRAddr);
|
||||
//---------------------------------------------------------------------------
|
||||
void FreeWriteWordValidDataByCom(u16 *WRSource, u16 WRAddr, u16 WRMax, u16 WRMin);
|
||||
void WriteWordValidDataByCom(u16 *WRSource, u16 WRAddr, u16 WRMax, u16 WRMin);
|
||||
void FreeWriteDWordValidDataByCom(u32 *WRSource, u16 WRAddr, u32 WRMax, u32 WRMin);
|
||||
void WriteDWordValidDataByCom(u32 *WRSource, u16 WRAddr, u32 WRMax, u32 WRMin);
|
||||
//---------------------------------------------------------------------------
|
||||
void ReadCalbrationDataByCom(u16 calibAddr, u16 calibDepth);
|
||||
void WriteCalbrationDataByCom(u16 calibAddr, u16 calibDepth);
|
||||
//---------------------------------------------------------------------------
|
||||
void ReadCalibFAC(void);
|
||||
void ReadCalibDepth(void);
|
||||
void ReadCalibWidth(void);
|
||||
void ReadCalbrationDataByCom(u16 calibAddr, u16 calibDepth);
|
||||
void WriteCalbrationDataByCom(u16 calibAddr, u16 calibDepth);
|
||||
void ReadEEPROMByCom(u16 RDAdr, u16 RDLen);
|
||||
|
||||
|
||||
void ReadFlashByCom(const unsigned char *RDAdr, u16 RDLen);
|
||||
void ReadArrayByCom(unsigned char *RDAdr, u16 RDLen);
|
||||
void ReadDByteByCom(u16 RDValue);
|
||||
void ReadDWordByCom(u32 RDValue);
|
||||
void WriteEEPROMByCom(u16 WRAdr, u16 WRLen);
|
||||
void FreeWriteWordByCom(u16 *WRSource, u16 WRAddr,
|
||||
u16 WRLen, u16 WRMax,
|
||||
u16 WRMin );
|
||||
void WriteDWordByCom(u32 *WRSource, u16 WRAddr,u16 WRLen,
|
||||
u32 WRMax, u32 WRMin );
|
||||
void WriteWordByCom(u16 *WRSource, u16 WRAddr,
|
||||
u16 WRLen, u16 WRMax,
|
||||
u16 WRMin );
|
||||
void SetWordCmdByCom(u16 *WRSource);
|
||||
void FreeSetWordCmdByCom(u16 *WRSource);;
|
||||
void SetDWordCmdByCom(u32 *WRSource);
|
||||
void FreeSetDWordCmdByCom(u32 *WRSource);
|
||||
void WriteMeterBasicData(void);
|
||||
|
||||
|
||||
void WriteWordByComToFlash(u16* word,u8 WriteParams);
|
||||
//---------------------------------------------------------------------------
|
||||
|
||||
#endif
|
||||
|
||||
@@ -1,90 +1,450 @@
|
||||
#include "../main/SystemInclude.h"
|
||||
#if 0
|
||||
__Samp_Buf_TypeDef sampleData;
|
||||
|
||||
//ADC0<43><30><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʼ<EFBFBD><CABC>----------------------------------------------------------
|
||||
static void ADC0_Conversion_Init(ADC_BaseConfig_TypeDef* adc_config)
|
||||
{
|
||||
ADC_Init(ADC_0, adc_config->SPS, adc_config->Gain, adc_config->PChan, adc_config->NChan); /* 2. <20><>ʼ<EFBFBD><CABC>ADC0 */
|
||||
}
|
||||
|
||||
/*
|
||||
<09><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˵<EFBFBD><CBB5><EFBFBD><EFBFBD>
|
||||
1.<2E><><EFBFBD>ã<EFBFBD>SetSampleSiagnlForADC
|
||||
//ADC1<43><31><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʼ<EFBFBD><CABC>----------------------------------------------------------
|
||||
static void ADC1_Conversion_Init(ADC_BaseConfig_TypeDef* adc_config)
|
||||
{
|
||||
ADC_Init(ADC_1, adc_config->SPS, adc_config->Gain, adc_config->PChan, adc_config->NChan); /* 2. <20><>ʼ<EFBFBD><CABC>ADC1 */
|
||||
}
|
||||
|
||||
//ADCͬ<43><CDAC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʼ<EFBFBD><CABC>----------------------------------------------------------
|
||||
static void ADC0_1_SyncConversion_Init(ADC_SyncConfig_TypeDef* adc_config)
|
||||
{
|
||||
ADC_Init(ADC_0, adc_config->SPS, adc_config->Gain0, adc_config->PChan0, adc_config->NChan0); /* 2. <20><>ʼ<EFBFBD><CABC>ADC0 */
|
||||
ADC_Init(ADC_1, adc_config->SPS, adc_config->Gain1, adc_config->PChan1, adc_config->NChan1); /* 3. <20><>ʼ<EFBFBD><CABC>ADC1 */
|
||||
ADC_SyncCmd(ENABLE);/* 4. ADCͬ<43><CDAC>ʹ<EFBFBD><CAB9> */
|
||||
}
|
||||
|
||||
//<2F><>ADC<44><43><EFBFBD>ó<EFBFBD>ʼ<EFBFBD><CABC>----------------------------------------------------------
|
||||
void SetSampleSiagnlForSingleADC(ADC_BaseConfig_TypeDef* adc_cfg)
|
||||
{
|
||||
ADC_REF_Init(REF_INTERNAL_2P5V, REF_INTERNAL_2P5V);
|
||||
sampleData.adcBaseCfg.Gain = adc_cfg->Gain;
|
||||
sampleData.adcBaseCfg.PChan = adc_cfg->PChan;
|
||||
sampleData.adcBaseCfg.NChan = adc_cfg->NChan;
|
||||
sampleData.adcBaseCfg.SPS = adc_cfg->SPS;
|
||||
}
|
||||
|
||||
//˫ADC<44><43><EFBFBD>ó<EFBFBD>ʼ<EFBFBD><CABC>----------------------------------------------------------
|
||||
void SetSampleSiagnlForSyncADC( ADC_SyncConfig_TypeDef* adc_cfg)
|
||||
{
|
||||
ADC_REF_Init(REF_INTERNAL_2P5V, REF_INTERNAL_2P5V);
|
||||
sampleData.adcSyncCfg.Gain0 = adc_cfg->Gain0;
|
||||
sampleData.adcSyncCfg.PChan0 = adc_cfg->PChan0;
|
||||
sampleData.adcSyncCfg.NChan0 = adc_cfg->NChan0;
|
||||
|
||||
sampleData.adcSyncCfg.Gain1 = adc_cfg->Gain1;
|
||||
sampleData.adcSyncCfg.PChan1 = adc_cfg->PChan1;
|
||||
sampleData.adcSyncCfg.NChan1 = adc_cfg->NChan1;
|
||||
sampleData.adcSyncCfg.SPS = adc_cfg->SPS;
|
||||
}
|
||||
|
||||
//ADC<44>Ŵ<EFBFBD><C5B4><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>--------------------------------------------------
|
||||
u16 GetAdcGain(u16 gianX)
|
||||
{
|
||||
switch(gianX)
|
||||
{
|
||||
case 1: return GAIN1;
|
||||
case 2: return GAIN2;
|
||||
case 4: return GAIN4;
|
||||
case 8: return GAIN8;
|
||||
case 16: return GAIN16;
|
||||
case 32: return GAIN32;
|
||||
case 64: return GAIN64;
|
||||
case 128: return GAIN128;
|
||||
default:
|
||||
return GetAdcGain(ADC_GAIN_DEFAULT);
|
||||
}
|
||||
}
|
||||
|
||||
/* ======================================================================================================
|
||||
adc<64>жϲ<D0B6><CFB2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˵<EFBFBD><CBB5><EFBFBD><EFBFBD>
|
||||
1.<2E><><EFBFBD>ã<EFBFBD>SetSampleSiagnlForSingleADC SetSampleSiagnlForSyncADC
|
||||
2.<2E><>ʼ<EFBFBD><CABC>StartADC0SampingData StartADC1SampingData StartADCSyncSampingData
|
||||
3.<2E><>ȡ<EFBFBD><C8A1>IRQ ReadSamplingData
|
||||
4.<2E><><EFBFBD>㣺ComputeSampleData
|
||||
*/
|
||||
__Samp_Buf_TypeDef sampleData;
|
||||
|
||||
void ADC0_IRQHandler(void)
|
||||
======================================================================================================*/
|
||||
//ת<><D7AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>
|
||||
void ConversionIRQ_Callback(void)
|
||||
{
|
||||
if(LHL_ADC_GetPending(ADC_0, ADC_FLAG_RDY) == SET)
|
||||
{
|
||||
if(sampleData.SkipSampNum) sampleData.SkipSampNum -- ;
|
||||
ReadSamplingData(); //<2F><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
}
|
||||
}
|
||||
|
||||
void ConversionTimerIRQ_Callback(void)
|
||||
{
|
||||
if(sampleData.SkipSampNum) sampleData.SkipSampNum -- ;
|
||||
if(sampleData.SkipSampNum) {sampleData.SkipSampNum -- ; return; }
|
||||
ReadSamplingData(); //<2F><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
}
|
||||
|
||||
void SetSampleSiagnlForADC(ADC_Config_TypeDef adc_cfg)
|
||||
{
|
||||
sampleData.adcConfig.Gain0 = adc_cfg.Gain0;
|
||||
sampleData.adcConfig.PChan0 = adc_cfg.PChan0;
|
||||
sampleData.adcConfig.NChan0 = adc_cfg.NChan0;
|
||||
sampleData.adcConfig.Gain1 = adc_cfg.Gain1;
|
||||
sampleData.adcConfig.PChan1 = adc_cfg.PChan1;
|
||||
sampleData.adcConfig.NChan1 = adc_cfg.NChan1;
|
||||
sampleData.adcConfig.SPS = adc_cfg.SPS;
|
||||
}
|
||||
|
||||
//<2F><>ʼת<CABC><D7AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>---------------------------------------------------------------
|
||||
void StartADC0SampingData(void)
|
||||
{
|
||||
sampleData.ADCBuffer[0]=0;
|
||||
sampleData.Counter=0;
|
||||
sampleData.SkipSampNum = 3 ;
|
||||
ADC0_Conversion_Init(sampleData.adcConfig);
|
||||
|
||||
ADC0_Conversion_Init(&sampleData.adcBaseCfg);
|
||||
ADC_register_irq_callback(ADC_0,ConversionIRQ_Callback);
|
||||
StartADC(ADC_0);
|
||||
}
|
||||
|
||||
void StartADC1SampingData(void)
|
||||
{
|
||||
sampleData.ADCBuffer[1]=0;
|
||||
sampleData.Counter=0;
|
||||
sampleData.SkipSampNum = 3 ;
|
||||
ADC1_Conversion_Init(sampleData.adcConfig);
|
||||
ADC1_Conversion_Init(&sampleData.adcBaseCfg);
|
||||
ADC_register_irq_callback(ADC_1,ConversionIRQ_Callback);
|
||||
StartADC(ADC_1);
|
||||
}
|
||||
|
||||
void StartADCSyncSampingData(void)
|
||||
{
|
||||
{
|
||||
sampleData.ADCBuffer[0]=0;
|
||||
sampleData.ADCBuffer[1]=0;
|
||||
sampleData.Counter=0;
|
||||
sampleData.SkipSampNum = 3 ;
|
||||
#if 1
|
||||
ADC0_1_SyncConversion_Init(sampleData.adcConfig);
|
||||
#else
|
||||
NVIC_DisableIRQ(ADC0_IRQn);
|
||||
StartConversionTimerInterval(1);//1ms <20><>ʱ<EFBFBD><CAB1><EFBFBD>ж϶<D0B6>ȡadcת<63><D7AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
Timer_register_irq_callback(ConversionTimer,ConversionTimerIRQ_Callback );//ע<><D7A2>timer2<72>жϻص<CFBB><D8B5><EFBFBD><EFBFBD><EFBFBD>
|
||||
#endif
|
||||
ADC0_1_SyncConversion_Init(&sampleData.adcSyncCfg);
|
||||
ADC_register_irq_callback(ADC_0,ConversionIRQ_Callback);
|
||||
StartADC(ADC_0);//ֻ<>迪<EFBFBD><E8BFAA>ADC_0
|
||||
}
|
||||
|
||||
|
||||
void ReadSamplingData(void)//ADC<44>ж϶<D0B6>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> BPS
|
||||
{
|
||||
sampleData.ADCBuffer[0] += ADC_ReadSampleData(ADC_0); //<2F><><EFBFBD>ز<EFBFBD><D8B2><EFBFBD><EFBFBD>ۼ<EFBFBD>
|
||||
sampleData.ADCBuffer[1] += ADC_ReadSampleData(ADC_1); //<2F><><EFBFBD>ز<EFBFBD><D8B2><EFBFBD><EFBFBD>ۼ<EFBFBD>
|
||||
sampleData.Counter++; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD><D0B6>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
// if(sampleData.Counter < sampleData.CounterMax) return;
|
||||
sampleData.ADCBuffer[0] += ADC_ReadData(ADC_0); //<2F><><EFBFBD>ز<EFBFBD><D8B2><EFBFBD><EFBFBD>ۼ<EFBFBD>
|
||||
sampleData.ADCBuffer[1] += ADC_ReadData(ADC_1); //<2F><><EFBFBD>ز<EFBFBD><D8B2><EFBFBD><EFBFBD>ۼ<EFBFBD>
|
||||
sampleData.Counter++; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
}
|
||||
|
||||
void ComputeSampleData(void) //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
{
|
||||
StopADCConversion(ADC_0);
|
||||
StopADCConversion(ADC_1);
|
||||
if(sampleData.Counter != 0)//<2F>ɼ<EFBFBD><C9BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƽ<EFBFBD><EFBFBD>
|
||||
StopADC(ADC_0);
|
||||
StopADC(ADC_1);
|
||||
if(sampleData.Counter != 0)//<2F>ɼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƽ<EFBFBD><EFBFBD>
|
||||
{
|
||||
sampleData.ADCBuffer[0] /= (u32)sampleData.Counter;
|
||||
sampleData.ADCBuffer[1] /= (u32)sampleData.Counter;
|
||||
}
|
||||
}
|
||||
|
||||
/* ======================================================================================================
|
||||
adc dma<6D><61><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˵<EFBFBD><CBB5><EFBFBD><EFBFBD>
|
||||
1.<2E><><EFBFBD>ã<EFBFBD> SetSampleSiagnlForSingleADC SetSampleSiagnlForSyncADC
|
||||
2.<2E><>ʼ<EFBFBD><CABC> StartDMAForADC0SampingData StartDMAForADC1SampingData StartDMAForADCSyncSampingData
|
||||
3.<2E><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: IRQ <20><>־λ
|
||||
4.<2E><><EFBFBD>㣺 DMA_ComputeSampleData_ADC0 DMA_ComputeSampleData_ADC1
|
||||
======================================================================================================*/
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>жϱ<D0B6>־λ
|
||||
void DMAForADC0_Callback()
|
||||
{
|
||||
sampleData.DMA_ADC_adcflag[0] = 1;
|
||||
}
|
||||
|
||||
void DMAForADC1_Callback()
|
||||
{
|
||||
sampleData.DMA_ADC_adcflag[1] = 1;
|
||||
}
|
||||
|
||||
//<2F><>ʼת<CABC><D7AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>---------------------------------------------------------------
|
||||
//<2F><>ADCת<43><D7AA>--------------------------
|
||||
void StartDMAForADC0SampingData(void)
|
||||
{
|
||||
sampleData.SkipSampNum = 0 ;
|
||||
sampleData.DMA_ADC_adcflag[1] = 0 ;
|
||||
|
||||
ADC0_Conversion_Init(&sampleData.adcBaseCfg);
|
||||
DMA_ADC_Init(ADC_0,sampleData.DMA_ADC_Buffer[0],sampleData.DMA_ADC_SampLen+sampleData.SkipSampNum);
|
||||
DMA_register_irq_callback(DMA_CHANNEL_ADC_0,NULL,DMAForADC0_Callback);
|
||||
DMA_StartADC(ADC_0);
|
||||
}
|
||||
|
||||
//<2F><>ADCת<43><D7AA>--------------------------
|
||||
void StartDMAForADC1SampingData(void)
|
||||
{
|
||||
sampleData.SkipSampNum = 0 ;
|
||||
sampleData.DMA_ADC_adcflag[1] = 0 ;
|
||||
|
||||
ADC0_Conversion_Init(&sampleData.adcBaseCfg);
|
||||
DMA_ADC_Init(ADC_1, sampleData.DMA_ADC_Buffer[1],sampleData.DMA_ADC_SampLen+sampleData.SkipSampNum);
|
||||
DMA_register_irq_callback(DMA_CHANNEL_ADC_1,NULL,DMAForADC1_Callback);
|
||||
DMA_StartADC(ADC_1);
|
||||
}
|
||||
|
||||
//˫ADCת<43><D7AA>--------------------------
|
||||
void StartDMAForADCSyncSampingData(void)
|
||||
{
|
||||
sampleData.SkipSampNum = 0 ;
|
||||
sampleData.DMA_ADC_adcflag[0] = 0 ;
|
||||
sampleData.DMA_ADC_adcflag[1] = 0 ;
|
||||
|
||||
ADC0_1_SyncConversion_Init(&sampleData.adcSyncCfg);
|
||||
DMA_ADC_Init(ADC_0,sampleData.DMA_ADC_Buffer[0],sampleData.DMA_ADC_SampLen+sampleData.SkipSampNum);
|
||||
DMA_ADC_Init(ADC_1,sampleData.DMA_ADC_Buffer[1],sampleData.DMA_ADC_SampLen+sampleData.SkipSampNum);
|
||||
DMA_register_irq_callback(DMA_CHANNEL_ADC_0,NULL,DMAForADC0_Callback);
|
||||
DMA_register_irq_callback(DMA_CHANNEL_ADC_1,NULL,DMAForADC1_Callback);
|
||||
DMA_StartADC(ADC_0);
|
||||
DMA_StartADC(ADC_1);
|
||||
}
|
||||
|
||||
//ת<><D7AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>-----------------------
|
||||
inline u8 WaitADC0DMAComplete(void)
|
||||
{
|
||||
if (sampleData.DMA_ADC_adcflag[0]) {
|
||||
sampleData.DMA_ADC_adcflag[0] = 0;
|
||||
return 1; // ת<><D7AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
}
|
||||
return 0; // ת<><D7AA>δ<EFBFBD><CEB4><EFBFBD><EFBFBD>
|
||||
}
|
||||
|
||||
inline u8 WaitADC1DMAComplete(void)
|
||||
{
|
||||
if (sampleData.DMA_ADC_adcflag[1]) {
|
||||
sampleData.DMA_ADC_adcflag[1] = 0;
|
||||
return 1; // ת<><D7AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
}
|
||||
return 0; // ת<><D7AA>δ<EFBFBD><CEB4><EFBFBD><EFBFBD>
|
||||
}
|
||||
|
||||
inline u8 WaitSyncDMAComplete(void) //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
{
|
||||
if (sampleData.DMA_ADC_adcflag[0] && sampleData.DMA_ADC_adcflag[1]) {
|
||||
sampleData.DMA_ADC_adcflag[0] = 0;
|
||||
sampleData.DMA_ADC_adcflag[1] = 0;
|
||||
return 1; // ת<><D7AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
}
|
||||
return 0; // ת<><D7AA>δ<EFBFBD><CEB4><EFBFBD><EFBFBD>
|
||||
}
|
||||
|
||||
|
||||
|
||||
//<2F><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>-----------------------
|
||||
u16 DMA_ComputeSampleData_ADC0(void)
|
||||
{
|
||||
u16 adcCode;
|
||||
u32 adcCount;
|
||||
u8 i ;
|
||||
for(i = sampleData.SkipSampNum ; i < sampleData.DMA_ADC_SampLen ;i++)
|
||||
{
|
||||
adcCode = ((((sampleData.DMA_ADC_Buffer[0][i] & 0xFFFFFF) | ((sampleData.DMA_ADC_Buffer[0][i] & 0x800000) ? 0xFF000000 : 0)) >> 8) + 32768) & 0xFFFF;//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>16λ<36><CEBB><EFBFBD><EFBFBD>
|
||||
adcCount += adcCode ;
|
||||
}
|
||||
adcCode = adcCount>>sampleData.DMA_ADC_Exponent;
|
||||
return adcCode;
|
||||
}
|
||||
|
||||
u16 DMA_ComputeSampleData_ADC1(void)
|
||||
{
|
||||
u16 adcCode;
|
||||
u32 adcCount;
|
||||
u8 i ;
|
||||
for(u8 i = sampleData.SkipSampNum ; i < sampleData.DMA_ADC_SampLen ;i++)
|
||||
{
|
||||
adcCode = ((((sampleData.DMA_ADC_Buffer[1][i] & 0xFFFFFF) | ((sampleData.DMA_ADC_Buffer[1][i] & 0x800000) ? 0xFF000000 : 0)) >> 8) + 32768) & 0xFFFF;//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>16λ<36><CEBB><EFBFBD><EFBFBD>
|
||||
adcCount += adcCode ;
|
||||
}
|
||||
|
||||
adcCode = adcCount >> sampleData.DMA_ADC_Exponent;
|
||||
return adcCode;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
/*==========================================================================*/
|
||||
//ADC<44><43><EFBFBD>в<EFBFBD><D0B2><EFBFBD>--<2D>ʺϲ<CABA><CFB2>ı<EFBFBD><C4B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ij<EFBFBD><C4B3><EFBFBD>
|
||||
//ʹ<><CAB9>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>
|
||||
//<2F><><EFBFBD><EFBFBD>seq_config
|
||||
//StartDMA_ForADC0_SeqSample();
|
||||
//u16 SeqData[4];
|
||||
//if(adcFlag)ADC_ReadSeqData(SeqData,sizeof(SeqData) / sizeof(SeqData[0]));
|
||||
|
||||
|
||||
|
||||
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>в<EFBFBD><D0B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
typedef enum {
|
||||
seq_1, seq_2, seq_3, seq_4,/*......*/seq_Count
|
||||
}__SeqIndex;
|
||||
#define SEQ_CFG { \
|
||||
.Gain = GAIN64, \
|
||||
.SPS = SPS_12P5, \
|
||||
.SeqCount = seq_Count, \
|
||||
.SeqChannel = { \
|
||||
[seq_1] = {ADC0_AIN0, ADC0_AIN1}, \
|
||||
[seq_2] = {ADC1_AIN3, ADC1_AIN4}, \
|
||||
[seq_3] = {ADC1_AIN2, ADC1_AVSS}, \
|
||||
[seq_4] = {ADC1_AIN5, ADC1_AIN4}, \
|
||||
}, \
|
||||
.adcFlag = 0 ,/* DMA<4D><41><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɱ<EFBFBD>־ */ \
|
||||
}
|
||||
|
||||
__SeqConfig_TypeDef seq_config = SEQ_CFG;
|
||||
|
||||
//void SetSampleSeqConfig(u8 Gain ,u8 SPS) //Ӧ<><D3A6><EFBFBD>ʺϲ<CABA><CFB2>ı<EFBFBD><C4B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ij<EFBFBD><C4B3><EFBFBD><EFBFBD>Ļ<EFBFBD><C4BB><EFBFBD><EFBFBD><EFBFBD>Ҫ~~~Ҫ<>ľͲ<C4BE><CDB2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
//{
|
||||
// seq_config.Gain = Gain ;
|
||||
// seq_config.SPS = SPS ;
|
||||
//}
|
||||
|
||||
void seqcallback(void)
|
||||
{
|
||||
seq_config.adcFlag = 1 ;
|
||||
}
|
||||
void StartDMA_ForADC0_SeqSample(void)
|
||||
{
|
||||
DMA_ADC0_SingleChannel_SEQ_Init(&seq_config);
|
||||
|
||||
seq_config.adcFlag = 0;
|
||||
DMA_register_irq_callback(DMA_CHANNEL_ADC_CTL,NULL,seqcallback);
|
||||
|
||||
StartDMA_SEQ_ADC(ADC_0);
|
||||
}
|
||||
|
||||
|
||||
//<2F><>ADC<44><43><EFBFBD><EFBFBD>---------------------------------------------------------------
|
||||
void ADC_ReadSeqData(u16* SeqData ,u8 SeqNumCount)
|
||||
{
|
||||
ADC_Data_t* tempSeqData;
|
||||
if (seq_config.adcFlag > 0)
|
||||
{
|
||||
tempSeqData = seq_config.adcBuffer;//adcBuffer<65><72><EFBFBD><EFBFBD>Ū<EFBFBD>ɴ<EFBFBD><C9B4>ݣ<EFBFBD>
|
||||
for(u8 i = 0 ; i < SeqNumCount ; i++)
|
||||
{
|
||||
tempSeqData[i].ADC_Data = ((((tempSeqData[i].ADC_Data & 0xFFFFFF) | ((tempSeqData[i].ADC_Data & 0x800000) ? 0xFF000000 : 0)) >> 8) + 32768) & 0xFFFF;
|
||||
SeqData[i] = tempSeqData[i].ADC_Data;//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>в<EFBFBD><D0B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
}
|
||||
seq_config.adcFlag = 0;
|
||||
}
|
||||
}
|
||||
|
||||
/******-==============================================================================================================================================================******/
|
||||
//__IntSingleSampleData_t sampleData1;
|
||||
//__IntSyncSampleData_t sampleData2;
|
||||
//__SingleDmaSampleData_t sampleData3;
|
||||
//__DualSyncDmaSampleData_t sampleData4;
|
||||
|
||||
////<2F>жϵ<D0B6>ADC<44><43>ʼת<CABC><D7AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>---------------------------------------------------------------
|
||||
////ת<><D7AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>
|
||||
//void ADC0_SingleIRQ_Callback(void)
|
||||
//{
|
||||
// if(sampleData1.skip_num) {sampleData1.skip_num -- ; return; }
|
||||
// //<2F><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
// sampleData1.adc_buffer+= ADC_ReadData(ADC_0); //<2F><><EFBFBD>ز<EFBFBD><D8B2><EFBFBD><EFBFBD>ۼ<EFBFBD>
|
||||
// sampleData1.counter++; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
//}
|
||||
//void ComputeSingleADC0SampleData(void) //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
//{
|
||||
// StopADC(ADC_0);
|
||||
// //<2F>ɼ<EFBFBD><C9BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƽ<EFBFBD><C6BD>
|
||||
// if(sampleData1.counter != 0) sampleData1.adc_buffer /= (u32)sampleData1.counter;
|
||||
//}
|
||||
//void StartADC0_SampingData(void)
|
||||
//{
|
||||
// sampleData1.adc_buffer = 0 ;
|
||||
// sampleData1.counter =0 ;
|
||||
// sampleData1.skip_num = 3 ;
|
||||
// ADC_REF_Init(REF_INTERNAL_2P5V,REF_INTERNAL_2P5V);/* 1. <20><>ʼ<EFBFBD><CABC><EFBFBD>ڲ<EFBFBD><DAB2><EFBFBD>Դ */
|
||||
// ADC_Init(ADC_0, sampleData1.adc_cfg.SPS, sampleData1.adc_cfg.Gain, sampleData1.adc_cfg.PChan, sampleData1.adc_cfg.NChan); /* 2. <20><>ʼ<EFBFBD><CABC>ADC0 */
|
||||
// ADC_register_irq_callback(ADC_0,ADC0_SingleIRQ_Callback);
|
||||
// StartADC(ADC_0);
|
||||
//}
|
||||
////ADC1......
|
||||
|
||||
|
||||
////<2F>ж<EFBFBD>˫ADCͬ<43><CDAC><EFBFBD><EFBFBD>ʼת<CABC><D7AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>---------------------------------------------------------------
|
||||
////ת<><D7AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>
|
||||
//void ADC_SyncIRQ_Callback(void)
|
||||
//{
|
||||
// if(sampleData2.skip_num) {sampleData2.skip_num -- ; return; }
|
||||
// //<2F><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
// sampleData2.adc_buffer[0] += ADC_ReadData(ADC_0); //<2F><><EFBFBD>ز<EFBFBD><D8B2><EFBFBD><EFBFBD>ۼ<EFBFBD>
|
||||
// sampleData2.adc_buffer[1] += ADC_ReadData(ADC_1); //<2F><><EFBFBD>ز<EFBFBD><D8B2><EFBFBD><EFBFBD>ۼ<EFBFBD>
|
||||
// sampleData2.counter++; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
//}
|
||||
//void ComputeSyncADCSampleData(void) //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
//{
|
||||
// StopADC(ADC_0);
|
||||
// StopADC(ADC_1);
|
||||
// //<2F>ɼ<EFBFBD><C9BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƽ<EFBFBD><C6BD>
|
||||
// if(sampleData2.counter != 0)
|
||||
// {
|
||||
// sampleData2.adc_buffer[0] /= (u32)sampleData2.counter;
|
||||
// sampleData2.adc_buffer[1] /= (u32)sampleData2.counter;
|
||||
// }
|
||||
//}
|
||||
//void StartADC_Sync_SampingData(void)
|
||||
//{
|
||||
// sampleData2.adc_buffer[0] = 0 ;
|
||||
// sampleData2.adc_buffer[1] = 0 ;
|
||||
// sampleData2.counter =0 ;
|
||||
// sampleData2.skip_num = 3 ;
|
||||
// ADC_REF_Init(REF_INTERNAL_2P5V,REF_INTERNAL_2P5V);/* 1. <20><>ʼ<EFBFBD><CABC><EFBFBD>ڲ<EFBFBD><DAB2><EFBFBD>Դ */
|
||||
// ADC_Init(ADC_0, sampleData2.adc_cfg.SPS, sampleData2.adc_cfg.Gain0, sampleData2.adc_cfg.PChan0, sampleData2.adc_cfg.NChan0); /* 2. <20><>ʼ<EFBFBD><CABC>ADC0 */
|
||||
// ADC_Init(ADC_1, sampleData2.adc_cfg.SPS, sampleData2.adc_cfg.Gain1, sampleData2.adc_cfg.PChan1, sampleData2.adc_cfg.NChan1); /* 3. <20><>ʼ<EFBFBD><CABC>ADC1 */
|
||||
// ADC_SyncCmd(ENABLE);/* 4. ADCͬ<43><CDAC>ʹ<EFBFBD><CAB9> */
|
||||
// ADC_register_irq_callback(ADC_0,ADC_SyncIRQ_Callback);//ֻ<>迪<EFBFBD><E8BFAA>ADC_0
|
||||
// StartADC(ADC_0);//ֻ<>迪<EFBFBD><E8BFAA>ADC_0
|
||||
//}
|
||||
|
||||
|
||||
////DMA<4D><41>ADC<44><43>ʼת<CABC><D7AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>---------------------------------------------------------------
|
||||
//void DMAForSingleADC0_Callback()
|
||||
//{
|
||||
// sampleData3.adcflag = 1;
|
||||
//}
|
||||
//void StartDMAForSingleADC0SampingData(void)
|
||||
//{
|
||||
// sampleData3.skip_num = 3;
|
||||
// ADC_REF_Init(REF_INTERNAL_2P5V,REF_INTERNAL_2P5V);/* 1. <20><>ʼ<EFBFBD><CABC><EFBFBD>ڲ<EFBFBD><DAB2><EFBFBD>Դ */
|
||||
// ADC_Init(ADC_0, sampleData3.adc_cfg.SPS, sampleData3.adc_cfg.Gain, sampleData3.adc_cfg.PChan, sampleData3.adc_cfg.NChan); /* 2. <20><>ʼ<EFBFBD><CABC>ADC0 */
|
||||
//// ADC_DMA_Init(ADC_0,sampleData3.dma_buffer,sampleData3.samp_len+sampleData3.skip_num);
|
||||
// DMA_register_irq_callback(DMA_CHANNEL_ADC_0,NULL,DMAForSingleADC0_Callback);
|
||||
// DMA_StartADC(ADC_0);
|
||||
//}
|
||||
//u16 DMA_ComputeSingleSampleData_ADC0(void)
|
||||
//{
|
||||
// u16 adcCode;
|
||||
// u32 adcCount;
|
||||
// u8 i ;
|
||||
// for(i = sampleData3.skip_num ; i < sampleData3.samp_len ;i++)
|
||||
// {
|
||||
// adcCode = ((((sampleData3.dma_buffer[i] & 0xFFFFFF) | ((sampleData3.dma_buffer[i] & 0x800000) ? 0xFF000000 : 0)) >> 8) + 32768) & 0xFFFF;//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>16λ<36><CEBB><EFBFBD><EFBFBD>
|
||||
// adcCount += adcCode ;
|
||||
// }
|
||||
// adcCode = adcCount>>sampleData3.exponent;
|
||||
// return adcCode;
|
||||
//}
|
||||
|
||||
////ADC1......
|
||||
|
||||
////DMA˫ADC<44><43>ʼת<CABC><D7AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>---------------------------------------------------------------
|
||||
//void DMAForSyncADC0_Callback()
|
||||
//{
|
||||
// sampleData4.adcflag[0] = 1;
|
||||
//}
|
||||
//void DMAForSyncADC1_Callback()
|
||||
//{
|
||||
// sampleData4.adcflag[1] = 1;
|
||||
//}
|
||||
//void StartDMA_ForADCSyncSampingData(void)
|
||||
//{
|
||||
// sampleData3.skip_num = 3;
|
||||
// ADC_REF_Init(REF_INTERNAL_2P5V,REF_INTERNAL_2P5V);/* 1. <20><>ʼ<EFBFBD><CABC><EFBFBD>ڲ<EFBFBD><DAB2><EFBFBD>Դ */
|
||||
// ADC_Init(ADC_0, sampleData4.adc_cfg.SPS, sampleData4.adc_cfg.Gain0, sampleData4.adc_cfg.PChan0, sampleData4.adc_cfg.NChan0); /* 2. <20><>ʼ<EFBFBD><CABC>ADC0 */
|
||||
// ADC_Init(ADC_1, sampleData4.adc_cfg.SPS, sampleData4.adc_cfg.Gain1, sampleData4.adc_cfg.PChan1, sampleData4.adc_cfg.NChan1); /* 3. <20><>ʼ<EFBFBD><CABC>ADC1 */
|
||||
//
|
||||
//// ADC_DMA_Init(ADC_0,sampleData4.dma_buffer[0],sampleData4.samp_len+sampleData4.skip_num);
|
||||
//// ADC_DMA_Init(ADC_1,sampleData4.dma_buffer[1],sampleData4.samp_len+sampleData4.skip_num);
|
||||
// DMA_register_irq_callback(DMA_CHANNEL_ADC_0,NULL,DMAForSyncADC0_Callback);
|
||||
// DMA_register_irq_callback(DMA_CHANNEL_ADC_1,NULL,DMAForSyncADC1_Callback);
|
||||
|
||||
// DMA_StartADC(ADC_0);
|
||||
// DMA_StartADC(ADC_1);
|
||||
//}
|
||||
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
@@ -1,32 +1,126 @@
|
||||
#ifndef __SAMPPROCESS_H__
|
||||
#define __SAMPPROCESS_H__
|
||||
#if 0
|
||||
typedef struct {
|
||||
u8 Gain; //ADC<44><43><EFBFBD><EFBFBD><EFBFBD>Ŵ<EFBFBD>ϵ<EFBFBD><CFB5>
|
||||
u8 PChan; //ADC<44><43><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͨ<EFBFBD><CDA8>
|
||||
u8 NChan; //ADC<44><43><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͨ<EFBFBD><CDA8>
|
||||
u8 SPS; //ADC<44><43><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
} ADC_BaseConfig_TypeDef;
|
||||
|
||||
typedef struct {
|
||||
u8 Gain0; //ADC_0<5F><30><EFBFBD><EFBFBD><EFBFBD>Ŵ<EFBFBD>ϵ<EFBFBD><CFB5>
|
||||
u8 PChan0; //ADC_0<5F><30><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͨ<EFBFBD><CDA8>
|
||||
u8 NChan0; //ADC_0<5F><30><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͨ<EFBFBD><CDA8>
|
||||
u8 Gain1; //ADC_1<5F><31><EFBFBD><EFBFBD><EFBFBD>Ŵ<EFBFBD>ϵ<EFBFBD><CFB5>
|
||||
u8 PChan1; //ADC_1<5F><31><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͨ<EFBFBD><CDA8>
|
||||
u8 NChan1; //ADC_1<5F><31><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͨ<EFBFBD><CDA8>
|
||||
u8 SPS; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
} ADC_SyncConfig_TypeDef;
|
||||
|
||||
enum
|
||||
{
|
||||
IRHCode,
|
||||
IRRCode,
|
||||
URUCode,
|
||||
URHCode,
|
||||
BASCode,
|
||||
BATCode,
|
||||
C = 0 ,
|
||||
R,
|
||||
H,
|
||||
A,
|
||||
B,
|
||||
D,
|
||||
E,
|
||||
F,
|
||||
TCode_Count
|
||||
};
|
||||
|
||||
|
||||
|
||||
|
||||
typedef struct
|
||||
{
|
||||
ADC_Config_TypeDef adcConfig;
|
||||
u8 SkipSampNum ;
|
||||
u8 CounterMax; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
u8 Counter; //<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
u32 ADCBuffer[2]; //<2F><><EFBFBD><EFBFBD>ֵ(<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
||||
u32 TCode[TCode_Count]; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD>洢<EFBFBD><E6B4A2>
|
||||
}__Samp_Buf_TypeDef; //<2F><><EFBFBD><EFBFBD>
|
||||
{
|
||||
ADC_BaseConfig_TypeDef adcBaseCfg;
|
||||
ADC_SyncConfig_TypeDef adcSyncCfg; //ADC<44><43><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
u32 TempCode[TCode_Count]; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD>洢<EFBFBD><EFBFBD>
|
||||
u8 SkipSampNum ; //<2F><><EFBFBD><EFBFBD>ǰ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
/*<2A>жϷ<D0B6>ʽ<EFBFBD><CABD><EFBFBD>ݶ<EFBFBD><DDB6><EFBFBD>*/
|
||||
u8 CounterMax; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
u8 Counter; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
u32 ADCBuffer[2]; //<2F><><EFBFBD><EFBFBD>ֵ
|
||||
|
||||
/*DMA<4D><41>ʽ<EFBFBD><CABD><EFBFBD>ݶ<EFBFBD><DDB6><EFBFBD>*/
|
||||
u32 DMA_ADC_Buffer[2][70];
|
||||
u8 DMA_ADC_adcflag[2];
|
||||
u8 DMA_ADC_SampLen;
|
||||
u8 DMA_ADC_Exponent;
|
||||
}__Samp_Buf_TypeDef;//<2F><><EFBFBD><EFBFBD>
|
||||
|
||||
|
||||
|
||||
//// <20>ж<EFBFBD>ģʽ<C4A3><CABD><EFBFBD><EFBFBD>ͨ<EFBFBD><CDA8><EFBFBD><EFBFBD>
|
||||
//typedef struct {
|
||||
// ADC_BaseConfig_TypeDef adc_cfg;
|
||||
// u8 skip_num ;
|
||||
// u8 counter; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
// u32 adc_buffer; //<2F><><EFBFBD><EFBFBD>ֵ
|
||||
//}__IntSingleSampleData_t;
|
||||
|
||||
//// <20>ж<EFBFBD>ģʽ<C4A3><CABD>˫ ADC ͬ<><CDAC><EFBFBD><EFBFBD>
|
||||
//typedef struct {
|
||||
// ADC_SyncConfig_TypeDef adc_cfg;
|
||||
// u8 skip_num ;
|
||||
// u8 counter; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
// u32 adc_buffer[2]; //<2F><><EFBFBD><EFBFBD>ֵ
|
||||
//}__IntSyncSampleData_t;
|
||||
|
||||
//// <20><> ADC + DMA ģʽר<CABD><D7A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
//typedef struct {
|
||||
// ADC_BaseConfig_TypeDef adc_cfg;
|
||||
// u32 dma_buffer[128];
|
||||
// u8 adcflag ;
|
||||
// u8 samp_len;
|
||||
// u8 exponent;
|
||||
// u8 skip_num;
|
||||
//}__SingleDmaSampleData_t;
|
||||
|
||||
//// ˫ ADC ͬ<><CDAC> + DMA ģʽר<CABD><D7A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
//typedef struct {
|
||||
// ADC_SyncConfig_TypeDef adc_cfg;
|
||||
// u32 dma_buffer[2][128]; // [0]=ADC0, [1]=ADC1
|
||||
// u8 adcflag[2] ;
|
||||
// u8 samp_len;
|
||||
// u8 exponent;
|
||||
// u8 skip_num;
|
||||
//}__DualSyncDmaSampleData_t;
|
||||
//extern __IntSingleSampleData_t sampleData1;
|
||||
//extern __IntSyncSampleData_t sampleData2;
|
||||
//extern __SingleDmaSampleData_t sampleData3;
|
||||
//extern __DualSyncDmaSampleData_t sampleData4;
|
||||
|
||||
extern __Samp_Buf_TypeDef sampleData;
|
||||
|
||||
void SetSampleSiagnlForADC(ADC_Config_TypeDef adc_cfg);
|
||||
u16 GetAdcGain(u16 gianX);
|
||||
/*ADC<44><43><EFBFBD>ó<EFBFBD>ʼ<EFBFBD><CABC>*/
|
||||
void SetSampleSiagnlForSingleADC( ADC_BaseConfig_TypeDef* adc_cfg);
|
||||
void SetSampleSiagnlForSyncADC( ADC_SyncConfig_TypeDef* adc_cfg);
|
||||
|
||||
/*<2A>жϷ<D0B6>ʽ*/
|
||||
void StartADC0SampingData(void);
|
||||
void StartADC1SampingData(void);
|
||||
void StartADCSyncSampingData(void);
|
||||
void ReadSamplingData(void);//<2F><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
void ComputeSampleData(void);//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
/*DMA<4D><41>ʽ*/
|
||||
void StartDMAForADC0SampingData(void);
|
||||
void StartDMAForADC1SampingData(void);
|
||||
void StartDMAForADCSyncSampingData(void);
|
||||
u8 WaitADC0DMAComplete(void);
|
||||
u8 WaitADC1DMAComplete(void);
|
||||
u8 WaitSyncDMAComplete(void);
|
||||
u16 DMA_ComputeSampleData_ADC0(void);
|
||||
u16 DMA_ComputeSampleData_ADC1(void);
|
||||
|
||||
|
||||
/*DMA ADC<44><43><EFBFBD>з<EFBFBD>ʽ*/
|
||||
void StartDMA_ForADC0_SeqSample(void);
|
||||
void ADC_ReadSeqData(u16* SeqData ,u8 SeqNumCount) ;
|
||||
#endif
|
||||
#endif
|
||||
@@ -14,49 +14,12 @@ const u8 MAPDefault[] = {
|
||||
MAP36_DEFAULT, MAP37_DEFAULT, MAP38_DEFAULT, MAP39_DEFAULT, MAP40_DEFAULT,
|
||||
MAP41_DEFAULT, MAP42_DEFAULT, MAP43_DEFAULT, MAP44_DEFAULT, MAP45_DEFAULT,
|
||||
MAP46_DEFAULT, MAP47_DEFAULT, MAP48_DEFAULT };
|
||||
/*
|
||||
//------------------------------------------------------------------------------
|
||||
//const unsigned char BusRegLen[] = {
|
||||
// STD_30_LEN, STD_31_LEN, STD_32_LEN, STD_33_LEN, STD_34_LEN, STD_35_LEN, STD_36_LEN, STD_37_LEN,
|
||||
// STD_38_LEN, STD_39_LEN, STD_3A_LEN, STD_3B_LEN, STD_3C_LEN, STD_3D_LEN, STD_3E_LEN, STD_3F_LEN,
|
||||
//
|
||||
// STD_40_LEN, STD_41_LEN, STD_42_LEN, STD_43_LEN, STD_44_LEN, STD_45_LEN, STD_46_LEN, STD_47_LEN,
|
||||
// STD_48_LEN, STD_49_LEN, STD_4A_LEN, STD_4B_LEN, STD_4C_LEN, STD_4D_LEN, STD_4E_LEN, STD_4F_LEN,
|
||||
//
|
||||
// STD_50_LEN, STD_51_LEN, STD_52_LEN, STD_53_LEN, STD_54_LEN, STD_55_LEN, STD_56_LEN, STD_57_LEN,
|
||||
// STD_58_LEN, STD_59_LEN, STD_5A_LEN, STD_5B_LEN, STD_5C_LEN, STD_5D_LEN, STD_5E_LEN, STD_5F_LEN,
|
||||
//
|
||||
// STD_60_LEN, STD_61_LEN, STD_62_LEN, STD_63_LEN, STD_64_LEN, STD_65_LEN, STD_66_LEN, STD_67_LEN,
|
||||
// STD_68_LEN, STD_69_LEN, STD_6A_LEN, STD_6B_LEN, STD_6C_LEN, STD_6D_LEN, STD_6E_LEN, STD_6F_LEN,
|
||||
//
|
||||
// STD_70_LEN, STD_71_LEN, STD_72_LEN, STD_73_LEN, STD_74_LEN, STD_75_LEN, STD_76_LEN, STD_77_LEN,
|
||||
// STD_78_LEN, STD_79_LEN, STD_7A_LEN, STD_7B_LEN, STD_7C_LEN, STD_7D_LEN, STD_7E_LEN, STD_7F_LEN,
|
||||
//
|
||||
// STD_80_LEN, STD_81_LEN, STD_82_LEN, STD_83_LEN, STD_84_LEN, STD_85_LEN, STD_86_LEN, STD_87_LEN,
|
||||
// STD_88_LEN, STD_89_LEN, STD_8A_LEN, STD_8B_LEN, STD_8C_LEN, STD_8D_LEN, STD_8E_LEN, STD_8F_LEN,
|
||||
//
|
||||
// STD_90_LEN, STD_91_LEN, STD_92_LEN, STD_93_LEN, STD_94_LEN, STD_95_LEN, STD_96_LEN, STD_97_LEN,
|
||||
// STD_98_LEN, STD_99_LEN, STD_9A_LEN, STD_9B_LEN, STD_9C_LEN, STD_9D_LEN, STD_9E_LEN, STD_9F_LEN,
|
||||
//
|
||||
// STD_A0_LEN, STD_A1_LEN, STD_A2_LEN, STD_A3_LEN, STD_A4_LEN, STD_A5_LEN, STD_A6_LEN, STD_A7_LEN,
|
||||
// STD_A8_LEN, STD_A9_LEN, STD_AA_LEN, STD_AB_LEN, STD_AC_LEN, STD_AD_LEN, STD_AE_LEN, STD_AF_LEN,
|
||||
//
|
||||
// STD_B0_LEN, STD_B1_LEN, STD_B2_LEN, STD_B3_LEN, STD_B4_LEN, STD_B5_LEN, STD_B6_LEN, STD_B7_LEN,
|
||||
// STD_B8_LEN, STD_B9_LEN, STD_BA_LEN, STD_BB_LEN, STD_BC_LEN, STD_BD_LEN, STD_BE_LEN, STD_BF_LEN,
|
||||
//
|
||||
// STD_C0_LEN, STD_C1_LEN, STD_C2_LEN, STD_C3_LEN, STD_C4_LEN, STD_C5_LEN, STD_C6_LEN, STD_C7_LEN,
|
||||
// STD_C8_LEN, STD_C9_LEN, STD_CA_LEN, STD_CB_LEN, STD_CC_LEN, STD_CD_LEN, STD_CE_LEN, STD_CF_LEN,
|
||||
//
|
||||
// STD_D0_LEN, STD_D1_LEN, STD_D2_LEN, STD_D3_LEN, STD_D4_LEN, STD_D5_LEN, STD_D6_LEN, STD_D7_LEN,
|
||||
// STD_D8_LEN, STD_D9_LEN, STD_DA_LEN, STD_DB_LEN, STD_DC_LEN, STD_DD_LEN, STD_DE_LEN, STD_DF_LEN,
|
||||
//
|
||||
// STD_E0_LEN, STD_E1_LEN, STD_E2_LEN, STD_E3_LEN, STD_E4_LEN, STD_E5_LEN, STD_E6_LEN, STD_E7_LEN,
|
||||
// STD_E8_LEN, STD_E9_LEN, STD_EA_LEN, STD_EB_LEN, STD_EC_LEN, STD_ED_LEN, STD_EE_LEN, STD_EF_LEN,
|
||||
//
|
||||
// STD_F0_LEN, STD_F1_LEN, STD_F2_LEN, STD_F3_LEN, STD_F4_LEN, STD_F5_LEN, STD_F6_LEN, STD_F7_LEN,
|
||||
// STD_F8_LEN, STD_F9_LEN, STD_FA_LEN, STD_FB_LEN, STD_FC_LEN, STD_FD_LEN, STD_FE_LEN, STD_FF_LEN,
|
||||
//};
|
||||
*/
|
||||
|
||||
//******************************************************************************
|
||||
__weak void CalibrateGasOffset(void) {}
|
||||
|
||||
|
||||
//******************************************************************************
|
||||
|
||||
//******************************************************************************
|
||||
u16 SetupResponseTimeIndex(u16 response, u16 responseDefalt)
|
||||
@@ -86,12 +49,12 @@ u16 SetupResponseTime(u16 response, u16 responseDefalt)
|
||||
//******************************************************************************
|
||||
void InitUseBusParameter(void)
|
||||
{
|
||||
unsigned int I;
|
||||
u16 I;
|
||||
|
||||
DataPoint = &MAPPoint1;
|
||||
for(I=0; I<STD_MAP_MAX; I++)
|
||||
{
|
||||
*DataPoint = ReadParameterFromMemory(MAP_SET1 + I*MAP_SET_WIDTH, MAP_SET_WIDTH, (unsigned int)MAPDefault[I]);
|
||||
*DataPoint = ReadShortParameterFromMemory(MAP_SET1 + I*REG_WORD_WIDTH, (u16)MAPDefault[I]);
|
||||
DataPoint--;
|
||||
}
|
||||
}
|
||||
@@ -99,14 +62,15 @@ void InitUseBusParameter(void)
|
||||
//******************************************************************************
|
||||
void WriteInitUseBusParameter(void)
|
||||
{
|
||||
unsigned int I;
|
||||
u16 I;
|
||||
|
||||
DataPoint = &MAPPoint1;
|
||||
for(I=0; I<STD_MAP_MAX; I++)
|
||||
{
|
||||
*DataPoint = (unsigned int)MAPDefault[I];
|
||||
tempL.Word[0] = (unsigned int)MAPDefault[I];
|
||||
WriteParameterToEEPROM(MAP_SET1 + I*MAP_SET_WIDTH, MAP_SET_WIDTH);
|
||||
*DataPoint = (u16)MAPDefault[I];
|
||||
tempL.Word[0] = (u16)MAPDefault[I];
|
||||
WriteShortParameterToMemory(MAP_SET1 + I*REG_WORD_WIDTH);
|
||||
|
||||
DataPoint--;
|
||||
}
|
||||
}
|
||||
@@ -122,13 +86,12 @@ void UserReadDataProtocol(void)
|
||||
while(MBBuf.StartAddr < STD_DCOEF_NODE1)
|
||||
{
|
||||
if(MBBuf.ByteNumber < 2) return;
|
||||
if(MBBuf.StartAddr < STD_REG_START)
|
||||
{
|
||||
if(MBBuf.StartAddr < STD_REG_START) {
|
||||
//С<><D0A1>0x30δ<30><CEB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB>
|
||||
MBBuf.DataByte = DataPoint[MBBuf.StartAddr + STD_MAP_SET1];
|
||||
if(MBBuf.DataByte < STD_REG_START) tempL.Word[0] = 0;
|
||||
if(MBBuf.DataByte < STD_REG_START) tempL.Word[0] = 0;
|
||||
else if(MBBuf.DataByte < STD_DCOEF_NODE1) tempL.Word[0] = DataPoint[MBBuf.DataByte - STD_REG_START];
|
||||
else tempL.Word[0] = 0;
|
||||
else tempL.Word[0] = 0;
|
||||
}
|
||||
else tempL.Word[0] = DataPoint[MBBuf.StartAddr - STD_REG_START];
|
||||
|
||||
@@ -137,7 +100,7 @@ void UserReadDataProtocol(void)
|
||||
|
||||
MBBuf.StartAddr++;
|
||||
MBBuf.ByteNumber -= 2;
|
||||
MBBuf.DataByte = 2;
|
||||
MBBuf.DataByte = 2;
|
||||
}
|
||||
|
||||
// read record data
|
||||
@@ -236,11 +199,7 @@ void UserReadDataProtocol(void)
|
||||
default: return;
|
||||
}
|
||||
}
|
||||
|
||||
// MBBuf.RxPointer[MBBuf.Index++] = tempL.Byte[1];
|
||||
// MBBuf.RxPointer[MBBuf.Index++] = tempL.Byte[0];
|
||||
// ModbusVariablePointerDec();
|
||||
|
||||
|
||||
for(I=1; I<=MBBuf.DataByte; I++) MBBuf.RxPointer[MBBuf.Index++] = tempL.Byte[MBBuf.DataByte-I];
|
||||
ModbusVariablePointerDec();
|
||||
}
|
||||
@@ -265,7 +224,7 @@ void UserWriteDataProtocol(void)
|
||||
{
|
||||
// С<><D0A1>0x30δ<30><CEB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB>
|
||||
MBBuf.DataByte = DataPoint[MBBuf.StartAddr + STD_MAP_SET1];
|
||||
if((MBBuf.DataByte < STD_REG_START) || (MBBuf.DataByte > STD_REG_START)){
|
||||
if((MBBuf.DataByte < STD_REG_START) || (MBBuf.DataByte > STD_DCOEF_NODE1)) {
|
||||
MBBuf.BusError = ILLEGAL_DATA_ADDRESS;
|
||||
return;
|
||||
}
|
||||
@@ -287,6 +246,8 @@ void UserWriteDataProtocol(void)
|
||||
#endif
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
MBBuf.DataByte = 0;
|
||||
MBBuf.StartAddr = 0;
|
||||
while(1)
|
||||
{
|
||||
if(MBBuf.BusError != 0) return; // V2004
|
||||
@@ -354,7 +315,7 @@ void UserWriteDataProtocol(void)
|
||||
|
||||
if(tmPDA > 99999999999) break;
|
||||
flowAccumulationInteger = (unsigned long int)(tmPDA/1000);
|
||||
flowAccumulationDecimal = (unsigned int)(tmPDA-(unsigned long long int)flowAccumulationInteger*1000);
|
||||
flowAccumulationDecimal = (u16)(tmPDA-(unsigned long long int)flowAccumulationInteger*1000);
|
||||
ConvertHEXToBCDArray(flowAccumulationInteger, &Dis1[ACC_INT1], 8, HIGH_FIRST);
|
||||
ConvertHEXToBCDArray(flowAccumulationDecimal, &Dis1[ACC_DOT1], 3, HIGH_FIRST);
|
||||
tmpLB = ReturnStartUnitBit(ACC_INT1);
|
||||
@@ -375,8 +336,8 @@ void UserWriteDataProtocol(void)
|
||||
#ifndef ENABLE_USER_UART
|
||||
#pragma message("[undefined] ENABLE_USER_UART")
|
||||
#elif(ENABLE_USER_UART)
|
||||
case STD_SLAVER_ID:
|
||||
FreeWriteWordByCom(&localAddress, SLAVER_ADDR, SLAVER_ADDR_WIDTH, SLAVER_ADDR_MAX, SLAVER_ADDR_MIN);
|
||||
case STD_SLAVER_ADDR:
|
||||
FreeWriteWordValidDataByCom(&localAddress, SLAVER_ADDR, SLAVER_ADDR_MAX, SLAVER_ADDR_MIN);
|
||||
if(parameterState == ABORD_OPERATION) break;
|
||||
BackupParameterToFlash();
|
||||
break;
|
||||
@@ -384,14 +345,14 @@ void UserWriteDataProtocol(void)
|
||||
#endif
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
case STD_OUT_FR_MIN:
|
||||
if(BusAdr[MBBuf.StartAddr+1] != STD_OUT_FR_MIN+1) return;
|
||||
WriteDWordByCom(&minFlowRate, MIN_FLOW, MIN_FLOW_WIDTH, maxFlowRate>>1, 0);
|
||||
case STD_OUT_MIN_FLOW:
|
||||
if(BusAdr[MBBuf.StartAddr+1] != STD_OUT_MIN_FLOW +1) return;
|
||||
WriteDWordValidDataByCom(&minFlowRate, OUT_MIN_FLOW, maxFlowRate>>1, 0);
|
||||
break;
|
||||
|
||||
case STD_OUT_FR_MAX:
|
||||
if(BusAdr[MBBuf.StartAddr+1] != STD_OUT_FR_MAX+1) return;
|
||||
WriteDWordByCom(&maxFlowRate, MAX_FLOW, MAX_FLOW_WIDTH, 0x7fffffff, 0);
|
||||
case STD_OUT_MAX_FLOW:
|
||||
if(BusAdr[MBBuf.StartAddr+1] != STD_OUT_MAX_FLOW+1) return;
|
||||
WriteDWordValidDataByCom(&maxFlowRate, OUT_MAX_FLOW, 0x7fffffff, 0);
|
||||
break;
|
||||
|
||||
//case STD_OUT_ANALOG_MIN: break;
|
||||
@@ -401,7 +362,7 @@ void UserWriteDataProtocol(void)
|
||||
#pragma message("[undefined] ENABLE_USER_GCF")
|
||||
#elif(ENABLE_USER_GCF)
|
||||
case STD_GCF:
|
||||
WriteWordByCom(&GDCFactor, GCF_B, GCF_B_WIDTH, GCF_PARAMETER_MAX, GCF_PARAMETER_MIN);
|
||||
WriteWordValidDataByCom(&GDCFactor, GCF_B, GCF_PARAMETER_MAX, GCF_PARAMETER_MIN);
|
||||
if(parameterState == ABORD_OPERATION) break;
|
||||
ComputeGCFFactor();
|
||||
break;
|
||||
@@ -409,7 +370,7 @@ void UserWriteDataProtocol(void)
|
||||
|
||||
//---------------------------------------------------------------------
|
||||
//case STD_FILTER_DEPTH: break;
|
||||
case STD_REPONSE_TIME: //WriteWordByCom(&factoryInterval, SAMPLE_PERIOD, SAMPLE_PERIOD_WIDTH, SAMPLE_PERIOD_MAX, SAMPLE_PERIOD_MIN); break;
|
||||
case STD_RESPONSE_TIME: //WriteWordByCom(&factoryInterval, SAMPLE_PERIOD, SAMPLE_PERIOD_WIDTH, SAMPLE_PERIOD_MAX, SAMPLE_PERIOD_MIN); break;
|
||||
SetWordCmdByCom(&CMDComPassword);
|
||||
if(parameterState == ABORD_OPERATION) break;
|
||||
|
||||
@@ -417,7 +378,7 @@ void UserWriteDataProtocol(void)
|
||||
if(parameterState == ABORD_OPERATION) break;
|
||||
|
||||
tempL.Word[0] = CMDComPassword;
|
||||
responseTimeIndex = (unsigned int)WriteShortParameterToEEPROM(RESPONSE_TIME, RESPONSE_TIME_WIDTH);
|
||||
responseTimeIndex = (u16)WriteShortParameterToMemory(RESPONSE_TIME);
|
||||
responseTime = SetupResponseTime(responseTimeIndex, RESPONSE_TIME_DEFAULT);
|
||||
break;
|
||||
|
||||
@@ -425,28 +386,21 @@ void UserWriteDataProtocol(void)
|
||||
#ifndef ENABLE_USER_OFFSET
|
||||
#pragma message("[undefined] ENABLE_USER_OFFSET")
|
||||
#elif(ENABLE_USER_OFFSET)
|
||||
case STD_GAS_OFFSET_C: WriteWordByCom(&offsetGas, OFFSET_GAS, OFFSET_GAS_WIDTH, OFFSET_MAX, OFFSET_MIN); break;
|
||||
case STD_GAS_OFFSET_C: WriteWordValidDataByCom(&offsetGas, GAS_OFFSET, OFFSET_MAX, OFFSET_MIN); break;
|
||||
#endif
|
||||
|
||||
//---------------------------------------------------------------------
|
||||
#ifndef ENABLE_A_TYPE_FLOWRATE
|
||||
#pragma message("[undefined] ENABLE_A_TYPE_FLOWRATE")
|
||||
#elif(ENABLE_A_TYPE_FLOWRATE)
|
||||
case STD_GAS_OFFSET_A: WriteWordByCom(&offsetGasA, OFFSET_A_GAS, OFFSET_A_GAS_WIDTH, OFFSET_A_MAX, OFFSET_A_MIN); break;
|
||||
case STD_GAS_OFFSET_A: WriteWordValidDataByCom(&offsetGasA, OFFSET_A_GAS, OFFSET_A_MAX, OFFSET_A_MIN); break;
|
||||
#endif
|
||||
|
||||
//---------------------------------------------------------------------
|
||||
// V2004
|
||||
#ifndef ENABLE_USER_SET_UNIT
|
||||
#pragma message("[undefined] ENABLE_USER_SET_UNIT")
|
||||
#elif(ENABLE_USER_SET_UNIT)
|
||||
case STD_UNIT:
|
||||
// SetWordCmdByCom(&CMDComPassword);
|
||||
// if(parameterState == ABORD_OPERATION) break;
|
||||
// if(CMDComPassword == flowUnit) break;
|
||||
// ConvertAllFlowRateAndSave(tempL.Word[0]);
|
||||
// break;
|
||||
|
||||
case STD_UNIT:
|
||||
SetWordCmdByCom(&CMDComPassword);
|
||||
if(parameterState == ABORD_OPERATION) break;
|
||||
if(CMDComPassword == flowUnit) break;
|
||||
@@ -455,9 +409,13 @@ void UserWriteDataProtocol(void)
|
||||
#endif
|
||||
|
||||
//--------------------------------------------------------------------------
|
||||
case STD_AIR_FACTOR: WriteWordByCom(&VHHParameterAir, VHH_AIR_PARA, VHH_AIR_PARA_WIDTH, 46728, 26728); break;
|
||||
case STD_FACTOR_VTH: WriteWordByCom(&VHHParameterScale, VHH_PARA_SCALE, VHH_PARA_SCALE_WIDTH, 65535, 0); break;
|
||||
|
||||
#ifndef ENABLE_GAS_RECOGNITION
|
||||
#pragma message("[undefined] ENABLE_GAS_RECOGNITION")
|
||||
#elif(ENABLE_GAS_RECOGNITION)
|
||||
case STD_AIR_FACTOR: WriteWordValidDataByCom(&airFactor, AIR_FACTOR, 46728, 26728); break;
|
||||
case STD_FACTOR_VTH: WriteWordValidDataByCom(&factorVth, FACTOR_VTH, 65535, 0); break;
|
||||
#endif
|
||||
|
||||
//--------------------------------------------------------------------------
|
||||
#ifndef ENABLE_ACCPULSE
|
||||
#pragma message("[undefined] ENABLE_ACCPULSE")
|
||||
@@ -468,13 +426,13 @@ void UserWriteDataProtocol(void)
|
||||
if(parameterState == ABORD_OPERATION) break;
|
||||
if((signed int)CMDComPassword > PULSE_UNIT_MAX) break;
|
||||
if((signed int)CMDComPassword < PULSE_UNIT_MIN) break;
|
||||
tempDev.Word[0] = CMDComPassword;
|
||||
factoryUnitPerPulse = (signed int)WriteParameterToEEPROM(PULSE_UNIT, PULSE_UNIT_WIDTH);
|
||||
tempL.Word[0] = CMDComPassword;
|
||||
factoryUnitPerPulse = (signed int)WriteShortParameterToMemory(PULSE_UNIT);
|
||||
lastRemaining = 0;
|
||||
Total[MIN_BIT] = 0;
|
||||
break;
|
||||
|
||||
case STD_IO_OUTPUT_LEVEL: WriteWordByCom(&PulseLevel, PULSE_LEVEL, PULSE_LEVEL_WIDTH, 1, 0); break;
|
||||
case STD_PULSE_LEVEL: WriteWordValidDataByCom(&PulseLevel, PULSE_LEVEL, 1, 0); break;
|
||||
#endif
|
||||
|
||||
//--------------------------------------------------------------------------
|
||||
@@ -489,7 +447,7 @@ void UserWriteDataProtocol(void)
|
||||
if(parameterState == ABORD_OPERATION) break;
|
||||
|
||||
tempL.Word[0] = CMDComPassword;
|
||||
factoryInterval = (unsigned int)WriteShortParameterToEEPROM(SAMPLE_PERIOD, SAMPLE_PERIOD_WIDTH);
|
||||
factoryInterval = (u16)WriteShortParameterToMemory(SAMPLE_PERIOD);
|
||||
samplingTiming = SetupResponseTime(factoryInterval, SAMPLE_PERIOD_DEFAULT);
|
||||
break;
|
||||
#endif
|
||||
@@ -500,7 +458,7 @@ void UserWriteDataProtocol(void)
|
||||
#elif(ENABLE_ALARM_ACC)
|
||||
case STD_ALARM_ACC: // 0x96 // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
if(BusAdr[MBBuf.StartAddr+1] != STD_ALARM_ACC+1) return;
|
||||
WriteDWordByCom(&alarmAcc, ALARM_ACC, ALARM_ACC_WIDTH, ALARM_ACC_MAX, ALARM_ACC_MIN);
|
||||
WriteDWordValidDataByCom(&alarmAcc, ALARM_ACC, ALARM_ACC_WIDTH, ALARM_ACC_MAX, ALARM_ACC_MIN);
|
||||
break;
|
||||
#endif
|
||||
//--------------------------------------------------------------------------
|
||||
@@ -509,8 +467,8 @@ void UserWriteDataProtocol(void)
|
||||
//case STD_ALARM_LOWER_FLOW 0x9A // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
//case STD_ALARM_FUN 0x9C // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ر<EFBFBD><D8B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
//case STD_ALARM_OUT_DELAY 0x9D // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ر<EFBFBD><D8B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ (<28><>λ<EFBFBD><CEBB>s)
|
||||
case STD_COM_DECIMAL: WriteWordByCom(&uartDecimalPoint, COM_DECIMAL_POINT, COM_DECIMAL_POINT_WIDTH, 4, 0); break;
|
||||
case STD_RECORD_TIME: WriteWordByCom(&historyPeriod, HISTORY_PERIOD, HISTORY_PERIOD_WIDTH, 720, 0); break;
|
||||
case STD_COM_DECIMAL: WriteWordValidDataByCom(&uartDecimalPoint, COM_DECIMAL, 4, 0); break;
|
||||
case STD_RECORD_TIME: WriteWordValidDataByCom(&recordTime, RECORD_TIME, 720, 0); break;
|
||||
//case STD_REVERSE_FR_MIN: break;
|
||||
//case STD_REVERSE_FR_MAX: break;
|
||||
|
||||
@@ -519,7 +477,7 @@ void UserWriteDataProtocol(void)
|
||||
#pragma message("[undefined] ENABLE_USER_I2C")
|
||||
#elif(ENABLE_USER_I2C)
|
||||
case STD_I2C_ADDR:
|
||||
FreeWriteWordByCom(&localAddress, SLAVER_ADDR, SLAVER_ADDR_WIDTH, SLAVER_ADDR_MAX, SLAVER_ADDR_MIN);
|
||||
FreeWriteWordValidDataByCom(&localAddress, SLAVER_ADDR, SLAVER_ADDR_WIDTH, SLAVER_ADDR_MAX, SLAVER_ADDR_MIN);
|
||||
I2CAddr = localAddress;
|
||||
if(parameterState == ABORD_OPERATION) break;
|
||||
BackupParameterToFlash();
|
||||
@@ -531,9 +489,9 @@ void UserWriteDataProtocol(void)
|
||||
//--------------------------------------------------------------------------
|
||||
|
||||
//case STD_I2C_CRC_MOD: break;
|
||||
case STD_TIMING_TXD_START: WriteWordByCom(&timingTxdStart, TIMING_TXD_START, TIMING_TXD_START_WIDTH, TIMING_TXD_START_MAX, TIMING_TXD_START_MIN); break;
|
||||
case STD_TIMING_TXD_LEN: WriteWordByCom(&timingTxdLen, TIMING_TXD_LEN, TIMING_TXD_LEN_WIDTH, TIMING_TXD_LEN_MAX, TIMING_TXD_LEN_MIN); break;
|
||||
case STD_TIMING_TXD_TIME: WriteWordByCom(&timingTxdTime, TIMING_TXD_TIME, TIMING_TXD_TIME_WIDTH, TIMING_TXD_TIME_MAX, 0); break;
|
||||
case STD_TIMING_TXD_START: WriteWordValidDataByCom(&timingTxdStart, TIMING_TXD_START, TIMING_TXD_START_MAX, TIMING_TXD_START_MIN); break;
|
||||
case STD_TIMING_TXD_LEN: WriteWordValidDataByCom(&timingTxdLen, TIMING_TXD_LEN, TIMING_TXD_LEN_MAX, TIMING_TXD_LEN_MIN); break;
|
||||
case STD_TIMING_TXD_TIME: WriteWordValidDataByCom(&timingTxdTime, TIMING_TXD_TIME, TIMING_TXD_TIME_MAX, 0); break;
|
||||
//case STD_PRESSURE_OFFSET 0xA9 // ѹ<><D1B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
//case STD_LORA_ADR 0xAA // LORA <20><>ַ
|
||||
//case STD_LORA_NETID 0xAB // LORA<52><41>·id
|
||||
@@ -544,16 +502,16 @@ void UserWriteDataProtocol(void)
|
||||
#ifndef ENABLE_KEY_FUNCTION
|
||||
#pragma message("[undefined] ENABLE_KEY_FUNCTION")
|
||||
#elif(ENABLE_KEY_FUNCTION)
|
||||
case STD_KEY_PASSWORD: WriteDWordByCom(&keyPassWord, KEY_PASSWORD, KEY_PASSWORD_WIDTH, 99999, 0); break; // 0xAE <20><><EFBFBD>ð<EFBFBD><C3B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
case STD_KEY_PASSWORD: WriteDWordValidDataByCom(&keyPassWord, KEY_PASSWORD, KEY_PASSWORD_WIDTH, 99999, 0); break; // 0xAE <20><><EFBFBD>ð<EFBFBD><C3B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#endif
|
||||
|
||||
//---------------------------------------------------------------------
|
||||
#ifndef ENABLE_LEAK_DETECT
|
||||
#pragma message("[undefined] ENABLE_LEAK_DETECT")
|
||||
#elif(ENABLE_LEAK_DETECT)
|
||||
case STD_LEAK_FR_MIN: WriteWordByCom(&minLeakFlowRate, MIN_LEAK_FLOW, MIN_LEAK_FLOW_WIDTH, MIN_LEAK_FLOW_MAX, MIN_LEAK_FLOW_MIN); break;
|
||||
case STD_LEAK_FR_MAX: WriteWordByCom(&maxLeakFlowRate, MAX_LEAK_FLOW, MAX_LEAK_FLOW_WIDTH, MAX_LEAK_FLOW_MAX, MAX_LEAK_FLOW_MIN); break;
|
||||
case STD_LEAK_TIMING: WriteWordByCom(&leakDetectTime, LEAK_TIME, LEAK_TIME_WIDTH, LEAK_TIME_MAX, 0); break;
|
||||
case STD_LEAK_FR_MIN: WriteWordValidDataByCom(&minLeakFlowRate, MIN_LEAK_FLOW, MIN_LEAK_FLOW_WIDTH, MIN_LEAK_FLOW_MAX, MIN_LEAK_FLOW_MIN); break;
|
||||
case STD_LEAK_FR_MAX: WriteWordValidDataByCom(&maxLeakFlowRate, MAX_LEAK_FLOW, MAX_LEAK_FLOW_WIDTH, MAX_LEAK_FLOW_MAX, MAX_LEAK_FLOW_MIN); break;
|
||||
case STD_LEAK_TIMING: WriteWordValidDataByCom(&leakDetectTime, LEAK_TIME, LEAK_TIME_WIDTH, LEAK_TIME_MAX, 0); break;
|
||||
#endif
|
||||
|
||||
//**************************************************************************
|
||||
@@ -600,14 +558,14 @@ void UserWriteDataProtocol(void)
|
||||
if(CMDComPassword == 0x0000AAFF)
|
||||
{
|
||||
tempL.Word[0] = voltageDetected[VHPA];
|
||||
densityFSParameter = (unsigned int)WriteShortParameterToEEPROM(DENSITY_FS_PARA, DENSITY_FS_PARA_WIDTH);
|
||||
densityFSParameter = (u16)WriteShortParameterToEEPROM(DENSITY_FS_PARA, DENSITY_FS_PARA_WIDTH);
|
||||
break;
|
||||
}
|
||||
// <20>Ͷ<EFBFBD>У
|
||||
if(CMDComPassword == 0x0000AA00)
|
||||
{
|
||||
tempL.Word[0] = voltageDetected[VHPA];
|
||||
VHHParameterAir = (unsigned int)WriteShortParameterToEEPROM(VHH_AIR_PARA, VHH_AIR_PARA_WIDTH);
|
||||
VHHParameterAir = (u16)WriteShortParameterToEEPROM(VHH_AIR_PARA, VHH_AIR_PARA_WIDTH);
|
||||
break;
|
||||
}
|
||||
#endif
|
||||
@@ -677,11 +635,11 @@ void UserWriteDataProtocol(void)
|
||||
DataPoint = &MAPPoint1;
|
||||
MBBuf.DataByte = BusAdr[MBBuf.StartAddr] - STD_MAP_SET1;
|
||||
DataPoint -= MBBuf.DataByte;
|
||||
WriteWordByCom(DataPoint, MAP_SET1 + MBBuf.DataByte * MAP_SET_WIDTH, MAP_SET_WIDTH, 256, 0);
|
||||
WriteWordValidDataByCom(DataPoint, MAP_SET1 + MBBuf.DataByte * REG_WORD_WIDTH, 256, 0);
|
||||
MBBuf.DataByte = 2;
|
||||
break;
|
||||
|
||||
case STD_DCOEF_NUM: WriteWordByCom(&dcoefNum, DCOEF_NUM, DCOEF_NUM_WIDTH, 20, 3); break;
|
||||
case STD_DCOEF_NUM: WriteWordValidDataByCom(&dcoefNum, DCOEF_NUM, 20, 3); break;
|
||||
case STD_DCOEF_NODE1:
|
||||
case STD_DCOEF_NODE2:
|
||||
case STD_DCOEF_NODE3:
|
||||
@@ -709,7 +667,6 @@ void UserWriteDataProtocol(void)
|
||||
if(parameterState == ABORD_OPERATION) return;
|
||||
|
||||
dcoefNode[I] = tmpLA;
|
||||
IDvalidTime = 0;
|
||||
HWState.EnableCheckCorr = 0;
|
||||
StoreDevCoefNodeAndValue(I);
|
||||
break;
|
||||
@@ -742,7 +699,6 @@ void UserWriteDataProtocol(void)
|
||||
if(tempL.Word[0] > METER_PARAMETER_MAX) return;
|
||||
if(tempL.Word[0] < METER_PARAMETER_MIN) return;
|
||||
|
||||
IDvalidTime = 0;
|
||||
dcoefVal[I] = tempL.Word[0];
|
||||
StoreDevCoefNodeAndValue(I);
|
||||
HWState.EnableCheckCorr = 0;
|
||||
|
||||
@@ -2,265 +2,357 @@
|
||||
#define __UserModbus_h__
|
||||
|
||||
//******************************************************************************
|
||||
#define meterSN1 MBReg[INX_030] //0x8000
|
||||
#define meterSN2 MBReg[INX_031] //0x8001
|
||||
#define meterSN3 MBReg[INX_032] //0x8002
|
||||
#define meterSN4 MBReg[INX_033] //0x8003
|
||||
#define meterSN5 MBReg[INX_034] //0x8004
|
||||
#define meterSN6 MBReg[INX_035] //0x8005
|
||||
#define alarmState MBReg[INX_036] //0x8006
|
||||
#define alarmState1 MBReg[INX_037] //0x8007
|
||||
#define alarmState2 MBReg[INX_038] //0x8008
|
||||
#define alarmState3 MBReg[INX_039] //0x8009
|
||||
#define flowRateH MBReg[INX_03A] //0x800A
|
||||
#define flowRateL MBReg[INX_03B] //0x800B
|
||||
#define flowAccumulationIntegerH MBReg[INX_03C] //0x800C
|
||||
#define flowAccumulationIntegerL MBReg[INX_03D] //0x800D
|
||||
#define flowAccumulationDecimal MBReg[INX_03E] //0x800E
|
||||
#define PCBTemperature MBReg[INX_03F] //0x800F
|
||||
#define GasTemperature MBReg[INX_040] //0x8010
|
||||
//#define MBReg[INX_041] //0x8011
|
||||
//#define MBReg[INX_042] //0x8012
|
||||
//#define MBReg[INX_043] //0x8013
|
||||
//#define MBReg[INX_044] //0x8014
|
||||
#define GASPressureH MBReg[INX_045] //0x8015
|
||||
#define GASPressureL MBReg[INX_046] //0x8016
|
||||
#define density MBReg[INX_047] //0x8017
|
||||
#define batteryCY MBReg[INX_048] //0x8018
|
||||
#define batteryVoltage MBReg[INX_049] //0x8019
|
||||
#define batteryDay MBReg[INX_04A] //0x801A
|
||||
#define batteryRDay MBReg[INX_04B] //0x801B
|
||||
#define ComBatteryCY MBReg[INX_04C] //0x801C
|
||||
#define ComBatteryVoltage MBReg[INX_04D] //0x801D
|
||||
#define ComBatteryDay MBReg[INX_04E] //0x801E
|
||||
#define ComBatteryRDay MBReg[INX_04F] //0x801F
|
||||
#define useMinte MBReg[INX_050] //0x8020
|
||||
#define useHourH MBReg[INX_051] //0x8021
|
||||
#define useHourL MBReg[INX_052] //0x8022
|
||||
#define VHHParameter MBReg[INX_053] //0x8023
|
||||
//#define MBReg[INX_054] //0x8024
|
||||
//#define MBReg[INX_055] //0x8025
|
||||
#define flowAccumulationHexH MBReg[INX_056] //0x8026
|
||||
#define flowAccumulationHexHM MBReg[INX_057] //0x8027
|
||||
#define flowAccumulationHexLM MBReg[INX_058] //0x8028
|
||||
#define flowAccumulationHexL MBReg[INX_059] //0x8029
|
||||
//#define MBReg[INX_05A] //0x802A
|
||||
//#define MBReg[INX_05B] //0x802B
|
||||
//#define MBReg[INX_05C] //0x802C
|
||||
//#define MBReg[INX_05D] //0x802D
|
||||
//#define MBReg[INX_05E] //0x802E
|
||||
#define densityFSParameter MBReg[INX_05F] //0x802F
|
||||
//#define MBReg[INX_060] //0x8030
|
||||
//#define MBReg[INX_061] //0x8031
|
||||
//#define MBReg[INX_062] //0x8032
|
||||
//#define MBReg[INX_063] //0x8033
|
||||
//#define MBReg[INX_064] //0x8034
|
||||
//#define MBReg[INX_065] //0x8035
|
||||
//#define MBReg[INX_066] //0x8036
|
||||
//#define MBReg[INX_067] //0x8037
|
||||
//#define MBReg[INX_068] //0x8038
|
||||
//#define MBReg[INX_069] //0x8039
|
||||
//#define MBReg[INX_06A] //0x803A
|
||||
//#define MBReg[INX_06B] //0x803B
|
||||
//#define MBReg[INX_06C] //0x803C
|
||||
//#define MBReg[INX_06D] //0x803D
|
||||
//#define MBReg[INX_06E] //0x803E
|
||||
//#define MBReg[INX_06F] //0x803F
|
||||
//#define MBReg[INX_070] //0x8040
|
||||
//#define MBReg[INX_071] //0x8041
|
||||
//#define MBReg[INX_072] //0x8042
|
||||
//#define MBReg[INX_073] //0x8043
|
||||
//#define MBReg[INX_074] //0x8044
|
||||
//#define MBReg[INX_075] //0x8045
|
||||
//#define MBReg[INX_076] //0x8046
|
||||
//#define MBReg[INX_077] //0x8047
|
||||
//#define MBReg[INX_078] //0x8048
|
||||
//#define MBReg[INX_079] //0x8049
|
||||
//#define MBReg[INX_07A] //0x804A
|
||||
//#define MBReg[INX_07B] //0x804B
|
||||
//#define MBReg[INX_07C] //0x804C
|
||||
//#define MBReg[INX_07D] //0x804D
|
||||
#define softCRCCode MBReg[INX_07E] //0x804E
|
||||
#define softVersion MBReg[INX_07F] //0x804F
|
||||
#define protocol MBReg[INX_080] //0x8050
|
||||
#define localAddress MBReg[INX_081] //0x8051
|
||||
#define baudRate MBReg[INX_082] //0x8052
|
||||
#define minFlowRateH MBReg[INX_083] //0x8053
|
||||
#define minFlowRateL MBReg[INX_084] //0x8054
|
||||
#define maxFlowRateH MBReg[INX_085] //0x8055
|
||||
#define maxFlowRateL MBReg[INX_086] //0x8056
|
||||
#define minAnalogOutputH MBReg[INX_087] //0x8057
|
||||
#define minAnalogOutputL MBReg[INX_088] //0x8058
|
||||
#define maxAnalogOutputH MBReg[INX_089] //0x8059
|
||||
#define maxAnalogOutputL MBReg[INX_08A] //0x805A
|
||||
#define GDCFactor MBReg[INX_08B] //0x805B
|
||||
#define filterTime MBReg[INX_08C] //0x805C
|
||||
#define responseTime MBReg[INX_08D] //0x805D
|
||||
#define offsetGas MBReg[INX_08E] //0x805E
|
||||
#define offsetGasA MBReg[INX_08F] //0x805F
|
||||
#define flowUnit MBReg[INX_090] //0x8060
|
||||
#define VHHParameterAir MBReg[INX_091] //0x8061
|
||||
#define VHHParameterScale MBReg[INX_092] //0x8062
|
||||
#define factoryUnitPerPulse MBReg[INX_093] //0x8063
|
||||
#define PulseLevel MBReg[INX_094] //0x8064
|
||||
#define samplingTiming MBReg[INX_095] //0x8065
|
||||
#define alarmAccH MBReg[INX_096] //0x8066
|
||||
#define alarmAccL MBReg[INX_097] //0x8067
|
||||
#define alarmUpperFlowRateH MBReg[INX_098] //0x8068
|
||||
#define alarmUpperFlowRateL MBReg[INX_099] //0x8069
|
||||
#define alarmLowerFlowRateH MBReg[INX_09A] //0x806A
|
||||
#define alarmLowerFlowRateL MBReg[INX_09B] //0x806B
|
||||
#define alarmFunction MBReg[INX_09C] //0x806C
|
||||
#define alarmOutDelay MBReg[INX_09D] //0x806D
|
||||
#define uartDecimalPoint MBReg[INX_09E] //0x806E
|
||||
#define historyPeriod MBReg[INX_09F] //0x806F
|
||||
#define reverseFlowRateMinH MBReg[INX_0A0] //0x8070
|
||||
#define reverseFlowRateMinL MBReg[INX_0A1] //0x8071
|
||||
#define reverseFlowRateMaxH MBReg[INX_0A2] //0x8072
|
||||
#define reverseFlowRateMaxL MBReg[INX_0A3] //0x8073
|
||||
#define I2CAddr MBReg[INX_0A4] //0x8074
|
||||
#define I2CCrcMod MBReg[INX_0A5] //0x8075
|
||||
#define timingTxdStart MBReg[INX_0A6] //0x8076
|
||||
#define timingTxdLen MBReg[INX_0A7] //0x8077
|
||||
#define timingTxdTime MBReg[INX_0A8] //0x8078
|
||||
#define pressureOffset MBReg[INX_0A9] //0x8079
|
||||
//#define MBReg[INX_0AA] //0x807A
|
||||
//#define MBReg[INX_0AB] //0x807B
|
||||
//#define MBReg[INX_0AC] //0x807C
|
||||
//#define MBReg[INX_0AD] //0x807D
|
||||
#define keyPassWordH MBReg[INX_0AE] //0x807E
|
||||
#define keyPassWordL MBReg[INX_0AF] //0x807F
|
||||
//#define MBReg[INX_0B0] //0x8080
|
||||
//#define MBReg[INX_0B1] //0x8081
|
||||
//#define MBReg[INX_0B2] //0x8082
|
||||
//#define MBReg[INX_0B3] //0x8083
|
||||
//#define MBReg[INX_0B4] //0x8084
|
||||
//#define MBReg[INX_0B5] //0x8085
|
||||
//#define MBReg[INX_0B6] //0x8086
|
||||
//#define MBReg[INX_0B7] //0x8088
|
||||
//#define MBReg[INX_0B8] //0x8088
|
||||
//#define MBReg[INX_0B9] //0x8089
|
||||
//#define MBReg[INX_0BA] //0x808A
|
||||
//#define MBReg[INX_0BB] //0x808B
|
||||
//#define MBReg[INX_0BC] //0x808C
|
||||
//#define MBReg[INX_0BD] //0x808D
|
||||
//#define MBReg[INX_0BE] //0x808E
|
||||
//#define MBReg[INX_0BF] //0x808F
|
||||
//#define MBReg[INX_0C0] //0x8090
|
||||
//#define MBReg[INX_0C1] //0x8091
|
||||
//#define MBReg[INX_0C2] //0x8092
|
||||
//#define MBReg[INX_0C3] //0x8093
|
||||
//#define MBReg[INX_0C4] //0x8094
|
||||
//#define MBReg[INX_0C5] //0x8095
|
||||
//#define MBReg[INX_0C6] //0x8099
|
||||
//#define MBReg[INX_0C7] //0x8097
|
||||
//#define MBReg[INX_0C8] //0x8098
|
||||
//#define MBReg[INX_0C9] //0x8099
|
||||
//#define MBReg[INX_0CA] //0x809A
|
||||
//#define MBReg[INX_0CB] //0x809B
|
||||
//#define MBReg[INX_0CC] //0x809C
|
||||
//#define MBReg[INX_0CD] //0x809D
|
||||
//#define MBReg[INX_0CE] //0x809E
|
||||
//#define MBReg[INX_0CF] //0x809F
|
||||
//#define MBReg[INX_0D0] //0x80A0
|
||||
//#define MBReg[INX_0D1] //0x80A1
|
||||
//#define MBReg[INX_0D2] //0x80A2
|
||||
//#define MBReg[INX_0D3] //0x80A3
|
||||
//#define MBReg[INX_0D4] //0x80A4
|
||||
//#define MBReg[INX_0D5] //0x80A5
|
||||
//#define MBReg[INX_0D6] //0x80A6
|
||||
//#define MBReg[INX_0D7] //0x80A7
|
||||
//#define MBReg[INX_0D8] //0x80A8
|
||||
//#define MBReg[INX_0D9] //0x80A9
|
||||
#define minLeakFlowRate MBReg[INX_0DA] //0x80AA
|
||||
#define maxLeakFlowRate MBReg[INX_0DB] //0x80AB
|
||||
#define leakDetectTime MBReg[INX_0DC] //0x80AC
|
||||
//#define MBReg[INX_0DD] //0x80AD
|
||||
#define GDCFactorAType MBReg[INX_0DE] //0x80AE
|
||||
//#define MBReg[INX_0DF] //0x80AF
|
||||
//#define MBReg[INX_0E0] //0x80B0
|
||||
//#define MBReg[INX_0E1] //0x80B1
|
||||
//#define MBReg[INX_0E2] //0x80B2
|
||||
//#define MBReg[INX_0E3] //0x80B3
|
||||
//#define MBReg[INX_0E4] //0x80B4
|
||||
//#define MBReg[INX_0E5] //0x80B5
|
||||
//#define MBReg[INX_0E6] //0x80B6
|
||||
//#define MBReg[INX_0E7] //0x80BB
|
||||
//#define MBReg[INX_0E8] //0x80B8
|
||||
//#define MBReg[INX_0E9] //0x80B9
|
||||
//#define MBReg[INX_0EA] //0x80BA
|
||||
//#define MBReg[INX_0EB] //0x80BB
|
||||
//#define MBReg[INX_0EC] //0x80BC
|
||||
//#define MBReg[INX_0ED] //0x80BD
|
||||
//#define MBReg[INX_0EE] //0x80BE
|
||||
//#define MBReg[INX_0EF] //0x80BF
|
||||
#define CMDCalOffset MBReg[INX_0F0] //0x80C0
|
||||
#define CMDClrRecord MBReg[INX_0F1] //0x80C1
|
||||
//#define MBReg[INX_0F2] //0x80C2
|
||||
//#define MBReg[INX_0F3] //0x80C3
|
||||
//#define MBReg[INX_0F4] //0x80C4
|
||||
//#define MBReg[INX_0F5] //0x80C5
|
||||
//#define MBReg[INX_0F6] //0x80C6
|
||||
//#define MBReg[INX_0F7] //0x80C7
|
||||
//#define MBReg[INX_0F8] //0x80C8
|
||||
//#define MBReg[INX_0F9] //0x80C9
|
||||
//#define MBReg[INX_0FA] //0x80CA
|
||||
//#define MBReg[INX_0FB] //0x80CB
|
||||
//#define MBReg[INX_0FC] //0x80CC
|
||||
//#define MBReg[INX_0FD] //0x80CD
|
||||
//#define MBReg[INX_0FE] //0x80CE
|
||||
#define CMDComPassword MBReg[INX_0FF] //0x80CF
|
||||
#define MAPPoint1 MBReg[INX_100] //0x80D0
|
||||
#define MAPPoint2 MBReg[INX_101] //0x80D1
|
||||
#define MAPPoint3 MBReg[INX_102] //0x80D2
|
||||
#define MAPPoint4 MBReg[INX_103] //0x80D3
|
||||
#define MAPPoint5 MBReg[INX_104] //0x80D4
|
||||
#define MAPPoint6 MBReg[INX_105] //0x80D5
|
||||
#define MAPPoint7 MBReg[INX_106] //0x80D6
|
||||
#define MAPPoint8 MBReg[INX_107] //0x80D7
|
||||
#define MAPPoint9 MBReg[INX_108] //0x80D8
|
||||
#define MAPPoint10 MBReg[INX_109] //0x80D9
|
||||
#define MAPPoint11 MBReg[INX_10A] //0x80DA
|
||||
#define MAPPoint12 MBReg[INX_10B] //0x80DB
|
||||
#define MAPPoint13 MBReg[INX_10C] //0x80DC
|
||||
#define MAPPoint14 MBReg[INX_10D] //0x80DD
|
||||
#define MAPPoint15 MBReg[INX_10E] //0x80DE
|
||||
#define MAPPoint16 MBReg[INX_10F] //0x80DF
|
||||
#define MAPPoint17 MBReg[INX_110] //0x80E0
|
||||
#define MAPPoint18 MBReg[INX_111] //0x80E1
|
||||
#define MAPPoint19 MBReg[INX_112] //0x80E2
|
||||
#define MAPPoint20 MBReg[INX_113] //0x80E3
|
||||
#define MAPPoint21 MBReg[INX_114] //0x80E4
|
||||
#define MAPPoint22 MBReg[INX_115] //0x80E5
|
||||
#define MAPPoint23 MBReg[INX_116] //0x80E6
|
||||
#define MAPPoint24 MBReg[INX_117] //0x80E7
|
||||
#define MAPPoint25 MBReg[INX_118] //0x80E8
|
||||
#define MAPPoint26 MBReg[INX_119] //0x80E9
|
||||
#define MAPPoint27 MBReg[INX_11A] //0x80EA
|
||||
#define MAPPoint28 MBReg[INX_11B] //0x80EB
|
||||
#define MAPPoint29 MBReg[INX_11C] //0x80EC
|
||||
#define MAPPoint30 MBReg[INX_11D] //0x80ED
|
||||
#define MAPPoint31 MBReg[INX_11E] //0x80EE
|
||||
#define MAPPoint32 MBReg[INX_11F] //0x80EF
|
||||
#define MAPPoint33 MBReg[INX_120] //0x80F0
|
||||
#define MAPPoint34 MBReg[INX_121] //0x80F1
|
||||
#define MAPPoint35 MBReg[INX_122] //0x80F2
|
||||
#define MAPPoint36 MBReg[INX_123] //0x80F3
|
||||
#define MAPPoint37 MBReg[INX_124] //0x80F4
|
||||
#define MAPPoint38 MBReg[INX_125] //0x80F5
|
||||
#define MAPPoint39 MBReg[INX_126] //0x80F6
|
||||
#define MAPPoint40 MBReg[INX_127] //0x80F7
|
||||
#define MAPPoint41 MBReg[INX_128] //0x80F8
|
||||
#define MAPPoint42 MBReg[INX_129] //0x80F9
|
||||
#define MAPPoint43 MBReg[INX_12A] //0x80FA
|
||||
#define MAPPoint44 MBReg[INX_12B] //0x80FB
|
||||
#define MAPPoint45 MBReg[INX_12C] //0x80FC
|
||||
#define MAPPoint46 MBReg[INX_12D] //0x80FD
|
||||
#define MAPPoint47 MBReg[INX_12E] //0x80FE
|
||||
#define MAPPoint48 MBReg[INX_12F] //0x80FF
|
||||
#define meterSN1 MBReg[INX_030]
|
||||
#define meterSN2 MBReg[INX_031]
|
||||
#define meterSN3 MBReg[INX_032]
|
||||
#define meterSN4 MBReg[INX_033]
|
||||
#define meterSN5 MBReg[INX_034]
|
||||
#define meterSN6 MBReg[INX_035]
|
||||
#define alarmState MBReg[INX_036]
|
||||
#define alarmState1 MBReg[INX_037]
|
||||
#define alarmState2 MBReg[INX_038]
|
||||
#define alarmState3 MBReg[INX_039]
|
||||
#define flowRateH MBReg[INX_03A]
|
||||
#define flowRateL MBReg[INX_03B]
|
||||
#define flowAccumulationIntegerH MBReg[INX_03C]
|
||||
#define flowAccumulationIntegerL MBReg[INX_03D]
|
||||
#define flowAccumulationDecimal MBReg[INX_03E]
|
||||
#define PCBTemperature MBReg[INX_03F]
|
||||
#define GasTemperature MBReg[INX_040]
|
||||
//#define MBReg[INX_041]
|
||||
//#define MBReg[INX_042]
|
||||
//#define MBReg[INX_043]
|
||||
//#define MBReg[INX_044]
|
||||
#define GASPressureH MBReg[INX_045]
|
||||
#define GASPressureL MBReg[INX_046]
|
||||
#define density MBReg[INX_047]
|
||||
#define batteryCY MBReg[INX_048]
|
||||
#define batteryVoltage MBReg[INX_049]
|
||||
#define batteryDay MBReg[INX_04A]
|
||||
#define batteryRDay MBReg[INX_04B]
|
||||
#define ComBatteryCY MBReg[INX_04C]
|
||||
#define ComBatteryVoltage MBReg[INX_04D]
|
||||
#define ComBatteryDay MBReg[INX_04E]
|
||||
#define ComBatteryRDay MBReg[INX_04F]
|
||||
#define useMinte MBReg[INX_050]
|
||||
#define useHourH MBReg[INX_051]
|
||||
#define useHourL MBReg[INX_052]
|
||||
#define VHHParameter MBReg[INX_053]
|
||||
//#define MBReg[INX_054]
|
||||
//#define MBReg[INX_055]
|
||||
#define flowAccumulationHexH MBReg[INX_056]
|
||||
#define flowAccumulationHexHM MBReg[INX_057]
|
||||
#define flowAccumulationHexLM MBReg[INX_058]
|
||||
#define flowAccumulationHexL MBReg[INX_059]
|
||||
//#define MBReg[INX_05A]
|
||||
//#define MBReg[INX_05B]
|
||||
//#define MBReg[INX_05C]
|
||||
//#define MBReg[INX_05D]
|
||||
//#define MBReg[INX_05E]
|
||||
#define densityFSParameter MBReg[INX_05F]
|
||||
//#define MBReg[INX_060]
|
||||
//#define MBReg[INX_061]
|
||||
//#define MBReg[INX_062]
|
||||
//#define MBReg[INX_063]
|
||||
//#define MBReg[INX_064]
|
||||
//#define MBReg[INX_065]
|
||||
//#define MBReg[INX_066]
|
||||
//#define MBReg[INX_067]
|
||||
//#define MBReg[INX_068]
|
||||
//#define MBReg[INX_069]
|
||||
//#define MBReg[INX_06A]
|
||||
//#define MBReg[INX_06B]
|
||||
//#define MBReg[INX_06C]
|
||||
//#define MBReg[INX_06D]
|
||||
//#define MBReg[INX_06E]
|
||||
//#define MBReg[INX_06F]
|
||||
//#define MBReg[INX_070]
|
||||
//#define MBReg[INX_071]
|
||||
//#define MBReg[INX_072]
|
||||
//#define MBReg[INX_073]
|
||||
//#define MBReg[INX_074]
|
||||
//#define MBReg[INX_075]
|
||||
//#define MBReg[INX_076]
|
||||
//#define MBReg[INX_077]
|
||||
//#define MBReg[INX_078]
|
||||
//#define MBReg[INX_079]
|
||||
//#define MBReg[INX_07A]
|
||||
//#define MBReg[INX_07B]
|
||||
//#define MBReg[INX_07C]
|
||||
//#define MBReg[INX_07D]
|
||||
#define softCRCCode MBReg[INX_07E]
|
||||
#define softVersion MBReg[INX_07F]
|
||||
#define protocol MBReg[INX_080]
|
||||
#define localAddress MBReg[INX_081]
|
||||
#define baudRate MBReg[INX_082]
|
||||
#define minFlowRateH MBReg[INX_083]
|
||||
#define minFlowRateL MBReg[INX_084]
|
||||
#define maxFlowRateH MBReg[INX_085]
|
||||
#define maxFlowRateL MBReg[INX_086]
|
||||
#define minAnalogOutputH MBReg[INX_087]
|
||||
#define minAnalogOutputL MBReg[INX_088]
|
||||
#define maxAnalogOutputH MBReg[INX_089]
|
||||
#define maxAnalogOutputL MBReg[INX_08A]
|
||||
#define GDCFactor MBReg[INX_08B]
|
||||
#define filterTime MBReg[INX_08C]
|
||||
#define responseTime MBReg[INX_08D]
|
||||
#define offsetGas MBReg[INX_08E]
|
||||
#define offsetGasA MBReg[INX_08F]
|
||||
#define flowUnit MBReg[INX_090]
|
||||
#define airFactor MBReg[INX_091]
|
||||
#define factorVth MBReg[INX_092]
|
||||
#define factoryUnitPerPulse MBReg[INX_093]
|
||||
#define PulseLevel MBReg[INX_094]
|
||||
#define samplingTiming MBReg[INX_095]
|
||||
#define alarmAccH MBReg[INX_096]
|
||||
#define alarmAccL MBReg[INX_097]
|
||||
#define alarmUpperFlowRateH MBReg[INX_098]
|
||||
#define alarmUpperFlowRateL MBReg[INX_099]
|
||||
#define alarmLowerFlowRateH MBReg[INX_09A]
|
||||
#define alarmLowerFlowRateL MBReg[INX_09B]
|
||||
#define alarmFunction MBReg[INX_09C]
|
||||
#define alarmOutDelay MBReg[INX_09D]
|
||||
#define uartDecimalPoint MBReg[INX_09E]
|
||||
#define recordTime MBReg[INX_09F]
|
||||
#define reverseFlowRateMinH MBReg[INX_0A0]
|
||||
#define reverseFlowRateMinL MBReg[INX_0A1]
|
||||
#define reverseFlowRateMaxH MBReg[INX_0A2]
|
||||
#define reverseFlowRateMaxL MBReg[INX_0A3]
|
||||
#define I2CAddr MBReg[INX_0A4]
|
||||
#define I2CCrcMod MBReg[INX_0A5]
|
||||
#define timingTxdStart MBReg[INX_0A6]
|
||||
#define timingTxdLen MBReg[INX_0A7]
|
||||
#define timingTxdTime MBReg[INX_0A8]
|
||||
#define pressureOffset MBReg[INX_0A9]
|
||||
//#define MBReg[INX_0AA]
|
||||
//#define MBReg[INX_0AB]
|
||||
//#define MBReg[INX_0AC]
|
||||
//#define MBReg[INX_0AD]
|
||||
#define keyPassWordH MBReg[INX_0AE]
|
||||
#define keyPassWordL MBReg[INX_0AF]
|
||||
//#define MBReg[INX_0B0]
|
||||
//#define MBReg[INX_0B1]
|
||||
//#define MBReg[INX_0B2]
|
||||
//#define MBReg[INX_0B3]
|
||||
//#define MBReg[INX_0B4]
|
||||
//#define MBReg[INX_0B5]
|
||||
//#define MBReg[INX_0B6]
|
||||
//#define MBReg[INX_0B7]
|
||||
//#define MBReg[INX_0B8]
|
||||
//#define MBReg[INX_0B9]
|
||||
//#define MBReg[INX_0BA]
|
||||
//#define MBReg[INX_0BB]
|
||||
//#define MBReg[INX_0BC]
|
||||
//#define MBReg[INX_0BD]
|
||||
//#define MBReg[INX_0BE]
|
||||
//#define MBReg[INX_0BF]
|
||||
//#define MBReg[INX_0C0]
|
||||
//#define MBReg[INX_0C1]
|
||||
//#define MBReg[INX_0C2]
|
||||
//#define MBReg[INX_0C3]
|
||||
//#define MBReg[INX_0C4]
|
||||
//#define MBReg[INX_0C5]
|
||||
//#define MBReg[INX_0C6]
|
||||
//#define MBReg[INX_0C7]
|
||||
//#define MBReg[INX_0C8]
|
||||
//#define MBReg[INX_0C9]
|
||||
//#define MBReg[INX_0CA]
|
||||
//#define MBReg[INX_0CB]
|
||||
//#define MBReg[INX_0CC]
|
||||
//#define MBReg[INX_0CD]
|
||||
//#define MBReg[INX_0CE]
|
||||
//#define MBReg[INX_0CF]
|
||||
//#define MBReg[INX_0D0]
|
||||
//#define MBReg[INX_0D1]
|
||||
//#define MBReg[INX_0D2]
|
||||
//#define MBReg[INX_0D3]
|
||||
//#define MBReg[INX_0D4]
|
||||
//#define MBReg[INX_0D5]
|
||||
//#define MBReg[INX_0D6]
|
||||
//#define MBReg[INX_0D7]
|
||||
//#define MBReg[INX_0D8]
|
||||
//#define MBReg[INX_0D9]
|
||||
#define minLeakFlowRate MBReg[INX_0DA]
|
||||
#define maxLeakFlowRate MBReg[INX_0DB]
|
||||
#define leakDetectTime MBReg[INX_0DC]
|
||||
//#define MBReg[INX_0DD]
|
||||
#define GDCFactorAType MBReg[INX_0DE]
|
||||
//#define MBReg[INX_0DF]
|
||||
//#define MBReg[INX_0E0]
|
||||
//#define MBReg[INX_0E1]
|
||||
//#define MBReg[INX_0E2]
|
||||
//#define MBReg[INX_0E3]
|
||||
//#define MBReg[INX_0E4]
|
||||
//#define MBReg[INX_0E5]
|
||||
//#define MBReg[INX_0E6]
|
||||
//#define MBReg[INX_0E7]
|
||||
//#define MBReg[INX_0E8]
|
||||
//#define MBReg[INX_0E9]
|
||||
//#define MBReg[INX_0EA]
|
||||
//#define MBReg[INX_0EB]
|
||||
//#define MBReg[INX_0EC]
|
||||
//#define MBReg[INX_0ED]
|
||||
//#define MBReg[INX_0EE]
|
||||
//#define MBReg[INX_0EF]
|
||||
#define CMDCalOffset MBReg[INX_0F0]
|
||||
#define CMDClrRecord MBReg[INX_0F1]
|
||||
//#define MBReg[INX_0F2]
|
||||
//#define MBReg[INX_0F3]
|
||||
//#define MBReg[INX_0F4]
|
||||
//#define MBReg[INX_0F5]
|
||||
//#define MBReg[INX_0F6]
|
||||
//#define MBReg[INX_0F7]
|
||||
//#define MBReg[INX_0F8]
|
||||
//#define MBReg[INX_0F9]
|
||||
//#define MBReg[INX_0FA]
|
||||
//#define MBReg[INX_0FB]
|
||||
//#define MBReg[INX_0FC]
|
||||
//#define MBReg[INX_0FD]
|
||||
//#define MBReg[INX_0FE]
|
||||
#define CMDComPassword MBReg[INX_0FF]
|
||||
#define MAPPoint1 MBReg[INX_100]
|
||||
#define MAPPoint2 MBReg[INX_101]
|
||||
#define MAPPoint3 MBReg[INX_102]
|
||||
#define MAPPoint4 MBReg[INX_103]
|
||||
#define MAPPoint5 MBReg[INX_104]
|
||||
#define MAPPoint6 MBReg[INX_105]
|
||||
#define MAPPoint7 MBReg[INX_106]
|
||||
#define MAPPoint8 MBReg[INX_107]
|
||||
#define MAPPoint9 MBReg[INX_108]
|
||||
#define MAPPoint10 MBReg[INX_109]
|
||||
#define MAPPoint11 MBReg[INX_10A]
|
||||
#define MAPPoint12 MBReg[INX_10B]
|
||||
#define MAPPoint13 MBReg[INX_10C]
|
||||
#define MAPPoint14 MBReg[INX_10D]
|
||||
#define MAPPoint15 MBReg[INX_10E]
|
||||
#define MAPPoint16 MBReg[INX_10F]
|
||||
#define MAPPoint17 MBReg[INX_110]
|
||||
#define MAPPoint18 MBReg[INX_111]
|
||||
#define MAPPoint19 MBReg[INX_112]
|
||||
#define MAPPoint20 MBReg[INX_113]
|
||||
#define MAPPoint21 MBReg[INX_114]
|
||||
#define MAPPoint22 MBReg[INX_115]
|
||||
#define MAPPoint23 MBReg[INX_116]
|
||||
#define MAPPoint24 MBReg[INX_117]
|
||||
#define MAPPoint25 MBReg[INX_118]
|
||||
#define MAPPoint26 MBReg[INX_119]
|
||||
#define MAPPoint27 MBReg[INX_11A]
|
||||
#define MAPPoint28 MBReg[INX_11B]
|
||||
#define MAPPoint29 MBReg[INX_11C]
|
||||
#define MAPPoint30 MBReg[INX_11D]
|
||||
#define MAPPoint31 MBReg[INX_11E]
|
||||
#define MAPPoint32 MBReg[INX_11F]
|
||||
#define MAPPoint33 MBReg[INX_120]
|
||||
#define MAPPoint34 MBReg[INX_121]
|
||||
#define MAPPoint35 MBReg[INX_122]
|
||||
#define MAPPoint36 MBReg[INX_123]
|
||||
#define MAPPoint37 MBReg[INX_124]
|
||||
#define MAPPoint38 MBReg[INX_125]
|
||||
#define MAPPoint39 MBReg[INX_126]
|
||||
#define MAPPoint40 MBReg[INX_127]
|
||||
#define MAPPoint41 MBReg[INX_128]
|
||||
#define MAPPoint42 MBReg[INX_129]
|
||||
#define MAPPoint43 MBReg[INX_12A]
|
||||
#define MAPPoint44 MBReg[INX_12B]
|
||||
#define MAPPoint45 MBReg[INX_12C]
|
||||
#define MAPPoint46 MBReg[INX_12D]
|
||||
#define MAPPoint47 MBReg[INX_12E]
|
||||
#define MAPPoint48 MBReg[INX_12F]
|
||||
#define dcoefNum MBReg[INX_130]
|
||||
//--------------------------------------------------------
|
||||
//#define MBReg[INX_131]
|
||||
//#define MBReg[INX_132]
|
||||
//#define MBReg[INX_133]
|
||||
//#define MBReg[INX_134]
|
||||
//#define MBReg[INX_135]
|
||||
//#define MBReg[INX_136]
|
||||
//#define MBReg[INX_137]
|
||||
//#define MBReg[INX_138]
|
||||
//#define MBReg[INX_139]
|
||||
//#define MBReg[INX_13A]
|
||||
//#define MBReg[INX_13B]
|
||||
//#define MBReg[INX_13C]
|
||||
//#define MBReg[INX_13D]
|
||||
//#define MBReg[INX_13E]
|
||||
//#define MBReg[INX_13F]
|
||||
//#define MBReg[INX_140]
|
||||
//#define MBReg[INX_141]
|
||||
//#define MBReg[INX_142]
|
||||
//#define MBReg[INX_143]
|
||||
//#define MBReg[INX_144]
|
||||
//#define MBReg[INX_145]
|
||||
//#define MBReg[INX_146]
|
||||
//#define MBReg[INX_147]
|
||||
//#define MBReg[INX_148]
|
||||
//#define MBReg[INX_149]
|
||||
//#define MBReg[INX_14A]
|
||||
//#define MBReg[INX_14B]
|
||||
//#define MBReg[INX_14C]
|
||||
//#define MBReg[INX_14D]
|
||||
//#define MBReg[INX_14E]
|
||||
//#define MBReg[INX_14F]
|
||||
//#define MBReg[INX_150]
|
||||
//#define MBReg[INX_151]
|
||||
//#define MBReg[INX_152]
|
||||
//#define MBReg[INX_153]
|
||||
//#define MBReg[INX_154]
|
||||
//#define MBReg[INX_155]
|
||||
//#define MBReg[INX_156]
|
||||
//#define MBReg[INX_157]
|
||||
//#define MBReg[INX_158]
|
||||
//#define MBReg[INX_159]
|
||||
//#define MBReg[INX_15A]
|
||||
//#define MBReg[INX_15B]
|
||||
//#define MBReg[INX_15C]
|
||||
//#define MBReg[INX_15D]
|
||||
//#define MBReg[INX_15E]
|
||||
//#define MBReg[INX_15F]
|
||||
//#define MBReg[INX_160]
|
||||
//#define MBReg[INX_161]
|
||||
//#define MBReg[INX_162]
|
||||
//#define MBReg[INX_163]
|
||||
//#define MBReg[INX_164]
|
||||
//#define MBReg[INX_165]
|
||||
//#define MBReg[INX_166]
|
||||
//#define MBReg[INX_167]
|
||||
//#define MBReg[INX_168]
|
||||
//#define MBReg[INX_169]
|
||||
//#define MBReg[INX_16A]
|
||||
//#define MBReg[INX_16B]
|
||||
//#define MBReg[INX_16C]
|
||||
//#define MBReg[INX_16D]
|
||||
//#define MBReg[INX_16E]
|
||||
//#define MBReg[INX_16F]
|
||||
//#define MBReg[INX_170]
|
||||
//#define MBReg[INX_171]
|
||||
//#define MBReg[INX_172]
|
||||
//#define MBReg[INX_173]
|
||||
//#define MBReg[INX_174]
|
||||
//#define MBReg[INX_175]
|
||||
//#define MBReg[INX_176]
|
||||
//#define MBReg[INX_177]
|
||||
//#define MBReg[INX_178]
|
||||
//#define MBReg[INX_179]
|
||||
//#define MBReg[INX_17A]
|
||||
//#define MBReg[INX_17B]
|
||||
//#define MBReg[INX_17C]
|
||||
//#define MBReg[INX_17D]
|
||||
//#define MBReg[INX_17E]
|
||||
//#define MBReg[INX_17F]
|
||||
//#define MBReg[INX_180]
|
||||
|
||||
|
||||
/*****************************************************************************************/
|
||||
|
||||
extern u16 MBReg[];
|
||||
|
||||
#define GET_MBWORD_IDX(var) ((u32)(&(var) - MBReg)) //<2F><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD>varΪMBReg[index]<5D>ı<EFBFBD><C4B1><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define GET_MBWORD_ADDR(var) (MEM_ADDR_REG_0X30+GET_MBWORD_IDX(var)*REG_WORD_WIDTH)//<2F><><EFBFBD><EFBFBD> <20><> <20><>ַvarΪMBReg[index]<5D>ı<EFBFBD><C4B1><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define ADR_MBWORD_IDX(adr) (((u32)(adr) - MEM_ADDR_REG_0X30) / REG_WORD_WIDTH)//<2F><>ַ <20><> <20><><EFBFBD><EFBFBD> adrΪMBReg[index]<5D><>ʵ<EFBFBD><CAB5><EFBFBD>ڴ<EFBFBD><DAB4><EFBFBD>ַ
|
||||
|
||||
/*****************************************************************************************/
|
||||
#define SERIES_BASE GET_MBWORD_ADDR(meterSN1)
|
||||
#define SERIES_DEPTH 12
|
||||
|
||||
//--------------------------------------------------------
|
||||
u16 SetupResponseTimeIndex(u16 response, u16 responseDefalt);
|
||||
u16 SetupResponseTime(u16 response, u16 responseDefalt);
|
||||
|
||||
@@ -2,10 +2,10 @@
|
||||
#define __UserModbusDefine_h__
|
||||
|
||||
//******************************************************************************
|
||||
#define INX_030 0x000
|
||||
#define INX_031 0x001
|
||||
#define INX_032 0x002
|
||||
#define INX_033 0x003
|
||||
#define INX_030 0x000
|
||||
#define INX_031 0x001
|
||||
#define INX_032 0x002
|
||||
#define INX_033 0x003
|
||||
#define INX_034 0x004
|
||||
#define INX_035 0x005
|
||||
#define INX_036 0x006
|
||||
@@ -260,7 +260,93 @@
|
||||
#define INX_12F 0x0FF
|
||||
#define INX_130 0x100
|
||||
|
||||
#define USER_INX_MAX (INX_130+1)
|
||||
#define INX_131 0x101
|
||||
#define INX_132 0x102
|
||||
#define INX_133 0x103
|
||||
#define INX_134 0x104
|
||||
#define INX_135 0x105
|
||||
#define INX_136 0x106
|
||||
#define INX_137 0x107
|
||||
#define INX_138 0x108
|
||||
#define INX_139 0x109
|
||||
#define INX_13A 0x10A
|
||||
#define INX_13B 0x10B
|
||||
#define INX_13C 0x10C
|
||||
#define INX_13D 0x10D
|
||||
#define INX_13E 0x10E
|
||||
#define INX_13F 0x10F
|
||||
#define INX_140 0x110
|
||||
#define INX_141 0x111
|
||||
#define INX_142 0x112
|
||||
#define INX_143 0x113
|
||||
#define INX_144 0x114
|
||||
#define INX_145 0x115
|
||||
#define INX_146 0x116
|
||||
#define INX_147 0x117
|
||||
#define INX_148 0x118
|
||||
#define INX_149 0x119
|
||||
#define INX_14A 0x11A
|
||||
#define INX_14B 0x11B
|
||||
#define INX_14C 0x11C
|
||||
#define INX_14D 0x11D
|
||||
#define INX_14E 0x11E
|
||||
#define INX_14F 0x11F
|
||||
#define INX_150 0x120
|
||||
#define INX_151 0x121
|
||||
#define INX_152 0x122
|
||||
#define INX_153 0x123
|
||||
#define INX_154 0x124
|
||||
#define INX_155 0x125
|
||||
#define INX_156 0x126
|
||||
#define INX_157 0x127
|
||||
#define INX_158 0x128
|
||||
#define INX_159 0x129
|
||||
#define INX_15A 0x12A
|
||||
#define INX_15B 0x12B
|
||||
#define INX_15C 0x12C
|
||||
#define INX_15D 0x12D
|
||||
#define INX_15E 0x12E
|
||||
#define INX_15F 0x12F
|
||||
#define INX_160 0x130
|
||||
#define INX_161 0x131
|
||||
#define INX_162 0x132
|
||||
#define INX_163 0x133
|
||||
#define INX_164 0x134
|
||||
#define INX_165 0x135
|
||||
#define INX_166 0x136
|
||||
#define INX_167 0x137
|
||||
#define INX_168 0x138
|
||||
#define INX_169 0x139
|
||||
#define INX_16A 0x13A
|
||||
#define INX_16B 0x13B
|
||||
#define INX_16C 0x13C
|
||||
#define INX_16D 0x13D
|
||||
#define INX_16E 0x13E
|
||||
#define INX_16F 0x13F
|
||||
#define INX_170 0x140
|
||||
#define INX_171 0x141
|
||||
#define INX_172 0x142
|
||||
#define INX_173 0x143
|
||||
#define INX_174 0x144
|
||||
#define INX_175 0x145
|
||||
#define INX_176 0x146
|
||||
#define INX_177 0x147
|
||||
#define INX_178 0x148
|
||||
#define INX_179 0x149
|
||||
#define INX_17A 0x14A
|
||||
#define INX_17B 0x14B
|
||||
#define INX_17C 0x14C
|
||||
#define INX_17D 0x14D
|
||||
#define INX_17E 0x14E
|
||||
#define INX_17F 0x14F
|
||||
|
||||
//#define USER_INX_MAX (INX_130+1)
|
||||
#define USER_INX_MAX (INX_17F+1)
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
//******************************************************************************
|
||||
//<2F><><EFBFBD>û<EFBFBD>Э<EFBFBD>鶨<EFBFBD><E9B6A8>
|
||||
//******************************************************************************
|
||||
@@ -404,26 +490,26 @@
|
||||
//******************************************************************************
|
||||
// 0x80~0xf0: read and write
|
||||
#define STD_PROTOCOL 0x80 // 0x80 Э<><D0AD>
|
||||
#define STD_SLAVER_ID 0x81 // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ
|
||||
#define STD_SLAVER_ADDR 0x81 // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ
|
||||
#define STD_COM_BPS 0x82 // <20><><EFBFBD><EFBFBD><EFBFBD>ʣ<EFBFBD>0-4800<30><30>1-9600<30><30>2-19200<30><30>3-38400<30><30>4-57600<30><30>5-115200<30><30>
|
||||
#define STD_OUT_FR_MIN 0x83 // <20><>С<EFBFBD><D0A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>3λС<CEBB><D0A1><EFBFBD><EFBFBD>
|
||||
#define STD_OUT_FR_MIN_L 0x84
|
||||
#define STD_OUT_FR_MAX 0x85 // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>3λС<CEBB><D0A1><EFBFBD><EFBFBD>
|
||||
#define STD_OUT_FR_MAX_L 0x86
|
||||
#define STD_OUT_MIN_FLOW 0x83 // <20><>С<EFBFBD><D0A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>3λС<CEBB><D0A1><EFBFBD><EFBFBD>
|
||||
#define STD_OUT_MIN_FLOW_L 0x84
|
||||
#define STD_OUT_MAX_FLOW 0x85 // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>3λС<CEBB><D0A1><EFBFBD><EFBFBD>
|
||||
#define STD_OUT_MAX_FLOW_L 0x86
|
||||
#define STD_OUT_ANALOG_MIN 0x87 // <20><>Сģ<D0A1><C4A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>mv<6D><76>
|
||||
#define STD_OUT_ANALOG_MIN_L 0x88
|
||||
#define STD_OUT_ANALOG_MAX 0x89 // <20><><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>mv<6D><76>
|
||||
#define STD_OUT_ANALOG_MAX_L 0x8A
|
||||
#define STD_GCF 0x8B // GCF* (<28><><EFBFBD>Ȳ<EFBFBD><C8B2><EFBFBD>STD_PASSWORD 0XAA55)
|
||||
#define STD_FILTER_DEPTH 0x8C // <20>˲<EFBFBD><CBB2><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define STD_REPONSE_TIME 0x8D // <20><>Ӧʱ<D3A6><CAB1>*
|
||||
#define STD_RESPONSE_TIME 0x8D // <20><>Ӧʱ<D3A6><CAB1>*
|
||||
#define STD_GAS_OFFSET_C 0x8E // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>㣨C TYPE<50><45>
|
||||
#define STD_GAS_OFFSET_A 0x8F // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>㣨A TYPE<50><45>
|
||||
#define STD_UNIT 0x90 // <20><>λ
|
||||
#define STD_AIR_FACTOR 0x91 // <20><><EFBFBD><EFBFBD>ʶ<EFBFBD><CAB6>ϵ<EFBFBD><CFB5><EFBFBD><EFBFBD>ֵ
|
||||
#define STD_FACTOR_VTH 0x92 // ʶ<><CAB6><EFBFBD>Ƚ<EFBFBD><C8BD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define STD_PULSE_UNIT 0x93 //
|
||||
#define STD_IO_OUTPUT_LEVEL 0x94 // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƽ<EFBFBD><C6BD><EFBFBD><EFBFBD>
|
||||
#define STD_PULSE_LEVEL 0x94 // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƽ<EFBFBD><C6BD><EFBFBD><EFBFBD>
|
||||
#define STD_SAMPLE_PERIOD 0x95 //
|
||||
#define STD_ALARM_ACC 0x96 // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define STD_ALARM_ACC_L 0x97
|
||||
|
||||
123
user/Protocol/UserModbusMemAdr.h
Normal file
123
user/Protocol/UserModbusMemAdr.h
Normal file
@@ -0,0 +1,123 @@
|
||||
#ifndef __UserModbusMemAdr_h__
|
||||
#define __UserModbusMemAdr_h__
|
||||
|
||||
//******************************************************************************
|
||||
//#define MEM_ADDR_REG_0X30
|
||||
#define PROTOCOL MEM_ADDR_REG_0X80 // MEM_ADDR_REG_0X80 Э<><D0AD>
|
||||
#define SLAVER_ADDR MEM_ADDR_REG_0X81 // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ
|
||||
#define COM_BPS MEM_ADDR_REG_0X82 // <20><><EFBFBD><EFBFBD><EFBFBD>ʣ<EFBFBD>0-4800<30><30>1-9600<30><30>2-19200<30><30>3-38400<30><30>4-57600<30><30>5-115200<30><30>
|
||||
#define OUT_MIN_FLOW MEM_ADDR_REG_0X83 // <20><>С<EFBFBD><D0A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>3λС<CEBB><D0A1><EFBFBD><EFBFBD>
|
||||
#define OUT_MIN_FLOW_L MEM_ADDR_REG_0X84
|
||||
#define OUT_MAX_FLOW MEM_ADDR_REG_0X85 // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>3λС<CEBB><D0A1><EFBFBD><EFBFBD>
|
||||
#define OUT_MAX_FLOW_L MEM_ADDR_REG_0X86
|
||||
#define OUT_ANALOG_MIN MEM_ADDR_REG_0X87 // <20><>Сģ<D0A1><C4A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>mv<6D><76>
|
||||
#define OUT_ANALOG_MIN_L MEM_ADDR_REG_0X88
|
||||
#define OUT_ANALOG_MAX MEM_ADDR_REG_0X89 // <20><><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>mv<6D><76>
|
||||
#define OUT_ANALOG_MAX_L MEM_ADDR_REG_0X8A
|
||||
#define GCF_B MEM_ADDR_REG_0X8B // GCF* (<28><><EFBFBD>Ȳ<EFBFBD><C8B2><EFBFBD>PASSWORD 0XAA55)
|
||||
#define FILTER_DEPTH MEM_ADDR_REG_0X8C // <20>˲<EFBFBD><CBB2><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define RESPONSE_TIME MEM_ADDR_REG_0X8D // <20><>Ӧʱ<D3A6><CAB1>*
|
||||
#define GAS_OFFSET MEM_ADDR_REG_0X8E // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>㣨C TYPE<50><45>
|
||||
#define GAS_OFFSET_A MEM_ADDR_REG_0X8F // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>㣨A TYPE<50><45>
|
||||
#define FLOW_UNIT MEM_ADDR_REG_0X90 // <20><>λ
|
||||
#define AIR_FACTOR MEM_ADDR_REG_0X91 // <20><><EFBFBD><EFBFBD>ʶ<EFBFBD><CAB6>ϵ<EFBFBD><CFB5><EFBFBD><EFBFBD>ֵ
|
||||
#define FACTOR_VTH MEM_ADDR_REG_0X92 // ʶ<><CAB6><EFBFBD>Ƚ<EFBFBD><C8BD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define PULSE_UNIT MEM_ADDR_REG_0X93 //
|
||||
#define PULSE_LEVEL MEM_ADDR_REG_0X94 // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƽ<EFBFBD><C6BD><EFBFBD><EFBFBD>
|
||||
#define SAMPLE_PERIOD MEM_ADDR_REG_0X95 //
|
||||
#define ALARM_ACC MEM_ADDR_REG_0X96 // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define ALARM_ACC_L MEM_ADDR_REG_0X97
|
||||
#define ALARM_UPPER_FLOW MEM_ADDR_REG_0X98 // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define ALARM_UPPER_FLOW_L MEM_ADDR_REG_0X99
|
||||
#define ALARM_LOWER_FLOW MEM_ADDR_REG_0X9A // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define ALARM_LOWER_FLOW_L MEM_ADDR_REG_0X9B
|
||||
#define ALARM_FUN MEM_ADDR_REG_0X9C // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ر<EFBFBD><D8B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define ALARM_OUT_DELAY MEM_ADDR_REG_0X9D // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ر<EFBFBD><D8B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ (<28><>λ<EFBFBD><CEBB>s)
|
||||
#define COM_DECIMAL MEM_ADDR_REG_0X9E
|
||||
#define RECORD_TIME MEM_ADDR_REG_0X9F // <20><>¼<EFBFBD><C2BC><EFBFBD><EFBFBD>ʱ<EFBFBD>䣨<EFBFBD>֣<EFBFBD>max 720<32><30>
|
||||
#define REVERSE_FR_MIN MEM_ADDR_REG_0XA0 // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>С<EFBFBD><D0A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>3λС<CEBB><D0A1><EFBFBD><EFBFBD>*
|
||||
#define REVERSE_FR_MIN_L MEM_ADDR_REG_0XA1
|
||||
#define REVERSE_FR_MAX MEM_ADDR_REG_0XA2 // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>3λС<CEBB><D0A1><EFBFBD><EFBFBD>*
|
||||
#define REVERSE_FR_MAX_L MEM_ADDR_REG_0XA3
|
||||
#define I2C_ADDR MEM_ADDR_REG_0XA4 // I2C<32><43>ַ
|
||||
#define I2C_CRC_MOD MEM_ADDR_REG_0XA5 // I2C<32><43>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>crcģʽ(0Ϊ<30><CEAA>crcģʽ)<29><>λ<EFBFBD><CEBB>Ч
|
||||
#define TIMING_TXD_START MEM_ADDR_REG_0XA6 // <20><>ʱ<EFBFBD><CAB1><EFBFBD>Ϳ<EFBFBD>ʼ<EFBFBD>Ĵ<EFBFBD><C4B4><EFBFBD>
|
||||
#define TIMING_TXD_LEN MEM_ADDR_REG_0XA7 // <20><>ʱ<EFBFBD><CAB1><EFBFBD>ͼĴ<CDBC><C4B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define TIMING_TXD_TIME MEM_ADDR_REG_0XA8 // <20><>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>
|
||||
#define PRESSURE_OFFSET MEM_ADDR_REG_0XA9 // ѹ<><D1B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define LORA_ADR MEM_ADDR_REG_0XAA // LORA <20><>ַ
|
||||
#define LORA_NETID MEM_ADDR_REG_0XAB // LORA<52><41>·id
|
||||
#define LORA_CH MEM_ADDR_REG_0XAC // LORA<52>ŵ<EFBFBD>
|
||||
#define LORA_STATE MEM_ADDR_REG_0XAD // LORAģ<41>鹤<EFBFBD><E9B9A4>״̬
|
||||
#define KEY_PASSWORD MEM_ADDR_REG_0XAE // <20><><EFBFBD>ð<EFBFBD><C3B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define KEY_PASSWORD_L MEM_ADDR_REG_0XAF // <20><><EFBFBD>ð<EFBFBD><C3B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define ALARM_UPPER_PRESS MEM_ADDR_REG_0XB0 // ѹ<><D1B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define ALARM_UPPER_PRESS_L MEM_ADDR_REG_0XB1 //
|
||||
#define ALARM_LOWER_PRESS MEM_ADDR_REG_0XB2 // ѹ<><D1B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define ALARM_LOWER_PRESS_L MEM_ADDR_REG_0XB3 //
|
||||
#define ALARM_UPPER_TEMP MEM_ADDR_REG_0XB4 // <20>¶<EFBFBD><C2B6><EFBFBD><EFBFBD>ޱ<EFBFBD><DEB1><EFBFBD> B4
|
||||
#define ALARM_LOWER_TEMP MEM_ADDR_REG_0XB5 // <20>¶<EFBFBD><C2B6><EFBFBD><EFBFBD>ޱ<EFBFBD><DEB1><EFBFBD> B5
|
||||
#define ALARM_UPPER_RH MEM_ADDR_REG_0XB6 // ʪ<><CAAA><EFBFBD><EFBFBD><EFBFBD>ޱ<EFBFBD><DEB1><EFBFBD> B6
|
||||
#define ALARM_LOWER_RH MEM_ADDR_REG_0XB7 // ʪ<><CAAA><EFBFBD><EFBFBD><EFBFBD>ޱ<EFBFBD><DEB1><EFBFBD> B7
|
||||
#define ALARM_UPPER_PPM MEM_ADDR_REG_0XB8 // Ũ<><C5A8><EFBFBD><EFBFBD><EFBFBD>ޱ<EFBFBD><DEB1><EFBFBD> B8
|
||||
#define ALARM_LOWER_PPM MEM_ADDR_REG_0XB9 // Ũ<><C5A8><EFBFBD><EFBFBD><EFBFBD>ޱ<EFBFBD><DEB1><EFBFBD> B9
|
||||
//#define BA MEM_ADDR_REG_0XBA //
|
||||
//#define BB MEM_ADDR_REG_0XBB //
|
||||
//#define BC MEM_ADDR_REG_0XBC //
|
||||
//#define BD MEM_ADDR_REG_0XBD //
|
||||
//#define BE MEM_ADDR_REG_0XBE //
|
||||
//#define BF MEM_ADDR_REG_0XBF //
|
||||
//#define C0 MEM_ADDR_REG_0XC0 //
|
||||
//#define C1 MEM_ADDR_REG_0XC1
|
||||
//#define C2 MEM_ADDR_REG_0XC2 //
|
||||
//#define C3 MEM_ADDR_REG_0XC3
|
||||
//#define C4 MEM_ADDR_REG_0XC4 //
|
||||
//#define C5 MEM_ADDR_REG_0XC5 //
|
||||
//#define C6 MEM_ADDR_REG_0XC6 //
|
||||
//#define C7 MEM_ADDR_REG_0XC7 //
|
||||
//#define C8 MEM_ADDR_REG_0XC8 //
|
||||
//#define C9 MEM_ADDR_REG_0XC9 //
|
||||
//#define CA MEM_ADDR_REG_0XCA //
|
||||
//#define CB MEM_ADDR_REG_0XCB //
|
||||
//#define CC MEM_ADDR_REG_0XCC //
|
||||
//#define CD MEM_ADDR_REG_0XCD //
|
||||
//#define CE MEM_ADDR_REG_0XCE //
|
||||
//#define CF MEM_ADDR_REG_0XCF //
|
||||
//#define D0 MEM_ADDR_REG_0XD0 //
|
||||
//#define D1 MEM_ADDR_REG_0XD1 //
|
||||
//#define D2 MEM_ADDR_REG_0XD2 //
|
||||
//#define D3 MEM_ADDR_REG_0XD3 //
|
||||
//#define D4 MEM_ADDR_REG_0XD4 //
|
||||
//#define D5 MEM_ADDR_REG_0XD5 //
|
||||
//#define D6 MEM_ADDR_REG_0XD6 //
|
||||
//#define D7 MEM_ADDR_REG_0XD7 //
|
||||
//#define D8 MEM_ADDR_REG_0XD8 //
|
||||
//#define D9 MEM_ADDR_REG_0XD9 //
|
||||
|
||||
//#define LEAK_FR_MIN MEM_ADDR_REG_0XDA
|
||||
//#define LEAK_FR_MAX MEM_ADDR_REG_0XDB
|
||||
//#define LEAK_TIMING MEM_ADDR_REG_0XDC
|
||||
// //
|
||||
//#define DD MEM_ADDR_REG_0XDD //
|
||||
//#define GCF_A MEM_ADDR_REG_0XDE //
|
||||
//#define DF MEM_ADDR_REG_0XDF //
|
||||
//#define E0 MEM_ADDR_REG_0XE0 //
|
||||
//#define E1 MEM_ADDR_REG_0XE1 //
|
||||
//#define E2 MEM_ADDR_REG_0XE2 //
|
||||
//#define E3 MEM_ADDR_REG_0XE3 //
|
||||
//#define E4 MEM_ADDR_REG_0XE4 //
|
||||
//#define E5 MEM_ADDR_REG_0XE5 //
|
||||
//#define E6 MEM_ADDR_REG_0XE6 //
|
||||
//#define E7 MEM_ADDR_REG_0XE7 //
|
||||
//#define E8 MEM_ADDR_REG_0XE8 //
|
||||
//#define E9 MEM_ADDR_REG_0XE9 //
|
||||
//#define EA MEM_ADDR_REG_0XEA //
|
||||
//#define EB MEM_ADDR_REG_0XEB //
|
||||
//#define EC MEM_ADDR_REG_0XEC //
|
||||
//#define ED MEM_ADDR_REG_0XED //
|
||||
//#define EE MEM_ADDR_REG_0XEE //
|
||||
//#define EF MEM_ADDR_REG_0XEF //
|
||||
|
||||
#define DCOEF_NUM MEM_ADDR_REG_0X130
|
||||
|
||||
#endif
|
||||
Reference in New Issue
Block a user