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

275 lines
17 KiB
C

#ifndef __UserModbus_h__
#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 dcoefNum MBReg[INX_130]
//--------------------------------------------------------
extern u16 MBReg[];
//--------------------------------------------------------
u16 SetupResponseTimeIndex(u16 response, u16 responseDefalt);
u16 SetupResponseTime(u16 response, u16 responseDefalt);
void InitUseBusParameter(void);
void UseBusParameterInit(void);
void UseBusParameterReset(void);
void UserReadDataProtocol(void);
void UserWriteDataProtocol(void);
#endif