MS-DTU/Anjiehui7_TTS_ST_V2.4_LOCAL/User/def_data.c

617 lines
22 KiB
C
Raw Permalink Normal View History

2025-04-03 14:18:58 +08:00
/*
*********************************************************************************************************
* IAR Development Kits
* on the
*
* Nano130
*
* Filename : def_data.c
* Version : V1.00
* Programmer(s) : Qian Xianghong
*********************************************************************************************************
*/
/*
*********************************************************************************************************
* INCLUDE FILES
*********************************************************************************************************
*/
#include "includes.h"
// Ӳ<><D3B2><EFBFBD><EFBFBD>ţ<EFBFBD>TTS-<2D><><EFBFBD><EFBFBD>-<2D>۳<EFBFBD>-<2D>͹<EFBFBD><CDB9><EFBFBD>4G<34><47><EFBFBD><EFBFBD><EFBFBD>ð汾<C3B0><E6B1BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱȷ<CAB1><C8B7>Ӳ<EFBFBD><D3B2><EFBFBD><EFBFBD><E6B1BE>
const uint8_t HARDWARE_VER_MINOR = 90; // <20><><EFBFBD><EFBFBD>Һλ<D2BA>ǣ<EFBFBD>STM32<33><32>+16C23+<2B><>Բ<EFBFBD><D4B2><EFBFBD><EFBFBD>
// <20>ͻ<EFBFBD><CDBB><EFBFBD>ѡ<EFBFBD><D1A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>á<EFBFBD><C3A1>ð汾<C3B0><E6B1BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD><CFB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȷ<EFBFBD><C8B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>á<EFBFBD>
#ifdef _PRAXAIR_TTS_VER_
const uint8_t HARDWARE_VER_MAJOR = 202;
#endif
#ifdef _PRAXAIR_DOL_VER_
const uint8_t HARDWARE_VER_MAJOR = 203;
#endif
#ifdef _YINGDE_TTS_VER_
const uint8_t HARDWARE_VER_MAJOR = 212;
#endif
#ifdef _YINGDE_DOL_VER_
const uint8_t HARDWARE_VER_MAJOR = 222;
#endif
#ifdef _LINDE_HTTPS_CHARGE_VER_
const uint8_t HARDWARE_VER_MAJOR = 213;
#endif
#ifdef _LINDE_HTTPS_VER_
const uint8_t HARDWARE_VER_MAJOR = 223;
#endif
#ifdef _MESSER_TTS_VER_
const uint8_t HARDWARE_VER_MAJOR = 214;
#endif
#ifdef _FAYEKONG_TTS_VER_
const uint8_t HARDWARE_VER_MAJOR = 215;
#endif
#ifdef _BAOGANG_TTS_VER_
const uint8_t HARDWARE_VER_MAJOR = 216;
#endif
#ifdef _FUSHIKANG_TTS_VER_
const uint8_t HARDWARE_VER_MAJOR = 218;
#endif
#ifdef _ZHONGHAIYOU_BOX_VER_
const uint8_t HARDWARE_VER_MAJOR = 219;
#endif
#ifdef _BOX_500_2_VER_
const uint8_t HARDWARE_VER_MAJOR = 162;
#endif
#ifdef _BOX_1000_2_VER_
const uint8_t HARDWARE_VER_MAJOR = 163;
#endif
#ifdef _BOX_1000_3_VER_
const uint8_t HARDWARE_VER_MAJOR = 164;
#endif
#ifdef _CAOCHE_VER_
const uint8_t HARDWARE_VER_MAJOR = 149;
#endif
#ifdef _LANSHI_TTS_VER_
const uint8_t HARDWARE_VER_MAJOR = 217;
#endif
#ifdef _CHATE_TTS_VER_
const uint8_t HARDWARE_VER_MAJOR = 225;
#endif
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E6B1BE>
const uint8_t SOFTWARE_VER_MAJOR = 1;
const uint8_t SOFTWARE_VER_MINOR = 7; // TTS-4G<34>͹<EFBFBD><CDB9><EFBFBD>
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
const uint8_t SOFTWARE_DATE_YEAR = 24;
const uint8_t SOFTWARE_DATE_MONTH = 3;
const uint8_t SOFTWARE_DATE_DAY = 19;
// <20><EFBFBD><E6B4A2>ʽ<EFBFBD><EFBFBD><E6B1BE>=1.1
const uint8_t CONFIG_FORMAT_VER_MAJOR = 1;
const uint8_t CONFIG_FORMAT_VER_MINOR = 1; // <20>½ṹ<C2BD><E1B9B9><EFBFBD><EFBFBD>ʽ<EFBFBD><CABD><EFBFBD><EFBFBD>˫<EFBFBD><CBAB>ͨ<EFBFBD><CDA8>
// Զ<><D4B6>Э<EFBFBD><D0AD><EFBFBD><EFBFBD><E6B1BE>
const uint8_t REPORT_PROTOCOL_VER_MAJOR = 0;
// 0: ѹ<><D1B9><EFBFBD><EFBFBD>λΪbar<61><72>1<EFBFBD><31>ѹ<EFBFBD><D1B9><EFBFBD><EFBFBD>λΪKPa, 107: ֧<><D6A7><EFBFBD><EFBFBD>ʷ<EFBFBD><CAB7><EFBFBD>ݷ<EFBFBD><DDB7><EFBFBD>
const uint8_t REPORT_PROTOCOL_VER_MINOR = 107;
// DTU<54><55><EFBFBD><EFBFBD>
const uint32_t DTU_BAUDRATE = 115200ul;
const uint8_t DTU_PARITY = PARITY_NONE;
// <20><><EFBFBD><EFBFBD>Э<EFBFBD><D0AD><EFBFBD><EFBFBD><E6B1BE>
const uint8_t BLUETOOTH_PROTOCOL_VER_MAJOR = 1;
const uint8_t BLUETOOTH_PROTOCOL_VER_MINOR = 0;
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
const uint32_t BLUETOOTH_BAUDRATE = 9600ul;
const uint8_t BLUETOOTH_PARITY = PARITY_NONE;
// <20><><EFBFBD><EFBFBD>ȫ<EFBFBD><C8AB><EFBFBD><EFBFBD><EFBFBD>úͲɼ<CDB2><C9BC><EFBFBD><EFBFBD>ݵĽṹ<C4BD><E1B9B9>
data_buff_t dcBuff = {0};
// MQTT/HTTPS/HTTP<54><50><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>б<EFBFBD>
const char SERVER_URLs[][100] =
{
// <20>ֵ·<D6B5><C2B7><EFBFBD><EFBFBD><EFBFBD>
"/TelemetryWebService.TelemetryWebContract.svc/Postmeasurements",
// <20>к<EFBFBD><D0BA>Ͱ<EFBFBD><CDB0><EFBFBD><EFBFBD>Ʒ<EFBFBD><C6B7><EFBFBD><EFBFBD><EFBFBD>
"iot-as-mqtt.cn-shanghai.aliyuncs.com",
};
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݿ<EFBFBD><DDBF>ij<EFBFBD><C4B3><EFBFBD>
const uint8_t Config_DataLen[] =
{
sizeof(config_bottle_t),
sizeof(config_sensor_t),
sizeof(config_data_t),
sizeof(config_display_t),
sizeof(sysinfo_sample_t),
sizeof(sysinfo_power_t),
sizeof(sysinfo_display_t),
sizeof(sysinfo_bluetooth_t),
sizeof(data_dtu_t),
sizeof(data_sample_t),
sizeof(adc_sample_t),
};
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ĵ<EFBFBD>ַ
const void* Config_DataPtr[] =
{
&dcBuff.configBottle,
&dcBuff.configSensor,
&dcBuff.configData,
&dcBuff.configDisplay,
&dcBuff.sampleInfo,
&dcBuff.powerInfo,
&dcBuff.displayInfo,
&dcBuff.bluetoothInfo,
&dcBuff.dtuData,
&dcBuff.sampleData,
&dcBuff.adcData,
};
// Һ<><D2BA><EFBFBD>ܶȣ<DCB6>LNG=0.42g/cm3=420kg/m3
// O2=1.143g/cm3=1143kg/m3
// N2=0.81g/cm3=810kg/m3
// AR=1.402g/cm3=1402kg/m3
// CO2=1.024g/cm3=1024kg/m3
const float LSrc_Density[] = {0.42, 1.143, 0.81, 1.402, 1.024}; // <20><>λkg/L
// Һ<><D2BA><EFBFBD>ܶȣ<DCB6> H2=0.071g/cm3=71kg/m3
// CNG=0.071g/cm3=71kg/m3
// He=0.125g/cm3=125kg/m3
// C2H4=0.568g/cm3=568kg/m3
// LPG=0.539g/cm3=539kg/m3
// NH3=0.618g/cm3=618kg/m3
// PENT=0.630g/cm3=630kg/m3
// POPO=1.038g/cm3=1038kg/m3
const uint16_t LSrc_DensityExt[] = {71, 71, 125, 568, 539, 618, 630, 1038}; // <20><>λkg/m3
// <20><><EFBFBD>úͻ<C3BA>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD>ܶ<EFBFBD>
void Config_SetDensity(uint8_t source, float density)
{
if(source < sizeof(dcBuff.configBottle.density) / sizeof(float))
dcBuff.configBottle.density[source] = density;
else
dcBuff.configBottle.densityExt[source - sizeof(dcBuff.configBottle.density) / sizeof(float)] = (uint16_t) (density * 1000);
}
float Config_GetDensity(uint8_t source)
{
if(source < sizeof(dcBuff.configBottle.density) / sizeof(float))
return dcBuff.configBottle.density[source];
return dcBuff.configBottle.densityExt[source - sizeof(dcBuff.configBottle.density) / sizeof(float)] * 0.001;
}
// <20><><EFBFBD><EFBFBD>ʽΪx16+x15+x2+1,LSB˳<42><CBB3>
uint16_t do_crc_16(unsigned short crc_reg, uint8_t *message, int16_t len)
{
int16_t i, j;
uint16_t current;
for (i = 0; i < len; i++)
{
current = message[i];
for (j = 0; j < 8; j++)
{
if ((crc_reg ^ current) & 0x0001)
crc_reg = (crc_reg >> 1) ^ 0xA001;
else
crc_reg >>= 1;
current >>= 1;
}
}
return crc_reg;
}
// <20><><EFBFBD><EFBFBD><EFBFBD>̶<EFBFBD><CCB6><EFBFBD><EFBFBD>ֶ<EFBFBD>
uint32_t Config_CheckValid(rd_buff_t *rdBuff, uint8_t DC)
{
if(rdBuff->header.mark != CONFIG_MARK_LS)
return FALSE;
if(rdBuff->header.product != CONFIG_PRODUCT_CY)
return FALSE;
if(rdBuff->header.DC != DC)
return FALSE;
if(rdBuff->header.ver.major != CONFIG_FORMAT_VER_MAJOR || rdBuff->header.ver.minor != CONFIG_FORMAT_VER_MINOR)
return FALSE;
if(do_crc_16(0, rdBuff->buff, CONFIG_DATA_LEN(DC)) != 0)
return FALSE;
return TRUE;
}
// д<><D0B4><EFBFBD>̶<EFBFBD><CCB6><EFBFBD><EFBFBD>ֶ<EFBFBD>
void Config_ForceValid(rd_buff_t *rdBuff, uint8_t DC)
{
uint8_t pos = CONFIG_DATA_LEN(DC) - 2;
rdBuff->header.mark = CONFIG_MARK_LS;
rdBuff->header.product = CONFIG_PRODUCT_CY;
rdBuff->header.DC = DC;
rdBuff->header.ver.major = CONFIG_FORMAT_VER_MAJOR;
rdBuff->header.ver.minor = CONFIG_FORMAT_VER_MINOR;
Int2ByteS(rdBuff->buff, pos, do_crc_16(0, rdBuff->buff, pos));
}
// <20><><EFBFBD>ô<EFBFBD><C3B4>޲<EFBFBD><DEB2><EFBFBD><EFBFBD><EFBFBD>Ĭ<EFBFBD><C4AC>ֵ
void Config_setBottleDefParam(data_buff_t *dataBuff)
{
uint8_t i;
memset(&dataBuff->configBottle, 0, sizeof(dataBuff->configBottle));
#if defined(_PRAXAIR_SERVER_)
dataBuff->configBottle.serverVer = 3; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E6B1BE>: <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˹ר<CBB9>ð汾
#elif defined(_LINDE_SERVER_)
dataBuff->configBottle.serverVer = 4; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E6B1BE>: <20>ֵ<EFBFBD>ר<EFBFBD>ð汾
#elif defined(_BAOGANG_SERVER_)
dataBuff->configBottle.serverVer = 5; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E6B1BE>: <20><><EFBFBD><EFBFBD>ר<EFBFBD>ð汾
#else
dataBuff->configBottle.serverVer = 0; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E6B1BE>: <20><><EFBFBD>ݻ<EFBFBD><DDBB>
#endif
dataBuff->configBottle.updateFlag = 1; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>±<EFBFBD>־
dataBuff->configBottle.addr = 1;
dataBuff->configBottle.type = BOTTLE_TYPE_LYING;
dataBuff->configBottle.source = SOURCE_N2;
dataBuff->configBottle.len = 10000;
dataBuff->configBottle.diameter = 2650;
dataBuff->configBottle.lenExtra = 0;
for(i = 0; i < sizeof(dataBuff->configBottle.density) / sizeof(float); i++)
dataBuff->configBottle.density[i] = LSrc_Density[i];
for(i = 0; i < sizeof(dataBuff->configBottle.densityExt) / sizeof(uint16_t); i++)
dataBuff->configBottle.densityExt[i] = LSrc_DensityExt[i];
dataBuff->configBottle.chargePct = 100;
dataBuff->configBottle.measureType = MEASURE_DPRESS;
// <20><><EFBFBD>²<EFBFBD><C2B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ0<CEAA><30><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE>Ч
#ifdef _DISP_MMWC_ONLY_
dataBuff->configBottle.fullPct = 0; // <20><>Һλ<D2BA>ٷֱ<D9B7>
#else
dataBuff->configBottle.fullPct = 9500; // <20><>Һλ<D2BA>ٷֱ<D9B7>
#endif
dataBuff->configBottle.priPct = 0; // <20>ؼ<EFBFBD>Һλ<D2BA>ٷֱ<D9B7>
dataBuff->configBottle.orderPct = 0; // <20><><EFBFBD><EFBFBD>Һλ<D2BA>ٷֱ<D9B7>
dataBuff->configBottle.emptyPct = 0; // <20><>Һλ<D2BA>ٷֱ<D9B7>
dataBuff->configBottle.planMount = 0; // ÿ<>ռƻ<D5BC><C6BB><EFBFBD><EFBFBD><EFBFBD>
dataBuff->configBottle.predictMount = 0; // ÿ<><C3BF>Ԥ<EFBFBD><D4A4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
dataBuff->configBottle.warnVolt = 0; // <20><>ѹ<EFBFBD><D1B9><EFBFBD><EFBFBD><EFBFBD>͵<EFBFBD>: 10mV
dataBuff->configBottle.warnVoltH = 0; // <20><>ѹ<EFBFBD><D1B9><EFBFBD><EFBFBD><EFBFBD>ߵ<EFBFBD>: 10mV
dataBuff->configBottle.warnPress = 300; // ѹ<><D1B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>͵<EFBFBD>: KPa
dataBuff->configBottle.warnPressH = 0; // ѹ<><D1B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ߵ<EFBFBD>
dataBuff->configBottle.options = 0x0003; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
dataBuff->configBottle.ts = 0; // <20><><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>
dataBuff->configBottle.dispMode = DISP_MODE_ALL; // <20><>ʾģʽ
#ifdef _PRAXAIR_SERVER_
// praxair
dataBuff->configBottle.floorLevel = 0;
dataBuff->configBottle.span = 0;
dataBuff->configBottle.spanPeriod = 3600;
#else
// others
dataBuff->configBottle.warnVacuumH = 0; // <20><><EFBFBD>նȱ<D5B6><C8B1><EFBFBD><EFBFBD>ߵ㣺0.01Pa
dataBuff->configBottle.warnTempr = -300; // <20>¶ȱ<C2B6><C8B1><EFBFBD><EFBFBD>ߵ<EFBFBD>: <20><>
dataBuff->configBottle.warnTemprH = -300; // <20>¶ȱ<C2B6><C8B1><EFBFBD><EFBFBD>͵<EFBFBD>: <20><>
#endif
Config_ForceValid((rd_buff_t *) &dataBuff->configBottle, CAN_DC_BOTTLE_CONFIG);
}
// <20><><EFBFBD>ô<EFBFBD><C3B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ĭ<EFBFBD><C4AC>ֵ
void Config_setSensorDefParam(data_buff_t *dataBuff)
{
uint8_t i;
memset(&dataBuff->configSensor, 0, sizeof(dataBuff->configSensor));
dataBuff->configSensor.sensorWeight.lowRange = 0;
dataBuff->configSensor.sensorWeight.highRange = 100000ul; // 100000kg
dataBuff->configSensor.sensorWeight.zeroValue = 84030ul; // <20><><EFBFBD><EFBFBD>ֵ
dataBuff->configSensor.sensorWeight.fullValue = 1613530ul; // <20><><EFBFBD><EFBFBD>ֵ
#ifndef _USE_CAPACITY_SENSOR_
#if defined(_DOL_VER_)
dcBuff.configSensor.sensorDPress.lowRange = 0; // 0KPa
dcBuff.configSensor.sensorDPress.highRange = 150; // 150KPa
dcBuff.configSensor.sensorDPress.zeroValue = 710; // <20><><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5>4mA * 130<33><30> / 3.0v
dcBuff.configSensor.sensorDPress.fullValue = 3550; // <20><><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5>20mA * 130<33><30> / 3.0v
#elif defined(_LINDE_HTTPS_VER_)
dcBuff.configSensor.sensorDPress.lowRange = 0; // 0KPa
dcBuff.configSensor.sensorDPress.highRange = 50; // 50KPa
dcBuff.configSensor.sensorDPress.zeroValue = 683; // <20><><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5>0.5v / 3.0v
dcBuff.configSensor.sensorDPress.fullValue = 3823; // <20><><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5>2.8v / 3.0v
#else
dcBuff.configSensor.sensorDPress.lowRange = 0; // 0KPa
dcBuff.configSensor.sensorDPress.highRange = 50; // 50KPa
dcBuff.configSensor.sensorDPress.zeroValue = 683; // <20><><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5>0.5v / 3.0v
dcBuff.configSensor.sensorDPress.fullValue = 3823; // <20><><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5>2.8v / 3.0v
#endif
#else
dataBuff->configSensor.sensorCap.c1ADC = 1114; // <20><><EFBFBD><EFBFBD>c1<63>궨ADCֵ
dataBuff->configSensor.sensorCap.c2ADC = 3417; // <20><><EFBFBD><EFBFBD>c2<63>궨ADCֵ
dataBuff->configSensor.sensorCap.baseC = 708 * 10; // <20>׵<EFBFBD><D7B5><EFBFBD>(pF)
dataBuff->configSensor.sensorCap.refC = 439 * 10; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(pF)
#endif
#ifndef _DOL_VER_
dataBuff->configSensor.sensorPress.lowRange = 0; // 0MPa
dataBuff->configSensor.sensorPress.highRange = 4000; // 4MPa
dataBuff->configSensor.sensorPress.zeroValue = 683; // <20><><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5>0.5v / 3.0v
dataBuff->configSensor.sensorPress.fullValue = 3823; // <20><><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5>2.8v / 3.0v
#else
dataBuff->configSensor.sensorPress.lowRange = 0; // 0MPa
dataBuff->configSensor.sensorPress.highRange = 5000; // 5MPa
dataBuff->configSensor.sensorPress.zeroValue = 710; // <20><><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5>4mA * 130<33><30> / 3.0v
dataBuff->configSensor.sensorPress.fullValue = 3550; // <20><><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5>20mA * 130<33><30> / 3.0v
#endif
for(i = 0; i < sizeof(dataBuff->configSensor.sensorEPress) / sizeof(press_param_t); i++)
{
dataBuff->configSensor.sensorEPress[i].lowRange = 0; // 0MPa
dataBuff->configSensor.sensorEPress[i].highRange = 4000; // 4MPa
dataBuff->configSensor.sensorEPress[i].zeroValue = 710; // <20><><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5>4mA * 130<33><30> / 3.0v
dataBuff->configSensor.sensorEPress[i].fullValue = 3550; // <20><><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5>20mA * 130<33><30> / 3.0v
}
#ifndef _USE_PT100_SENSOR_
for(i = 0; i < sizeof(dataBuff->configSensor.sensorMTempr) / sizeof(tempr_param_t); i++)
{
dataBuff->configSensor.sensorMTempr[i].lowRange = -200; // -200<30><30>
dataBuff->configSensor.sensorMTempr[i].highRange = 80; // 80<38><30>
dataBuff->configSensor.sensorMTempr[i].zeroValue = 710; // <20><><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5>4mA * 130<33><30> / 3.0v
dataBuff->configSensor.sensorMTempr[i].fullValue = 3550; // <20><><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5>20mA * 130<33><30> / 3.0v
}
#else
for(i = 0; i < sizeof(dataBuff->configSensor.sensorPTempr) / sizeof(pt100_param_t); i++)
{
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>18<31><38><EFBFBD><EFBFBD>ÿ<EFBFBD>׵<EFBFBD><D7B5><EFBFBD>Ϊ0<CEAA><30><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ÿ<EFBFBD>½<EFBFBD>1<EFBFBD><EFBFBD>ߵ<EFBFBD><DFB5><EFBFBD><EFBFBD>½<EFBFBD>1.3<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>߳<EFBFBD><EFBFBD><EFBFBD>Ϊ1.7<EFBFBD>ס<EFBFBD>
// <20><><EFBFBD>˴<EFBFBD>Ĭ<EFBFBD><C4AC>Ϊ<EFBFBD><CEAA><EFBFBD>Ե<EFBFBD><D4B5>ߵ<EFBFBD><DFB5>裬ʵ<E8A3AC>ʿɸ<CABF><C9B8>ݲ<EFBFBD><DDB2><EFBFBD>ƫ<EFBFBD><C6AB><EFBFBD>ֶ<EFBFBD><D6B6><EFBFBD><EFBFBD>ڣ<EFBFBD>
// <20><>0<EFBFBD><30><EFBFBD>£<EFBFBD><C2A3><EFBFBD><EFBFBD>ߵ<EFBFBD><DFB5><EFBFBD>Ϊ0*1.7*<2A><>1- 18 * 1.3<EFBFBD>룩 = 0<><30>
// PT100<30><30><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5><EFBFBD>¶ȵĹ<C8B5>ϵֱ<CFB5>Ӳ<EFBFBD><D3B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>0<EFBFBD><30><EFBFBD><EFBFBD>Ϊ100<30><30><EFBFBD><EFBFBD>
dataBuff->configSensor.sensorPTempr[i].calibrateT = 0 * 10; // У׼<D0A3><EFBFBD>0<EFBFBD><30>
dataBuff->configSensor.sensorPTempr[i].calibrateR = (int16_t) ((100 * _PT100_MULTI_ + 0) * 10); // 0<><30><EFBFBD><EFBFBD>PT100<30><30><EFBFBD><EFBFBD>+<2B>ߵ<EFBFBD><DFB5>裨1.7<EFBFBD>ף<EFBFBD>
#if _PT100_MULTI_ == 5
// <20><>-200<30><30><EFBFBD>£<EFBFBD><C2A3><EFBFBD><EFBFBD>ߵ<EFBFBD><DFB5><EFBFBD>Ϊ0*1.7*<2A><>1- 218 * 1.3<EFBFBD>룩 = 0<><30><EFBFBD><EFBFBD>PT500<30><30><EFBFBD><EFBFBD>Ϊ92.6<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>²<EFBFBD><EFBFBD>õ<EFBFBD>ѹΪ2.917v
// (2.5-(0+92.6+4500)/(0+92.6+9500)*5)*15.7+1.25=2.917v
dataBuff->configSensor.sensorPTempr[i].zeroValue = 3983; // <20><><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5>2.917v / 3.0v
// <20><>80<38><30><EFBFBD>£<EFBFBD><C2A3><EFBFBD><EFBFBD>ߵ<EFBFBD><DFB5><EFBFBD>Ϊ0*1.7*<2A><>1+ 62 * 1.3<EFBFBD>룩 = 0<><30><EFBFBD><EFBFBD>PT500<30><30><EFBFBD><EFBFBD>Ϊ654.5<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>²<EFBFBD><EFBFBD>õ<EFBFBD>ѹΪ0.653v
// (2.5-(0+654.5+4500)/(0+654.5+9500)*5)*15.7+1.25=0.653v
dataBuff->configSensor.sensorPTempr[i].fullValue = 891; // <20><><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5>0.653v / 3.0v
#else // PT1000
// <20><>-200<30><30><EFBFBD>£<EFBFBD><C2A3><EFBFBD><EFBFBD>ߵ<EFBFBD><DFB5><EFBFBD>Ϊ0*1.7*<2A><>1-218 * 1.3<EFBFBD>룩 = 0<><30><EFBFBD><EFBFBD>PT1000<30><30><EFBFBD><EFBFBD>Ϊ185.2<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>²<EFBFBD><EFBFBD>õ<EFBFBD>ѹΪ2.917v
// (2.5-(0+185.2+9000)/(0+185.2+19000)*5)*15.7+1.25=2.917v
dataBuff->configSensor.sensorPTempr[i].zeroValue = 3983; // <20><><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5>2.917v / 3.0v
// <20><>80<38><30><EFBFBD>£<EFBFBD><C2A3><EFBFBD><EFBFBD>ߵ<EFBFBD><DFB5><EFBFBD>Ϊ0*1.7*<2A><>1+62 * 1.3<EFBFBD>룩 = 0<><30><EFBFBD><EFBFBD>PT1000<30><30><EFBFBD><EFBFBD>Ϊ1309<30><39><EFBFBD><EFBFBD><EFBFBD>ڵ<EFBFBD><DAB5><EFBFBD><EFBFBD>²<EFBFBD><C2B2>õ<EFBFBD>ѹΪ0.653v
// (2.5-(0+1309+9000)/(0+1309+19000)*5)*15.7+1.25=0.653v
dataBuff->configSensor.sensorPTempr[i].fullValue = 891; // <20><><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5>0.653v / 3.0v
#endif
}
#endif
Config_ForceValid((rd_buff_t *) &dataBuff->configSensor, CAN_DC_SENSOR_CONFIG);
}
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݲ<EFBFBD><DDB2><EFBFBD><EFBFBD><EFBFBD>Ĭ<EFBFBD><C4AC>ֵ
void Config_setDataDefParam(data_buff_t *dataBuff)
{
memset(&dataBuff->configData, 0, sizeof(dataBuff->configData));
#if defined(_PRAXAIR_SERVER_)// || defined(_LINDE_SERVER_)
strcpy(dataBuff->configData.server, "tts.praxair.com.cn");
dataBuff->configData.port = 7005;
#elif defined(_LANSHI_SERVER_)
strcpy(dataBuff->configData.server, "pazx.cd-ls.cn");
dataBuff->configData.port = 8088;
strcpy(dataBuff->configData.gpsServer, "track.cd-ls.cn");
dataBuff->configData.gpsPort = 8070;
#elif defined(_FUSHIKANG_SERVER_)
strcpy(dataBuff->configData.server, "183.56.160.149 ");
dataBuff->configData.port = 7888;
#elif defined(_ZHONGHAIYOU_SERVER_) // mqtt<74><EFBFBD><E1BDBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
dataBuff->configData.port = 1883;
#elif defined(_LINDE_SERVER_) // https<70><EFBFBD><E1BDBB><EFBFBD>ֵ·<D6B5><C2B7><EFBFBD><EFBFBD><EFBFBD>
strcpy(dataBuff->configData.server, "Telemetry.Linde.com");
dataBuff->configData.port = 443;
#else // _ANJIEHUI_SERVER_
strcpy(dataBuff->configData.server, "data.ajhiot.com"); // 2021.03.31<EFBFBD>޸<EFBFBD>
dataBuff->configData.port = 8088;
strcpy(dataBuff->configData.gpsServer, "track.ajhiot.com");
dataBuff->configData.gpsPort = 8070;
#endif
#if defined(_PRAXAIR_SERVER_)// || defined(_LINDE_SERVER_)
strcpy(dataBuff->configData.upgServer, dataBuff->configData.server);
#else
strcpy(dataBuff->configData.upgServer, "extra.cd-ls.cn");
#endif
dataBuff->configData.upgPort = 7006;
#if defined(_PRAXAIR_TTS_VER_) || defined(_PRAXAIR_DOL_VER_)
dataBuff->configData.intervalSample = 3600;
dataBuff->configData.intervalTrans = 21600;
#elif defined(_YINGDE_TTS_VER_) || defined(_YINGDE_DOL_VER_)
dataBuff->configData.intervalSample = 900;
dataBuff->configData.intervalTrans = 7200;
#elif defined(_LINDE_HTTPS_CHARGE_VER_) || defined(_LINDE_HTTPS_VER_)
dataBuff->configData.intervalSample = 900;
dataBuff->configData.intervalTrans = 21600;
#elif defined(_MESSER_TTS_VER_)
dataBuff->configData.intervalSample = 1800;
dataBuff->configData.intervalTrans = 21600; //1800; // <20>ݲ<EFBFBD><DDB2>ϴ<EFBFBD><CFB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD>ͷ<EFBFBD><CDB7><EFBFBD>Ƶ<EFBFBD><C6B5>
#elif defined(_FAYEKONG_TTS_VER_)
dataBuff->configData.intervalSample = 1800;
dataBuff->configData.intervalTrans = 21600;
#elif defined(_BAOGANG_TTS_VER_)
dataBuff->configData.intervalSample = 1800;
dataBuff->configData.intervalTrans = 3600;
#elif defined(_BOX_VER_)
dataBuff->configData.intervalSample = 3600;
dataBuff->configData.intervalTrans = 3600;
#elif defined(_CAOCHE_VER_)
dataBuff->configData.intervalSample = 300;
dataBuff->configData.intervalTrans = 300;
#elif defined(_CHATE_TTS_VER_)
dataBuff->configData.intervalSample = 1800;
dataBuff->configData.intervalTrans = 21600;
#else // _LANSHI_TTS_VER_
dataBuff->configData.intervalSample = 3600;
dataBuff->configData.intervalTrans = 21600;
#endif
dataBuff->configData.intervalGPS = 4;
dataBuff->configData.intervalGPSTrans = 60;
dataBuff->configData.timeLag = 8;
Config_ForceValid((rd_buff_t *) &dataBuff->configData, CAN_DC_DATA_CONFIG);
}
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ĭ<EFBFBD><C4AC>ֵ
void Config_setDisplayDefParam(data_buff_t *dataBuff)
{
memset(&dataBuff->configDisplay, 0, sizeof(dataBuff->configDisplay));
dataBuff->configDisplay.lightDelay = 0;
dataBuff->configDisplay.dispDelay = 30;
dataBuff->configDisplay.unit = DISP_UNIT_METRIC;
dataBuff->configDisplay.L_Unit = UNIT_PCT;
strcpy(dataBuff->configDisplay.pwd1, "2222"); // <20><><EFBFBD>޲<EFBFBD><DEB2><EFBFBD><EFBFBD>޸<EFBFBD><DEB8><EFBFBD><EFBFBD><EFBFBD>
strcpy(dataBuff->configDisplay.pwd2, "3003"); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EAB6A8><EFBFBD><EFBFBD>
strcpy(dataBuff->configDisplay.APN, "CMIOT");
dataBuff->configDisplay.bdCommander = 0x03300D; // <20><><EFBFBD><EFBFBD>ָ<EFBFBD>ӻ<EFBFBD><D3BB><EFBFBD><EFBFBD><EFBFBD>
dataBuff->configDisplay.op_HARDWARE_VER_MAJOR = HARDWARE_VER_MAJOR; // Ӳ<><D3B2><EFBFBD><EFBFBD><EFBFBD>ã<EFBFBD><C3A3><EFBFBD>ͬ<EFBFBD>ͻ<EFBFBD><CDBB><EFBFBD>ѡ<EFBFBD><D1A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϣ<EFBFBD>
#ifdef _DISP_MMWC_ONLY_
dataBuff->configDisplay.op_DISP_MMWC_ONLY = 1;
#endif
#ifdef _DOL_VER_
dataBuff->configDisplay.op_DOL_VER = 1;
#endif
#ifdef _BOX_VER_
dataBuff->configDisplay.op_BOX_VER = 1;
#endif
#ifdef _CELL_LOCATION_
dataBuff->configDisplay.op_CELL_LOCATION = 1;
#endif
#ifdef _LEVEL_SENSOR_ONLY_
dataBuff->configDisplay.op_LEVEL_SENSOR_ONLY = 1;
#endif
#ifdef _USE_PT100_SENSOR_
dataBuff->configDisplay.op_USE_PT100_SENSOR = 1;
#endif
dataBuff->configDisplay.op_PT100_MULTI = _PT100_MULTI_;
#ifdef _PT100_3LINE_
dataBuff->configDisplay.op_PT100_3LINE = 1;
#endif
#ifdef _DIFF_RESIST_
dataBuff->configDisplay.op_DIFF_RESIST = 1;
#endif
#ifdef _SEND_GPS_DATA_
dataBuff->configDisplay.op_SEND_GPS_DATA = 1;
#endif
#ifdef _USE_CAPACITY_SENSOR_
dataBuff->configDisplay.op_USE_CAPACITY_SENSOR = 1;
#endif
#if defined(_ZHONGHAIYOU_SERVER_) // mqtt<74><EFBFBD><E1BDBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
dataBuff->configDisplay.op_SERVER_PROTOCOL = SERVER_PROTOCOL_MQTT;
dataBuff->configDisplay.op_SERVER_INDEX = 1;
#elif defined(_LINDE_SERVER_) // https<70><EFBFBD><E1BDBB><EFBFBD>ֵ·<D6B5><C2B7><EFBFBD><EFBFBD><EFBFBD>
dataBuff->configDisplay.op_SERVER_PROTOCOL = SERVER_PROTOCOL_HTTPS;
dataBuff->configDisplay.op_SERVER_INDEX = 0;
#else
dataBuff->configDisplay.op_SERVER_PROTOCOL = SERVER_PROTOCOL_TCP;
#endif
#ifdef _FUSHIKANG_SERVER_
dataBuff->configDisplay.op_UNIDIR_COMM = 1;
#endif
Config_ForceValid((rd_buff_t *) &dataBuff->configDisplay, CAN_DC_DISPLAY_CONFIG);
}
// <20><><EFBFBD><EFBFBD><EFBFBD>ɼ<EFBFBD><C9BC><EFBFBD>ϵͳ<CFB5><CDB3>Ϣ
void Config_fillSampleInfo(data_buff_t *dataBuff)
{
memset(&dataBuff->sampleInfo, 0, sizeof(dataBuff->sampleInfo));
dataBuff->sampleInfo.boardFlag = CONFIG_BOARD_SELF;
dataBuff->sampleInfo.hardVer.major = dcBuff.configDisplay.op_HARDWARE_VER_MAJOR;
dataBuff->sampleInfo.hardVer.minor = HARDWARE_VER_MINOR;
dataBuff->sampleInfo.softVer.major = SOFTWARE_VER_MAJOR;
dataBuff->sampleInfo.softVer.minor = SOFTWARE_VER_MINOR;
dataBuff->sampleInfo.softDate.year = SOFTWARE_DATE_YEAR;
dataBuff->sampleInfo.softDate.month = SOFTWARE_DATE_MONTH;
dataBuff->sampleInfo.softDate.day = SOFTWARE_DATE_DAY;
}
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դ<EFBFBD><D4B4>ϵͳ<CFB5><CDB3>Ϣ
void Config_fillPowerInfo(data_buff_t *dataBuff)
{
memset(&dataBuff->powerInfo, 0, sizeof(dataBuff->powerInfo));
dataBuff->powerInfo.boardFlag = CONFIG_BOARD_SELF;
dataBuff->powerInfo.hardVer.major = dcBuff.configDisplay.op_HARDWARE_VER_MAJOR;
dataBuff->powerInfo.hardVer.minor = HARDWARE_VER_MINOR;
dataBuff->powerInfo.softVer.major = SOFTWARE_VER_MAJOR;
dataBuff->powerInfo.softVer.minor = SOFTWARE_VER_MINOR;
dataBuff->powerInfo.softDate.year = SOFTWARE_DATE_YEAR;
dataBuff->powerInfo.softDate.month = SOFTWARE_DATE_MONTH;
dataBuff->powerInfo.softDate.day = SOFTWARE_DATE_DAY;
dataBuff->powerInfo.protocolVer.major = REPORT_PROTOCOL_VER_MAJOR;
dataBuff->powerInfo.protocolVer.minor = REPORT_PROTOCOL_VER_MINOR;
dataBuff->powerInfo.baudrate = DTU_BAUDRATE;
dataBuff->powerInfo.parity = DTU_PARITY;
}
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE>ϵͳ<CFB5><CDB3>Ϣ
void Config_fillDisplayInfo(data_buff_t *dataBuff)
{
memset(&dataBuff->displayInfo, 0, sizeof(dataBuff->displayInfo));
dataBuff->displayInfo.boardFlag = CONFIG_BOARD_SELF;
dataBuff->displayInfo.hardVer.major = dcBuff.configDisplay.op_HARDWARE_VER_MAJOR;
dataBuff->displayInfo.hardVer.minor = HARDWARE_VER_MINOR;
dataBuff->displayInfo.softVer.major = SOFTWARE_VER_MAJOR;
dataBuff->displayInfo.softVer.minor = SOFTWARE_VER_MINOR;
dataBuff->displayInfo.softDate.year = SOFTWARE_DATE_YEAR;
dataBuff->displayInfo.softDate.month = SOFTWARE_DATE_MONTH;
dataBuff->displayInfo.softDate.day = SOFTWARE_DATE_DAY;
}
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϵͳ<CFB5><CDB3>Ϣ
void Config_fillBluetoothInfo(data_buff_t *dataBuff)
{
memset(&dataBuff->bluetoothInfo, 0, sizeof(dataBuff->bluetoothInfo));
dataBuff->bluetoothInfo.boardFlag = CONFIG_BOARD_SELF;
dataBuff->bluetoothInfo.hardVer.major = dcBuff.configDisplay.op_HARDWARE_VER_MAJOR;
dataBuff->bluetoothInfo.hardVer.minor = HARDWARE_VER_MINOR;
dataBuff->bluetoothInfo.softVer.major = SOFTWARE_VER_MAJOR;
dataBuff->bluetoothInfo.softVer.minor = SOFTWARE_VER_MINOR;
dataBuff->bluetoothInfo.softDate.year = SOFTWARE_DATE_YEAR;
dataBuff->bluetoothInfo.softDate.month = SOFTWARE_DATE_MONTH;
dataBuff->bluetoothInfo.softDate.day = SOFTWARE_DATE_DAY;
dataBuff->bluetoothInfo.protocolVer.major = BLUETOOTH_PROTOCOL_VER_MAJOR;
dataBuff->bluetoothInfo.protocolVer.minor = BLUETOOTH_PROTOCOL_VER_MINOR;
dataBuff->bluetoothInfo.baudrate = BLUETOOTH_BAUDRATE;
dataBuff->bluetoothInfo.parity = BLUETOOTH_PARITY;
}
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>޸ı<DEB8>־
uint32_t Config_CheckUpdate(data_buff_t *dataBuff)
{
uint8_t i;
if(!dataBuff->configBottle.updateFlag)
return FALSE;
for(i = 0; i < 6; i++)
{
if(dataBuff->configBottle.PSN[i] != 0)
return TRUE;
}
return FALSE;
}