/**
|
******************************************************************************
|
* @file regmap.h
|
* @author AndyChen
|
* @version V1.0
|
* @date 2015-xx-xx
|
* @brief Modbus register address map
|
******************************************************************************
|
* @attention
|
*
|
******************************************************************************
|
*/
|
|
/* Define to prevent recursive inclusion --------------------------------------*/
|
|
#ifndef __REGMAP_H
|
|
#define __REGMAP_H
|
|
/* Includes -------------------------------------------------------------------*/
|
|
#include <stm32f10x.h>
|
|
/* Exported_Macros ------------------------------------------------------------*/
|
|
typedef uint16_t uint16;
|
typedef uint32_t uint32;
|
|
/* Exported_Types -------------------------------------------------------------*/
|
|
//2 byte aligned
|
#pragma pack(2)
|
|
/*-------------------------------É豸ÐòÁкÅ------------------------------------*/
|
|
//address: 0000~0039
|
typedef struct
|
{ /* Register Type R/W */
|
uint16 serialNum[4]; /* 0 64bit integer r/w */
|
|
uint16 hardwareVerSn[3]; /* 1 32bit integer r/w */
|
uint16 firmwareVer[3]; /* 6 32bit integer r/w */
|
uint16 firmwareCRC; /* 8 16bit integer r/w */
|
uint16 firmwareVerDate_year; /* 9 32bit integer r/w */
|
uint16 firmwareVerDate_month; /* 9 32bit integer r/w */
|
uint16 firmwareVerDate_day; /* 9 32bit integer r/w */
|
|
uint16 psSerialNum[4]; /* 11 64bit integer r/w */
|
uint16 tsSerialNum[4]; /* 15 64bit integer r/w */
|
|
uint16 supersonicA1[4]; /* 19 64bit integer r/w */
|
uint16 supersonicA2[4]; /* 23 64bit integer r/w */
|
uint16 supersonicA3[4]; /* 27 64bit integer r/w */
|
|
uint16 supersonicB1[4]; /* 31 64bit integer r/w */
|
uint16 supersonicB2[4]; /* 35 64bit integer r/w */
|
uint16 supersonicB3[4]; /* 39 64bit integer r/w */
|
|
} deviceSerialNum_t;
|
|
/*-------------------------------É豸ÅäÖòÎÊý-----------------------------------*/
|
|
//Part I
|
//address: 1001~1030
|
typedef struct
|
{ /* Register Type R/W */
|
uint16 systemMode; /* 1001 16bit integer r/w */
|
|
float mid_distance; /* 1002 16bit float r/w */
|
float up_distance;
|
float down_distance;
|
float mid_a_compensate_time;
|
float mid_b_compensate_time;
|
float up_a_compensate_time;
|
float up_b_compensate_time;
|
float down_a_compensate_time;
|
float down_b_compensate_time;
|
float set_sound_speed;
|
|
u16 device_id[4];
|
|
//25
|
u16 mid_A_level;
|
u16 mid_B_level;
|
u16 up_A_level;
|
u16 up_B_level;
|
u16 down_A_level;
|
u16 down_B_level;
|
u16 device_type;
|
|
//32
|
/*¼ÓÁË6¸öµØÖ·*/
|
u16 device_gprs_ip[2];
|
u16 device_gprs_port;
|
//35
|
u16 measure_channel;
|
float flow_mid;
|
float flow_up;
|
float flow_down;
|
|
u16 current_open_state;
|
u16 current_flow_max;
|
} deviceConfigParam_t1;
|
|
//Part II
|
//address: 1049~1100
|
typedef struct
|
{ /* Register Type R/W */
|
|
|
float flowCalibFactor[10]; /* 1049 32bit float r/w */
|
// float flowCalibFactor2; /* 1051 32bit float r/w */
|
// float flowCalibFactor3; /* 1053 32bit float r/w */
|
// float flowCalibFactor4; /* 1055 32bit float r/w */
|
// float flowCalibFactor5; /* 1057 32bit float r/w */
|
// float flowCalibFactor6; /* 1059 32bit float r/w */
|
// float flowCalibFactor7; /* 1061 32bit float r/w */
|
// float flowCalibFactor8; /* 1063 32bit float r/w */
|
// float flowCalibFactor9; /* 1065 32bit float r/w */
|
// float flowCalibFactor10; /* 1067 32bit float r/w */
|
|
float flowSegmentPoint[10]; /* 1069 32bit float r/w */
|
// float flowSegmentPoint2; /* 1071 32bit float r/w */
|
// float flowSegmentPoint3; /* 1073 32bit float r/w */
|
// float flowSegmentPoint4; /* 1075 32bit float r/w */
|
// float flowSegmentPoint5; /* 1077 32bit float r/w */
|
// float flowSegmentPoint6; /* 1079 32bit float r/w */
|
// float flowSegmentPoint7; /* 1081 32bit float r/w */
|
// float flowSegmentPoint8; /* 1083 32bit float r/w */
|
// float flowSegmentPoint9; /* 1085 32bit float r/w */
|
// float flowSegmentPoint10; /* 1087 32bit float r/w */
|
|
float mProbePostiveDelay; /* 1089 16bit integer r/w */
|
float mProbeReverseDelay; /* 1091 16bit integer r/w */
|
float uProbePostiveDelay; /* 1093 16bit integer r/w */
|
float uProbeReverseDelay; /* 1095 16bit integer r/w */
|
float dProbePostiveDelay; /* 1097 16bit integer r/w */
|
float dProbeReverseDelay; /* 1099 16bit integer r/w */
|
|
} deviceConfigParam_t2;
|
|
//Part III
|
//address: 1101~1140
|
typedef struct
|
{ /* Register Type R/W */
|
float indicationError[10]; /* 1101 32bit float r/w */
|
// float indicationError2; /* 1103 32bit float r/w */
|
// float indicationError3; /* 1105 32bit float r/w */
|
// float indicationError4; /* 1107 32bit float r/w */
|
// float indicationError5; /* 1109 32bit float r/w */
|
// float indicationError6; /* 1111 32bit float r/w */
|
// float indicationError7; /* 1113 32bit float r/w */
|
// float indicationError8; /* 1115 32bit float r/w */
|
// float indicationError9; /* 1117 32bit float r/w */
|
// float indicationError10; /* 1119 32bit float r/w */
|
|
float stdEquipmentFlow[10]; /* 1121 32bit float r/w */
|
// float stdEquipmentFlow2; /* 1123 32bit float r/w */
|
// float stdEquipmentFlow3; /* 1125 32bit float r/w */
|
// float stdEquipmentFlow4; /* 1127 32bit float r/w */
|
// float stdEquipmentFlow5; /* 1129 32bit float r/w */
|
// float stdEquipmentFlow6; /* 1131 32bit float r/w */
|
// float stdEquipmentFlow7; /* 1133 32bit float r/w */
|
// float stdEquipmentFlow8; /* 1135 32bit float r/w */
|
// float stdEquipmentFlow9; /* 1137 32bit float r/w */
|
// float stdEquipmentFlow10; /* 1139 32bit float r/w */
|
|
|
} deviceConfigParam_t3;
|
|
//Part IV
|
//address: 1141~1180
|
typedef struct
|
{ /* Register Type R/W */
|
uint16 gprsTimeModeSet; /* 1141 16bit integer r/w */
|
uint16 gprsTimeSet; /* 1142 16bit integer r/w */
|
|
float temperatureRevC_K; /* 1143 32bit float r/w */
|
float temperaturePosB_B; /* 1145 32bit float r/w */
|
|
float pressureRevC_K; /* 1147 32bit float r/w */
|
float pressurePosB_B; /* 1149 32bit float r/w */
|
|
float tempThreshold_Min; /* 1151 16bit integer r/w */
|
float tempThreshold_Max; /* 1153 16bit integer r/w */
|
|
float presThreshold_Min; /* 1155 16bit integer r/w */
|
float presThreshold_Max; /* 1157 16bit integer r/w */
|
|
float flowThreshold_Max; /* 1159 16bit integer r/w */
|
|
float flowThreshold_Min; /* 1161 16bit integer r/w */
|
|
float smallflow_cut; /* 1163 16bit integer r/w */
|
|
uint16 pulseOutputMode; /* 1165 16bit integer r/w */
|
|
float pulseCoefficient; /* 1166,1167 32bit float r/w */
|
|
uint16 warningInfoStatus; /* 1168 32bit float r/w */
|
uint16 paraInfoStatus; /* 1169 32bit float r/w */
|
|
//uint16 reg_void;
|
|
|
// uint16 visitorPassword; /* 1169 16bit integer r/w */
|
uint16 userPassword; /* 1170 16bit integer r/w */
|
uint16 authUsrPassword; /* 1171 16bit integer r/w */
|
|
uint16 monthbackup_set; /* 1172 16bit integer r/w */
|
uint16 daybackup_set; /* 1173 16bit integer r/w */
|
uint16 periodbackup_set; /* 1174 16bit integer r/w */
|
|
uint16 RTCtime_year; /* 1175 16bit integer r/w */
|
uint16 RTCtime_month; /* 1176 16bit integer r/w */
|
uint16 RTCtime_day; /* 1177 16bit integer r/w */
|
uint16 RTCtime_hour; /* 1178 16bit integer r/w */
|
uint16 RTCtime_min; /* 1179 16bit integer r/w */
|
uint16 RTCtime_sec; /* 1180 16bit integer r/w */
|
uint16 lowpluseMode; /* 1181 16bit integer r/w */
|
uint16 lowPluseWide; /* 1182 16bit integer r/w */
|
uint16 lcd_mode; /* 1183 16bit integer r/w */
|
uint16 open_intelligent_mode; /* 1184 16bit float r/w */
|
uint16 devSlaveAddr; /* 1185 16bit integer r/w */
|
uint16 devBaudRate; /* 1186 16bit integer r/w */
|
uint16 monthbackupLogNum; /* 1187 16bit integer r/w */
|
uint16 daybackupLogNum; /* 1188 16bit integer r/w */
|
uint16 periodbackupLogNum; /* 1189 16bit integer r/w */
|
|
uint16 monthbackuptranscmd; /* 1190 16bit integer r/w */
|
uint16 daybackuptranscmd; /* 1191 16bit integer r/w */
|
uint16 periodbackuptranscmd; /* 1192 16bit integer r/w */
|
uint16 eventlogtranscmd; /* 1193 16bit integer r/w */
|
uint16 paralogtranscmd; /* 1194 16bit integer r/w */
|
uint16 othercmd; /* 1195 16bit integer r/w */
|
float user_error[10]; /*1196-1215*/
|
float user_flow[10]; /*1216-1235*/
|
uint16 password; /* 1236 16bit integer r/w */
|
uint16 superpassword; /* 1237 16bit integer r/w */
|
uint16 confirmpassword; /* 1238 16bit integer r/w */
|
uint16 confirmsuperpassword; /* 1239 16bit integer r/w */
|
float user_cal_error[10]; /*1240-1259*/
|
float user_cal_flow[10]; /*1260-1279*/
|
uint16 gas_type; /*1280*/
|
float gas_factor; /*1281,1282*/
|
|
|
} deviceConfigParam_t4;
|
|
|
|
/*-------------------------------Á÷Á¿¼Æ¼ÆÁ¿ÐÅÏ¢------------------------------------*/
|
|
//address: 3000~3029
|
typedef struct
|
{ /* Register Type R/W */
|
float workConTotalFlow; /* 3000 32bit float r/w */
|
float stdConTotalFlow; /* 3002 32bit float r/w */
|
|
float workConInstantFlow; /* 3004 32bit float r/w */
|
float stdConInstantFlow; /* 3006 32bit float r/w */
|
|
float todayWorkFlow; /* 3008 32bit float r/w */
|
float yesterdayWorkFlow; /* 3010 32bit float r/w */
|
|
float monthWorkFlow; /* 3012 32bit float r/w */
|
float lastmonthWorkFlow; /* 3014 32bit float r/w */
|
|
float todayStdFlow; /* 3016 32bit float r/w */
|
float yesterdayStdFlow; /* 3018 32bit float r/w */
|
|
float monthStdFlow; /* 3020 32bit float r/w */
|
float lastmonthStdFlow; /* 3022 32bit float r/w */
|
|
float temperatureValue; /* 3024 32bit float r/w */
|
float pressureValue; /* 3026 32bit float r/w */
|
|
|
|
} flowMeterMsrInfo_t;
|
|
|
typedef struct
|
{ /* Register Type R */
|
float midA; /* 4701 r */
|
float midB; /* 4703 r */
|
float time_A1; /* 4705 r */
|
float time_B1; /* 4707 r */
|
float time_A2; /* 4709 r */
|
float time_B2; /* 4711 r */
|
float mid_sound; /* 4713 r */
|
float a_sound; /* 4715 r */
|
float b_sound; /* 4717 r */
|
|
|
uint16 snrmidA; /* 4719 r */
|
uint16 snrmidB; /* 4720 r */
|
uint16 snrupA; /* 4721 r */
|
uint16 snrupB; /* 4722 r */
|
uint16 snrdownA; /* 4723 r */
|
uint16 snrdownB; /* 4724 r */
|
|
uint16 gainmidA; /* 4725 r */
|
uint16 gainmidB; /* 4726 r */
|
uint16 gainupA; /* 4727 r */
|
uint16 gainupB; /* 4728 r */
|
uint16 gaindownA; /* 4729 r */
|
uint16 gaindownB; /* 4730 r */
|
|
uint16 sigstremidA; /* 4731 r */
|
uint16 sigstremidB; /* 4732 r */
|
uint16 sigstreupA; /* 4733 r */
|
uint16 sigstreupB; /* 4734 r */
|
uint16 sigstredownA; /* 4735 r */
|
uint16 sigstredownB; /* 4736 r */
|
|
float mid_flow; /* 4737 r */
|
float up_flow; /* 4739 r */
|
float down_flow; /* 4741 r */
|
|
u16 mid_A_level1;
|
u16 mid_B_level1;
|
u16 up_A_level1;
|
u16 up_B_level1;
|
u16 down_A_level1;
|
u16 down_B_level1;
|
|
u16 mid_A_level2;
|
u16 mid_B_level2;
|
u16 up_A_level2;
|
u16 up_B_level2;
|
u16 down_A_level2;
|
u16 down_B_level2;
|
|
|
float updowncal_flow;
|
float midcal_flow;
|
float updowm_mid_rate;
|
|
u16 system_state;
|
float mid_sig_rate;
|
float up_sig_rate;
|
float down_sig_rate;
|
|
} deviceMsrInfo_t;
|
|
typedef struct
|
{ /* Register Type R */
|
u16 system_workstatus; //4001
|
} regworkstatusInfo_t;
|
|
|
#pragma pack()
|
|
/* Exported_Functions ---------------------------------------------------------*/
|
|
|
#endif
|
/******************* (C) COPYRIGHT 2015 AndyChen *******END OF FILE*************/
|