/** ****************************************************************************** * @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 "define_all.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 */ float fill_addr; /* 1183 32bit 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 upA; /* 4705 r */ float upB; /* 4707 r */ float downA; /* 4709 r */ float downB; /* 4711 r */ float mid_sound; /* 4713 r */ float up_sound; /* 4715 r */ float down_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*************/