1771 lines
88 KiB
C
1771 lines
88 KiB
C
/*
|
||
* File: __GP30W_GP30_APP_H
|
||
* Author:
|
||
*
|
||
* Created on:2015-5-18
|
||
*/
|
||
|
||
#ifndef __UWater_GP22_APP_H
|
||
#define __UWater_GP22_APP_H
|
||
|
||
#include "type.h"
|
||
#include "UWater_gp22_driver.h"
|
||
#include "UWater_TemperatureCalculate_app.h"
|
||
|
||
#include <string.h>
|
||
|
||
/*--------------------------------- Variable Define ------------------------------------*/
|
||
/*************************宏定义****************************/
|
||
#define REAL_XTAL_CLOCK 4000000 //用于计算精确1US定时器的理论时钟频率
|
||
#define TEST_ALARMA_RTCC_US (FACTOR_1*1000000) //鉴定状态计算流量的时间间隔
|
||
#define CALCULATED_COEFFICIENT (STM32_SYSCLK/REAL_XTAL_CLOCK)
|
||
#define ALARMA_STOP_CHECK_TICKS ((TEST_ALARMA_RTCC_US + 100000)*CALCULATED_COEFFICIENT) //防护的精确时间间隔
|
||
|
||
|
||
/*************************表计RAM区复位宏定义****************************/
|
||
#define GP30_COPY_RESET_TEST_FLAG 0x5A6B7C8D //软件复位前的表计处于检定状态
|
||
#define GP30_COPY_RESET_NORMAL_FLAG 0x8D7C6B5A //软件复位前的表计处于非检定状态
|
||
#define MCU_RESET_JUDGE_FLAG 0x3A4B5C6D //是否为软件复位的标志
|
||
|
||
/*************************时间差0流量校准标志宏定义****************************/
|
||
#define DIFTOF_CALIBRATION_FLAG 0xA1B2C3D4E5F6A7B8 //启用零流量校准标志字
|
||
//#define DIFTOF_HIGH_TEMP_CALIBRATION_VALUE 0x189//启用校准的情况下,高温时间差根据测试结果多减去1500ps
|
||
//#define DIFTOF_HIGH_TEMP_CALIBRATION_VALUE_FLOAT (float)0.006 //高温校准时,时间差提高1500ps(0.006=1.5ns/250),抵消温度大于35度时减少的1500ps
|
||
//#define DIFTOF_HIGH_TEMP_START_FLOW_COMPENSATE 0x106//启用校准的情况下,30度以上始动流量提高1000ps(0x106=262=1*65536/250)
|
||
//#define DIFTOF_LOW_TEMP_START_FLOW_COMPENSATE 0xB7//启用校准的情况下,30度及30度以下始动流量提高700ps(0xB8=184=0.7*65536/250)
|
||
#define DIFTOF_CALIBRATION_CNT 41400//每天累计23小时走水,则认为需要自校准41400=3600*23/2
|
||
#define DIFTOF_CALIBRATION_MIN (float)-0.04//10ns/250=0.04
|
||
#define DIFTOF_CALIBRATION_MAX (float)0.04
|
||
/************************表计开关阀判断参数****************************/
|
||
#define FLOAT_15NS (float)0.06//15ns时间差对应的滤波时的float类型数值=15/250
|
||
#define FLOAT_2NS (float)0.04//10ns时间差对应的滤波时的float类型数值=10/250
|
||
#define TOF_UP_AM 150//up振幅平均阈值
|
||
#define TOF_DOWN_AM 150//down振幅平均阈值
|
||
|
||
#define UP_AM_MAX 600
|
||
#define DOWN_AM_MAX 600
|
||
|
||
|
||
#if DN15_BRASS_40KPA_GP30_32768 || WDFS_DN15_BRASS_40KPA_GP30_32768 //条件编译
|
||
#define FRAME_FIRST_POWER_FLG 0x16
|
||
#define FRAME_CALIBER 0x15
|
||
#define FM_METER_TYPE 0x04 //表计类型DN15 40Kpa 04
|
||
#define GP30_APP_DNX 0X15
|
||
|
||
#elif LLGS_DN15_BRASS_40KPA_GP30_32768 || LLGS_WDFS_DN15_BRASS_40KPA_GP30_32768
|
||
#define FRAME_FIRST_POWER_FLG 0x16 //修改
|
||
#define FRAME_CALIBER 0x15
|
||
#define FM_METER_TYPE 0x10 //表计类型BM_DN15 63Kpa 16
|
||
#define GP30_APP_DNX 0X15
|
||
|
||
#elif ROUND_LLGS_DN15_BRASS_40KPA_GP30_32768 || ROUND_LLGS_WDFS_DN15_BRASS_40KPA_GP30_32768 || Buxiugang_LLGS_WDFS_DN15_BXG_40KPA_GP30_32768 || Plastic_LLGS_WDFS_DN15_PALSTIC_40KPA_GP30_32768
|
||
#define FRAME_FIRST_POWER_FLG 0x16
|
||
#define FRAME_CALIBER 0x15
|
||
#define FM_METER_TYPE 0x1A //圆壳表 26
|
||
#define GP30_APP_DNX 0X15
|
||
|
||
#elif ROUND_LLGS_XFZ_DN15_BRASS_40KPA_GP30_32768
|
||
#define FRAME_FIRST_POWER_FLG 0x16
|
||
#define FRAME_CALIBER 0x15
|
||
#define FM_METER_TYPE 0x1A //圆壳表 28
|
||
#define GP30_APP_DNX 0X15
|
||
|
||
//20211204
|
||
#elif PF_DN15_BRASS_63KPA_GP30_32768
|
||
#define FRAME_FIRST_POWER_FLG 0x16
|
||
#define FRAME_CALIBER 0x15
|
||
#define FM_METER_TYPE 0x13 //表计类型 19
|
||
#define GP30_APP_DNX 0X15
|
||
|
||
#elif BM_DN15_BRASS_63KPA_GP30_32768
|
||
#define FRAME_FIRST_POWER_FLG 0x16
|
||
#define FRAME_CALIBER 0x15
|
||
#define FM_METER_TYPE 0x01 //表计类型BM_DN15 63Kpa 01
|
||
#define GP30_APP_DNX 0X15
|
||
|
||
#elif MID_DN15_BRASS_63KPA_GP30_32768
|
||
#define FRAME_FIRST_POWER_FLG 0x16
|
||
#define FRAME_CALIBER 0x15
|
||
#define FM_METER_TYPE 0x07 //表计类型DN15 63Kpa 07
|
||
#define GP30_APP_DNX 0X15
|
||
|
||
#elif EN_DN15_BRASS_63KPA_GP30_32768
|
||
#define FRAME_FIRST_POWER_FLG 0x16
|
||
#define FRAME_CALIBER 0x15
|
||
#define FM_METER_TYPE 0x0E //表计类型DN15 63Kpa 14
|
||
#define GP30_APP_DNX 0X15
|
||
|
||
#elif DN20_BRASS_40KPA_GP30_32768 || WDFS_DN20_BRASS_40KPA_GP30_32768
|
||
#define FRAME_FIRST_POWER_FLG 0x20
|
||
#define FRAME_CALIBER 0x20
|
||
#define FM_METER_TYPE 0x05 //表计类型DN20 40Kpa 05
|
||
#define GP30_APP_DNX 0X20
|
||
|
||
#elif BM_DN20_BRASS_63KPA_GP30_32768
|
||
#define FRAME_FIRST_POWER_FLG 0x20
|
||
#define FRAME_CALIBER 0x20
|
||
#define FM_METER_TYPE 0x02 //表计类型BM_DN20 40Kpa 02
|
||
#define GP30_APP_DNX 0X20
|
||
|
||
#elif MID_DN20_BRASS_63KPA_GP30_32768
|
||
#define FRAME_FIRST_POWER_FLG 0x20
|
||
#define FRAME_CALIBER 0x20
|
||
#define FM_METER_TYPE 0x08 //表计类型DN20 63Kpa 08
|
||
#define GP30_APP_DNX 0X20
|
||
|
||
#elif EN_DN20_BRASS_63KPA_GP30_32768
|
||
#define FRAME_FIRST_POWER_FLG 0x20
|
||
#define FRAME_CALIBER 0x20
|
||
#define FM_METER_TYPE 0x0F //表计类型BM_DN20 40Kpa 0F
|
||
#define GP30_APP_DNX 0X20
|
||
|
||
#elif LLGS_DN20_BRASS_40KPA_GP30_32768 || LLGS_WDFS_DN20_BRASS_40KPA_GP30_32768
|
||
#define FRAME_FIRST_POWER_FLG 0x20
|
||
#define FRAME_CALIBER 0x20
|
||
#define FM_METER_TYPE 0x11 //表计类型LLGS_DN20 40Kpa 17
|
||
#define GP30_APP_DNX 0X20
|
||
|
||
#elif ROUND_LLGS_DN20_BRASS_40KPA_GP30_32768 || ROUND_LLGS_WDFS_DN20_BRASS_40KPA_GP30_32768 || Buxiugang_LLGS_WDFS_DN20_BXG_40KPA_GP30_32768
|
||
#define FRAME_FIRST_POWER_FLG 0x20
|
||
#define FRAME_CALIBER 0x20
|
||
#define FM_METER_TYPE 0x1B //圆壳表 27
|
||
#define GP30_APP_DNX 0X20
|
||
|
||
#elif ROUND_LLGS_XFZ_DN20_BRASS_40KPA_GP30_32768
|
||
#define FRAME_FIRST_POWER_FLG 0x20
|
||
#define FRAME_CALIBER 0x20
|
||
#define FM_METER_TYPE 0x1D //圆壳表 29
|
||
#define GP30_APP_DNX 0X20
|
||
|
||
//20211205
|
||
#elif PF_DN20_BRASS_63KPA_GP30_32768
|
||
#define FRAME_FIRST_POWER_FLG 0x20
|
||
#define FRAME_CALIBER 0x14
|
||
#define FM_METER_TYPE 0x14 //表计类型PF_DN20_BRASS_63KPA_GP30_32768 20
|
||
#define GP30_APP_DNX 0X20
|
||
|
||
#elif DN25_BRASS_40KPA_GP30_32768
|
||
#define FRAME_FIRST_POWER_FLG 0x25
|
||
#define FRAME_CALIBER 0x25
|
||
#define FM_METER_TYPE 0x09 //表计类型DN25 40Kpa 09
|
||
#define GP30_APP_DNX 0X25
|
||
|
||
#elif BM_DN25_BRASS_63KPA_GP30_32768
|
||
#define FRAME_FIRST_POWER_FLG 0x25
|
||
#define FRAME_CALIBER 0x25
|
||
#define FM_METER_TYPE 0x03 //表计类型DN25 63Kpa 03
|
||
#define GP30_APP_DNX 0X25
|
||
|
||
#elif MID_DN25_BRASS_63KPA_GP30_32768
|
||
#define FRAME_FIRST_POWER_FLG 0x25
|
||
#define FRAME_CALIBER 0x25
|
||
#define FM_METER_TYPE 0x06 //表计类型DN25 63Kpa 06
|
||
#define GP30_APP_DNX 0X25
|
||
|
||
#elif LLGS_DN25_BRASS_40KPA_GP30_32768
|
||
#define FRAME_FIRST_POWER_FLG 0x25
|
||
#define FRAME_CALIBER 0x25
|
||
#define FM_METER_TYPE 0x12 //表计类型DN25 40Kpa 18
|
||
#define GP30_APP_DNX 0X25
|
||
//20211205
|
||
#elif PF_DN25_BRASS_63KPA_GP30_32768
|
||
#define FRAME_FIRST_POWER_FLG 0x25
|
||
#define FRAME_CALIBER 0x25
|
||
#define FM_METER_TYPE 0x15 //表计类型DN25 40Kpa 21
|
||
#define GP30_APP_DNX 0X25
|
||
|
||
#elif DN32_BRASS_63KPA_GP30_32768
|
||
#define FRAME_FIRST_POWER_FLG 0x32
|
||
#define FRAME_CALIBER 0x20
|
||
#define FM_METER_TYPE 0x16 //表计类型DN32 63Kpa 22
|
||
#define GP30_APP_DNX 0X32
|
||
|
||
#elif BM_DN32_BRASS_63KPA_GP30_32768
|
||
#define FRAME_FIRST_POWER_FLG 0x32
|
||
#define FRAME_CALIBER 0x32
|
||
#define FM_METER_TYPE 0x0C //表计类型DN32 63Kpa 0C
|
||
#define GP30_APP_DNX 0X32
|
||
//20211205
|
||
#elif PF_DN32_BRASS_63KPA_GP30_32768
|
||
#define FRAME_FIRST_POWER_FLG 0x32
|
||
#define FRAME_CALIBER 0x20
|
||
#define FM_METER_TYPE 0x17 //表计类型DN32 63Kpa 23 //FM_METER_TYPE没改
|
||
#define GP30_APP_DNX 0X32
|
||
|
||
#elif DN40_BRASS_63KPA_GP30_32768
|
||
#define FRAME_FIRST_POWER_FLG 0x40
|
||
#define FRAME_CALIBER 0x28
|
||
#define FM_METER_TYPE 0x19 //表计类型DN40 63Kpa 25
|
||
#define GP30_APP_DNX 0X40
|
||
#elif BM_DN40_BRASS_63KPA_GP30_32768
|
||
#define FRAME_FIRST_POWER_FLG 0x40
|
||
#define FRAME_CALIBER 0x40
|
||
#define FM_METER_TYPE 0x0D //表计类型DN40 63Kpa 0D
|
||
#define GP30_APP_DNX 0X40
|
||
|
||
//20211205
|
||
#elif PF_DN40_BRASS_63KPA_GP30_32768
|
||
#define FRAME_FIRST_POWER_FLG 0x40
|
||
#define FRAME_CALIBER 0x28
|
||
#define FM_METER_TYPE 0x18 //表计类型DN40 63Kpa 24 //FM_METER_TYPE没改
|
||
#define GP30_APP_DNX 0X40
|
||
|
||
#endif
|
||
|
||
#if DN15_BRASS_40KPA_GP30_32768 || WDFS_DN15_BRASS_40KPA_GP30_32768 || LLGS_DN15_BRASS_40KPA_GP30_32768 || LLGS_WDFS_DN15_BRASS_40KPA_GP30_32768
|
||
#define DEFAULT_START_FLOW 0x00B7 //DN15铜40KPA时的使动流量数值 700ns
|
||
#define FLOW_RATE_FILTER_COEFFICIENT (float)0.2//瞬时流量滤波系数
|
||
#define GP30_DIFTOF_FILTER_COEFFICIENT (FLOW_RATE_FILTER_COEFFICIENT*(float)2)//活塞台子时间差滤波系数
|
||
#define DIFTOF_COEFFICIENT (float)0.185217176// 16L/h对应的时间差均值2.96347
|
||
#define R400Q1 (float)6.25
|
||
#define R400Q2 (float)10
|
||
#define R250Q2 (float)16
|
||
#define Q3_3_3 (float)825
|
||
#define Q3_6_6 (float)1650
|
||
#define MIN_FLOW_0_6 0x50000//最小流量的50%
|
||
#define MAX_FLOW_1_02 0xC730000//过载流量的102%
|
||
#define MIN_FLOW_0_3 0x30000//最小流量的30%
|
||
#define LIMIT_FLOW_1_5Q4 4680//1.5倍的过载流量
|
||
#define LIMIT_DIFTOF_FORWARD 0x00033333 //-200~-800ns时间差判断,时间差为正
|
||
#define LIMIT_DIFTOF_REVERSE 0x8000CCCC //-200~-800ns时间差判断,时间差为负
|
||
#define SEGMENT_NUM_SMALL 9
|
||
#define SEGMENT_NUM_MIDDLE 25//2021-0703
|
||
#define SEGMENT_NUM_LARGE 85
|
||
#define SEGMENT_NUM_ERROR_MIDDLE (SEGMENT_NUM_LARGE/2) //(此处DN15的值用的同一条曲线,只为了兼容4段)误差曲线新增,为了适配4段的建模
|
||
|
||
#define DXS_SEGMENT_NUM_LARGE 280 //多项式的基础模型分段值
|
||
|
||
#define CALIBRATION_PROTECT_VALUE ((float)0.9*R400Q2) //防冻校准流速小于0.9倍Q1即不走数
|
||
#define TOF_AM_VALUE 190
|
||
#define TOF_UP_AM_0_8 (0.8*TOF_AM_VALUE)//up最大幅值0.8倍
|
||
#define TOF_DOWN_AM_0_8 (0.8*TOF_AM_VALUE)//down最大幅值0.8倍
|
||
#define Q1_0_8 (float)8//0.8倍的R250的Q1数值
|
||
|
||
#define TOF_UP_DATA (float)55909.72//20度下UP单程时间ns
|
||
#define LEGENTH_SPEED_SOUND (float)82872.617//声路长度=1482.257772*TOF_UP_DATA 单位um
|
||
#define LEGENTH_SPEED_SOUND_DAOSHU (float)6.03335598778e-9//声路长度倒数
|
||
|
||
//理论模型
|
||
#define REAL_SOUND_PATH_LENGTH (float)59.8//(float)74.863 //L*cos 还是 D*cot—— D准确 ——————————————2021-2-1改为弦向尺寸 2021-7-21 ——15的59.8;20的59.95
|
||
#define MEASYRING_TUBE_DIAMETER (float)10.7 //15的10.7, 20的13.6
|
||
#define FLOW_RATE_MULTIPLIER (float)8.361204e-9//(float)6.6788667e-9 // 流速计算常数= 1e-9/(2*(L有效))/0.001
|
||
#define FLOW_MULTIPLIER (float)335.9905 // 流量计算常数= (3.1416*D*D*1e-6/4 )*3600 *1000L/h //面积 15:93.3307 20:146.631
|
||
|
||
//流量曲线的数量开关
|
||
//#define SUBSECTION_NUM_THREE 1
|
||
#define SUBSECTION_NUM_FOUR 1
|
||
//#define SUBSECTION_NUM_FIVE 1
|
||
|
||
#elif ROUND_LLGS_DN15_BRASS_40KPA_GP30_32768 || ROUND_LLGS_WDFS_DN15_BRASS_40KPA_GP30_32768
|
||
#define DEFAULT_START_FLOW 0x00B7 //DN15铜40KPA时的使动流量数值 700ns
|
||
#define FLOW_RATE_FILTER_COEFFICIENT (float)0.2//瞬时流量滤波系数
|
||
#define GP30_DIFTOF_FILTER_COEFFICIENT (FLOW_RATE_FILTER_COEFFICIENT*(float)2)//活塞台子时间差滤波系数
|
||
#define DIFTOF_COEFFICIENT (float)0.185217176// 16L/h对应的时间差均值2.96347
|
||
#define R400Q1 (float)6.25
|
||
#define R400Q2 (float)10
|
||
#define R250Q2 (float)16
|
||
#define Q3_3_3 (float)825
|
||
#define Q3_6_6 (float)1650
|
||
#define MIN_FLOW_0_6 0x50000//最小流量的50%
|
||
#define MAX_FLOW_1_02 0xC730000//过载流量的102%
|
||
#define MIN_FLOW_0_3 0x30000//最小流量的30%
|
||
#define LIMIT_FLOW_1_5Q4 4680//1.5倍的过载流量
|
||
#define LIMIT_DIFTOF_FORWARD 0x00033333 //-200~-800ns时间差判断,时间差为正
|
||
#define LIMIT_DIFTOF_REVERSE 0x8000CCCC //-200~-800ns时间差判断,时间差为负
|
||
#define SEGMENT_NUM_SMALL 15
|
||
#define SEGMENT_NUM_MIDDLE 43
|
||
#define SEGMENT_NUM_LARGE 230
|
||
|
||
#define DXS_SEGMENT_NUM_LARGE 280 //多项式的基础模型分段值
|
||
|
||
|
||
#define CALIBRATION_PROTECT_VALUE ((float)0.9*R400Q2) //防冻校准流速小于0.9倍Q1即不走数
|
||
#define TOF_AM_VALUE 190
|
||
#define TOF_UP_AM_0_8 (0.8*TOF_AM_VALUE)//up最大幅值0.8倍
|
||
#define TOF_DOWN_AM_0_8 (0.8*TOF_AM_VALUE)//down最大幅值0.8倍
|
||
#define Q1_0_8 (float)8//0.8倍的R250的Q1数值
|
||
|
||
#define TOF_UP_DATA (float)57442.78//20度下UP单程时间ns
|
||
#define LEGENTH_SPEED_SOUND (float)85145.007//声路长度=1482.257772*TOF_UP_DATA 单位um
|
||
#define LEGENTH_SPEED_SOUND_DAOSHU (float)5.8723349381e-9//声路长度倒数
|
||
#define TOF_UP_DOWN_DAOSHUHE_LOW (float)0.035591 //1/up + 1/down 35度以下
|
||
#define TOF_UP_DOWN_DAOSHUHE_MIDDLE (float)0.0359228//1/up + 1/down 35~45度
|
||
|
||
//理论模型
|
||
#define REAL_SOUND_PATH_LENGTH (float)62//
|
||
#define MEASYRING_TUBE_DIAMETER (float)11.5 //15的11.5, 20的12.5
|
||
#define FLOW_RATE_MULTIPLIER (float)8.064516e-9 // 流速计算常数= 1e-9/(2*(L有效))/0.001
|
||
#define FLOW_MULTIPLIER (float)373.92894 // 流量计算常数= (3.1416*D*D*1e-6/4 )*3600 *1000L/h 15口径面积:103.86915 20口径面积:122.71875
|
||
|
||
//流量曲线的数量开关
|
||
//#define SUBSECTION_NUM_THREE 1
|
||
#define SUBSECTION_NUM_FOUR 1
|
||
//#define SUBSECTION_NUM_FIVE 1
|
||
|
||
#elif Plastic_LLGS_WDFS_DN15_PALSTIC_40KPA_GP30_32768
|
||
#define DEFAULT_START_FLOW 0x00B7 //DN15铜40KPA时的使动流量数值 700ns
|
||
#define FLOW_RATE_FILTER_COEFFICIENT (float)0.2//瞬时流量滤波系数
|
||
#define GP30_DIFTOF_FILTER_COEFFICIENT (FLOW_RATE_FILTER_COEFFICIENT*(float)2)//活塞台子时间差滤波系数
|
||
#define DIFTOF_COEFFICIENT (float)0.163410708 // 16L/h对应的时间差均值2.677016788
|
||
#define R400Q1 (float)6.25
|
||
#define R400Q2 (float)10
|
||
#define R250Q2 (float)16
|
||
#define Q3_3_3 (float)825
|
||
#define Q3_6_6 (float)1650
|
||
#define MIN_FLOW_0_6 0x50000//最小流量的50%
|
||
#define MAX_FLOW_1_02 0xC730000//过载流量的102%
|
||
#define MIN_FLOW_0_3 0x30000//最小流量的30%
|
||
#define LIMIT_FLOW_1_5Q4 4680//1.5倍的过载流量
|
||
#define LIMIT_DIFTOF_FORWARD 0x00033333 //-200~-800ns时间差判断,时间差为正
|
||
#define LIMIT_DIFTOF_REVERSE 0x8000CCCC //-200~-800ns时间差判断,时间差为负
|
||
#define SEGMENT_NUM_SMALL 13 // 校准点 6 10 16 80 2500
|
||
#define SEGMENT_NUM_MIDDLE 26
|
||
#define SEGMENT_NUM_LARGE 75
|
||
|
||
#define DXS_SEGMENT_NUM_LARGE 280 //多项式的基础模型分段值
|
||
|
||
#define CALIBRATION_PROTECT_VALUE ((float)0.9*R400Q2) //防冻校准流速小于0.9倍Q1即不走数
|
||
#define TOF_AM_VALUE 240 //190
|
||
#define TOF_UP_AM_0_8 (0.8*TOF_AM_VALUE)//up最大幅值0.8倍
|
||
#define TOF_DOWN_AM_0_8 (0.8*TOF_AM_VALUE)//down最大幅值0.8倍
|
||
#define Q1_0_8 (float)8//0.8倍的R250的Q1数值
|
||
|
||
#define TOF_UP_DATA (float)57442.78//20度下UP单程时间ns
|
||
#define LEGENTH_SPEED_SOUND (float)85145.007//声路长度=1482.257772*TOF_UP_DATA 单位um
|
||
#define LEGENTH_SPEED_SOUND_DAOSHU (float)5.8723349381e-9//声路长度倒数
|
||
#define TOF_UP_DOWN_DAOSHUHE_LOW (float)0.035591 //1/up + 1/down 35度以下
|
||
#define TOF_UP_DOWN_DAOSHUHE_MIDDLE (float)0.0359228//1/up + 1/down 35~45度
|
||
|
||
//理论模型
|
||
#define REAL_SOUND_PATH_LENGTH (float)60//
|
||
#define MEASYRING_TUBE_DIAMETER (float)11.7 //15的11.5, 20的12.5
|
||
#define FLOW_RATE_MULTIPLIER (float)8.33333e-9 // 流速计算常数= 1e-9/(2*(L有效))/0.001
|
||
#define FLOW_MULTIPLIER (float)387.04826 // 流量计算常数= (3.1416*D*D*1e-6/4 )*3600 *1000L/h 15口径面积:103.86915 20口径面积:122.71875
|
||
|
||
//流量曲线的数量开关
|
||
//#define SUBSECTION_NUM_THREE 1
|
||
#define SUBSECTION_NUM_FOUR 1
|
||
//#define SUBSECTION_NUM_FIVE 1
|
||
|
||
#elif Buxiugang_LLGS_WDFS_DN15_BXG_40KPA_GP30_32768
|
||
#define DEFAULT_START_FLOW 0x00B7 //DN15铜40KPA时的使动流量数值 700ns
|
||
#define FLOW_RATE_FILTER_COEFFICIENT (float)0.2//瞬时流量滤波系数
|
||
#define GP30_DIFTOF_FILTER_COEFFICIENT (FLOW_RATE_FILTER_COEFFICIENT*(float)2)//活塞台子时间差滤波系数
|
||
#define DIFTOF_COEFFICIENT (float)0.189303125 // 16L/h对应的时间差均值3.101189931
|
||
#define R400Q1 (float)6.25
|
||
#define R400Q2 (float)10
|
||
#define R250Q2 (float)16
|
||
#define Q3_3_3 (float)825
|
||
#define Q3_6_6 (float)1650
|
||
#define MIN_FLOW_0_6 0x50000//最小流量的50%
|
||
#define MAX_FLOW_1_02 0xC730000//过载流量的102%
|
||
#define MIN_FLOW_0_3 0x30000//最小流量的30%
|
||
#define LIMIT_FLOW_1_5Q4 4680//1.5倍的过载流量
|
||
#define LIMIT_DIFTOF_FORWARD 0x00033333 //-200~-800ns时间差判断,时间差为正
|
||
#define LIMIT_DIFTOF_REVERSE 0x8000CCCC //-200~-800ns时间差判断,时间差为负
|
||
#define SEGMENT_NUM_SMALL 13
|
||
#define SEGMENT_NUM_MIDDLE 26
|
||
#define SEGMENT_NUM_LARGE 75
|
||
#define SEGMENT_NUM_ERROR_MIDDLE 35 // 13~80 的流量分为2段 13~40一段、26~80一段
|
||
|
||
#define DXS_SEGMENT_NUM_LARGE 280 //多项式的基础模型分段值
|
||
|
||
|
||
#define CALIBRATION_PROTECT_VALUE ((float)0.9*R400Q2) //防冻校准流速小于0.9倍Q1即不走数
|
||
#define TOF_AM_VALUE 190
|
||
#define TOF_UP_AM_0_8 (0.8*TOF_AM_VALUE)//up最大幅值0.8倍
|
||
#define TOF_DOWN_AM_0_8 (0.8*TOF_AM_VALUE)//down最大幅值0.8倍
|
||
#define Q1_0_8 (float)8//0.8倍的R250的Q1数值
|
||
|
||
#define TOF_UP_DATA (float)57442.78//20度下UP单程时间ns
|
||
#define LEGENTH_SPEED_SOUND (float)85145.007//声路长度=1482.257772*TOF_UP_DATA 单位um
|
||
#define LEGENTH_SPEED_SOUND_DAOSHU (float)5.8723349381e-9//声路长度倒数
|
||
#define TOF_UP_DOWN_DAOSHUHE_LOW (float)0.035591 //1/up + 1/down 35度以下
|
||
#define TOF_UP_DOWN_DAOSHUHE_MIDDLE (float)0.0359228//1/up + 1/down 35~45度
|
||
|
||
//理论模型
|
||
#define REAL_SOUND_PATH_LENGTH (float)62//
|
||
#define MEASYRING_TUBE_DIAMETER (float)11.1 //15的11.1,//不锈钢
|
||
#define FLOW_RATE_MULTIPLIER (float)8.064516e-9 // 流速计算常数= 1e-9/(2*(L有效))/0.001
|
||
#define FLOW_MULTIPLIER (float)348.36888 // 流量计算常数= (3.1416*D*D*1(e-6)/4 )*3600 *1000L/h 15口径面积:103.86915 20口径面积:122.71875
|
||
|
||
//流量曲线的数量开关
|
||
//#define SUBSECTION_NUM_THREE 1
|
||
#define SUBSECTION_NUM_FOUR 1
|
||
//#define SUBSECTION_NUM_FIVE 1
|
||
|
||
#elif ROUND_LLGS_XFZ_DN15_BRASS_40KPA_GP30_32768
|
||
#define DEFAULT_START_FLOW 0x00B7 //DN15铜40KPA时的使动流量数值 700ns
|
||
#define FLOW_RATE_FILTER_COEFFICIENT (float)0.2//瞬时流量滤波系数
|
||
#define GP30_DIFTOF_FILTER_COEFFICIENT (FLOW_RATE_FILTER_COEFFICIENT*(float)2)//活塞台子时间差滤波系数
|
||
#define DIFTOF_COEFFICIENT (float)0.185217176// 16L/h对应的时间差均值2.96347
|
||
#define R400Q1 (float)6.25
|
||
#define R400Q2 (float)10
|
||
#define R250Q2 (float)16
|
||
#define Q3_3_3 (float)825
|
||
#define Q3_6_6 (float)1650
|
||
#define MIN_FLOW_0_6 0x50000//最小流量的50%
|
||
#define MAX_FLOW_1_02 0xC730000//过载流量的102%
|
||
#define MIN_FLOW_0_3 0x30000//最小流量的30%
|
||
#define LIMIT_FLOW_1_5Q4 4680//1.5倍的过载流量
|
||
#define LIMIT_DIFTOF_FORWARD 0x00033333 //-200~-800ns时间差判断,时间差为正
|
||
#define LIMIT_DIFTOF_REVERSE 0x8000CCCC //-200~-800ns时间差判断,时间差为负
|
||
#define SEGMENT_NUM_SMALL 15 // 10 16 28 100 2500
|
||
#define SEGMENT_NUM_MIDDLE 28
|
||
#define SEGMENT_NUM_LARGE 93
|
||
|
||
#define DXS_SEGMENT_NUM_LARGE 280 //多项式的基础模型分段值
|
||
|
||
|
||
#define CALIBRATION_PROTECT_VALUE ((float)0.9*R400Q2) //防冻校准流速小于0.9倍Q1即不走数
|
||
#define TOF_AM_VALUE 240 //190
|
||
#define TOF_UP_AM_0_8 (0.8*TOF_AM_VALUE)//up最大幅值0.8倍
|
||
#define TOF_DOWN_AM_0_8 (0.8*TOF_AM_VALUE)//down最大幅值0.8倍
|
||
#define Q1_0_8 (float)8//0.8倍的R250的Q1数值
|
||
|
||
#define TOF_UP_DATA (float)57442.78//20度下UP单程时间ns
|
||
#define LEGENTH_SPEED_SOUND (float)85145.007//声路长度=1482.257772*TOF_UP_DATA 单位um
|
||
#define LEGENTH_SPEED_SOUND_DAOSHU (float)5.8723349381e-9//声路长度倒数
|
||
#define TOF_UP_DOWN_DAOSHUHE_LOW (float)0.035591 //1/up + 1/down 35度以下
|
||
#define TOF_UP_DOWN_DAOSHUHE_MIDDLE (float)0.0359228//1/up + 1/down 35~45度
|
||
|
||
//理论模型
|
||
#define REAL_SOUND_PATH_LENGTH (float)62//
|
||
#define MEASYRING_TUBE_DIAMETER (float)11.5 //15的11.5, 20的12.5
|
||
#define FLOW_RATE_MULTIPLIER (float)8.064516e-9 // 流速计算常数= 1e-9/(2*(L有效))/0.001
|
||
#define FLOW_MULTIPLIER (float)373.92894 // 流量计算常数= (3.1416*D*D*1e-6/4 )*3600 *1000L/h 15口径面积:103.86915 20口径面积:122.71875
|
||
|
||
//流量曲线的数量开关
|
||
//#define SUBSECTION_NUM_THREE 1
|
||
#define SUBSECTION_NUM_FOUR 1
|
||
//#define SUBSECTION_NUM_FIVE 1
|
||
|
||
|
||
#elif MID_DN15_BRASS_63KPA_GP30_32768//长款换能器欧版DN15口径 2022-08-04
|
||
#define DEFAULT_START_FLOW 0x00B7 //DN15铜63KPA时的使动流量数值
|
||
#define FLOW_RATE_FILTER_COEFFICIENT (float)0.3//瞬时流量滤波系数
|
||
#define GP30_DIFTOF_FILTER_COEFFICIENT (FLOW_RATE_FILTER_COEFFICIENT*(float)2)//活塞台子时间差滤波系数
|
||
#define DIFTOF_COEFFICIENT (float)0.200274918//
|
||
#define R400Q1 (float)6.25
|
||
#define R400Q2 (float)10
|
||
#define R250Q2 (float)16
|
||
#define Q3_3_3 (float)825
|
||
#define Q3_6_6 (float)1650
|
||
#define MIN_FLOW_0_6 0x50000//最小流量的50%
|
||
#define MAX_FLOW_1_02 0xC730000//过载流量的102%
|
||
#define MIN_FLOW_0_3 0x30000//最小流量的30%
|
||
#define LIMIT_FLOW_1_5Q4 4680//1.5倍的过载流量
|
||
#define LIMIT_DIFTOF_FORWARD 0x000347AE //-220~820ns时间差判断,时间差为正
|
||
#define LIMIT_DIFTOF_REVERSE 0x8000E147 //-220~-820ns时间差判断,时间差为负
|
||
#define SEGMENT_NUM_SMALL 8
|
||
#define SEGMENT_NUM_MIDDLE 25
|
||
#define SEGMENT_NUM_LARGE 85
|
||
#define SEGMENT_NUM_ERROR_MIDDLE (SEGMENT_NUM_LARGE/2) //(此处DN15的值用的同一条曲线,只为了兼容4段)误差曲线新增,为了适配4段的建模
|
||
|
||
#define DXS_SEGMENT_NUM_LARGE 280 //多项式的基础模型分段值
|
||
|
||
#define CALIBRATION_PROTECT_VALUE ((float)0.9*R400Q1) //防冻校准流速小于0.9倍Q1即不走数
|
||
|
||
//理论模型
|
||
#define REAL_SOUND_PATH_LENGTH (float)59.8//(float)74.863 //L*cos 还是 D*cot—— D准确 ——————————————2021-2-1改为弦向尺寸 2021-7-21 ——15的59.8;20的59.95
|
||
#define MEASYRING_TUBE_DIAMETER (float)10
|
||
#define FLOW_RATE_MULTIPLIER (float)8.361204e-9//(float)6.6788667e-9 // 流速计算常数= 1e-9/(2*(L有效))/0.001
|
||
#define FLOW_MULTIPLIER (float)290.412 // 流量计算常数= (3.1416*D*D*1e-6/4 )*3600 *1000L/h //面积 PF 15:80.67 PF 20:134.95
|
||
|
||
//流量曲线的数量开关
|
||
//#define SUBSECTION_NUM_THREE 1
|
||
#define SUBSECTION_NUM_FOUR 1
|
||
//#define SUBSECTION_NUM_FIVE 1
|
||
|
||
#elif EN_DN15_BRASS_63KPA_GP30_32768
|
||
#define DEFAULT_START_FLOW 0x00B7 //DN15铜63KPA时的使动流量数值
|
||
#define FLOW_RATE_FILTER_COEFFICIENT (float)0.3//瞬时流量滤波系数
|
||
#define GP30_DIFTOF_FILTER_COEFFICIENT (FLOW_RATE_FILTER_COEFFICIENT*(float)2)//活塞台子时间差滤波系数
|
||
#define DIFTOF_COEFFICIENT (float)0.200274918//
|
||
#define R400Q1 (float)6.25
|
||
#define R400Q2 (float)10
|
||
#define R250Q2 (float)16
|
||
#define Q3_3_3 (float)825
|
||
#define Q3_6_6 (float)1650
|
||
#define MIN_FLOW_0_6 0x50000//最小流量的50%
|
||
#define MAX_FLOW_1_02 0xC730000//过载流量的102%
|
||
#define MIN_FLOW_0_3 0x30000//最小流量的30%
|
||
#define LIMIT_FLOW_1_5Q4 4680//1.5倍的过载流量
|
||
#define LIMIT_DIFTOF_FORWARD 0x000347AE //-220~820ns时间差判断,时间差为正
|
||
#define LIMIT_DIFTOF_REVERSE 0x8000E147 //-220~-820ns时间差判断,时间差为负
|
||
#define SEGMENT_NUM_SMALL 8
|
||
#define SEGMENT_NUM_MIDDLE 25
|
||
#define SEGMENT_NUM_LARGE 77
|
||
#define SEGMENT_NUM_ERROR_MIDDLE (SEGMENT_NUM_LARGE/2) //(此处DN15的值用的同一条曲线,只为了兼容4段)误差曲线新增,为了适配4段的建模
|
||
|
||
#define DXS_SEGMENT_NUM_LARGE 280 //多项式的基础模型分段值
|
||
|
||
#define CALIBRATION_PROTECT_VALUE ((float)0.9*R400Q1) //防冻校准流速小于0.9倍Q1即不走数
|
||
|
||
//理论模型
|
||
#define REAL_SOUND_PATH_LENGTH (float)59.8//(float)74.863 //L*cos 还是 D*cot—— D准确 ——————————————2021-2-1改为弦向尺寸 2021-7-21 ——15的59.8;20的59.95
|
||
#define MEASYRING_TUBE_DIAMETER (float)10
|
||
#define FLOW_RATE_MULTIPLIER (float)8.361204e-9//(float)6.6788667e-9 // 流速计算常数= 1e-9/(2*(L有效))/0.001
|
||
#define FLOW_MULTIPLIER (float)290.412 // 流量计算常数= (3.1416*D*D*1e-6/4 )*3600 *1000L/h //面积 PF 15:80.67 PF 20:134.95
|
||
|
||
//流量曲线的数量开关
|
||
//#define SUBSECTION_NUM_THREE 1
|
||
#define SUBSECTION_NUM_FOUR 1
|
||
//#define SUBSECTION_NUM_FIVE 1
|
||
|
||
#elif BM_DN15_BRASS_63KPA_GP30_32768
|
||
#define DEFAULT_START_FLOW 0x00B7 //DN15铜63KPA时的使动流量数值 700ps
|
||
#define FLOW_RATE_FILTER_COEFFICIENT (float)0.3//瞬时流量滤波系数
|
||
#define GP30_DIFTOF_FILTER_COEFFICIENT (FLOW_RATE_FILTER_COEFFICIENT*(float)2)//活塞台子时间差滤波系数
|
||
#define DIFTOF_COEFFICIENT (float)0.207551802 //16L/h对应的时间差均值 3.320828833
|
||
#define R400Q1 (float)6.25
|
||
#define R400Q2 (float)10
|
||
#define R250Q2 (float)16
|
||
#define Q3_3_3 (float)825
|
||
#define Q3_6_6 (float)1650
|
||
#define MIN_FLOW_0_6 0x50000//最小流量的50%
|
||
#define MAX_FLOW_1_02 0xC730000//过载流量的102%
|
||
#define MIN_FLOW_0_3 0x30000//最小流量的30%
|
||
#define LIMIT_FLOW_1_5Q4 4680//1.5倍的过载流量
|
||
#define LIMIT_DIFTOF_FORWARD 0x000347AE //-220~820ns时间差判断,时间差为正
|
||
#define LIMIT_DIFTOF_REVERSE 0x8000E147 //-220~-820ns时间差判断,时间差为负
|
||
#define SEGMENT_NUM_SMALL 8
|
||
#define SEGMENT_NUM_MIDDLE 25
|
||
#define SEGMENT_NUM_LARGE 90
|
||
|
||
#define DXS_SEGMENT_NUM_LARGE 280 //多项式的基础模型分段值
|
||
|
||
//流量曲线的数量开关
|
||
//#define SUBSECTION_NUM_THREE 1
|
||
#define SUBSECTION_NUM_FOUR 1
|
||
//#define SUBSECTION_NUM_FIVE 1
|
||
#define CALIBRATION_PROTECT_VALUE ((float)0.9*R400Q1) //防冻校准流速小于0.9倍Q1即不走数
|
||
|
||
//20211204
|
||
#elif PF_DN15_BRASS_63KPA_GP30_32768
|
||
#define DEFAULT_START_FLOW 0x00B7 //DN15铜63KPA时的使动流量数值
|
||
#define FLOW_RATE_FILTER_COEFFICIENT (float)0.3//瞬时流量滤波系数
|
||
#define GP30_DIFTOF_FILTER_COEFFICIENT (FLOW_RATE_FILTER_COEFFICIENT*(float)2)//活塞台子时间差滤波系数
|
||
#define DIFTOF_COEFFICIENT (float)0.200274918//
|
||
#define R400Q1 (float)6.25
|
||
#define R400Q2 (float)10
|
||
#define R250Q2 (float)16
|
||
#define Q3_3_3 (float)825
|
||
#define Q3_6_6 (float)1650
|
||
#define MIN_FLOW_0_6 0x50000//最小流量的50%
|
||
#define MAX_FLOW_1_02 0xC730000//过载流量的102%
|
||
#define MIN_FLOW_0_3 0x30000//最小流量的30%
|
||
#define LIMIT_FLOW_1_5Q4 4680//1.5倍的过载流量
|
||
#define LIMIT_DIFTOF_FORWARD 0x000347AE //-220~820ns时间差判断,时间差为正
|
||
#define LIMIT_DIFTOF_REVERSE 0x8000E147 //-220~-820ns时间差判断,时间差为负
|
||
#define SEGMENT_NUM_SMALL 8
|
||
#define SEGMENT_NUM_MIDDLE 25
|
||
#define SEGMENT_NUM_LARGE 85
|
||
#define SEGMENT_NUM_ERROR_MIDDLE (SEGMENT_NUM_LARGE/2) //(此处DN15的值用的同一条曲线,只为了兼容4段)误差曲线新增,为了适配4段的建模
|
||
|
||
#define DXS_SEGMENT_NUM_LARGE 280 //多项式的基础模型分段值
|
||
|
||
#define CALIBRATION_PROTECT_VALUE ((float)0.9*R400Q2) //防冻校准流速小于0.9倍Q1即不走数
|
||
#define FLOAT_BETWEEN_DATA_DIF_MAX (float)3.8//950ns时间差对应的滤波时的float类型数值=850/250 临界状态切换门限值
|
||
#define FLOAT_SWITCH_STATE_THRESHOLD (float)3.4//850ns时间差对应的滤波时的float类型数值=850/250 临界状态切换门限值
|
||
#define FLOAT_BETWEEN_DATA_DIF (float)2.2//550ns时间差对应的滤波时的float类型数值=550/250 相邻俩个数据之间的差值
|
||
#define FLOAT_LAST_DATA_MAX_THRESHOULD (float)1.4//350ns时间差对应的滤波时的float类型数值=350/250 上一个数据的门限判定上限值 关于门限判定,程序中判定的是负数,所以-350是上限
|
||
#define FLOAT_LAST_DATA_MIN_THRESHOULD (float)1.84//460ns时间差对应的滤波时的float类型数值=460/250 上一个数据的门限判定门限值 关于门限判定,程序中判定的是负数,所以-460是下限
|
||
#define FLOAT_SWITCH_STATE_CURRENT_THRESHOLD (float)0.64//160ns时间差对应的滤波时的float类型数值=160/250 临界状态当前数据的门限值
|
||
|
||
//理论模型
|
||
#define REAL_SOUND_PATH_LENGTH (float)59.8//(float)74.863 //L*cos 还是 D*cot—— D准确 ——————————————2021-2-1改为弦向尺寸 2021-7-21 ——15的59.8;20的59.95
|
||
#define MEASYRING_TUBE_DIAMETER (float)10
|
||
#define FLOW_RATE_MULTIPLIER (float)8.361204e-9//(float)6.6788667e-9 // 流速计算常数= 1e-9/(2*(L有效))/0.001
|
||
#define FLOW_MULTIPLIER (float)290.412 // 流量计算常数= (3.1416*D*D*1e-6/4 )*3600 *1000L/h //面积 PF 15:80.67 PF 20:134.95
|
||
|
||
//流量曲线的数量开关
|
||
//#define SUBSECTION_NUM_THREE 1
|
||
#define SUBSECTION_NUM_FOUR 1
|
||
//#define SUBSECTION_NUM_FIVE 1
|
||
|
||
|
||
#elif DN20_BRASS_40KPA_GP30_32768 || WDFS_DN20_BRASS_40KPA_GP30_32768
|
||
#define DEFAULT_START_FLOW 0x00D1 //DN20铜40KPA时的使动流量数值
|
||
#define FLOW_RATE_FILTER_COEFFICIENT (float)0.2//瞬时流量滤波系数
|
||
#define GP30_DIFTOF_FILTER_COEFFICIENT (FLOW_RATE_FILTER_COEFFICIENT*(float)2)//活塞台子时间差滤波系数
|
||
#define DIFTOF_COEFFICIENT (float)0.129817327// 25L/h对应的时间差均值3.245433172
|
||
#define R400Q1 (float)10
|
||
#define R400Q2 (float)16
|
||
#define R250Q2 (float)25
|
||
#define Q3_3_3 (float)1320
|
||
#define Q3_6_6 (float)2640
|
||
#define MIN_FLOW_0_6 0x80000//最小流量的50%
|
||
#define MAX_FLOW_1_02 0x14050000//过载流量的102%
|
||
#define MIN_FLOW_0_3 0x40000//最小流量的25%
|
||
#define LIMIT_FLOW_1_5Q4 7500//1.5倍的过载流量
|
||
#define LIMIT_DIFTOF_FORWARD 0x00033333 //-200~-800ns时间差判断,时间差为正
|
||
#define LIMIT_DIFTOF_REVERSE 0x8000CCCC //-200~-800ns时间差判断,时间差为负
|
||
#define SEGMENT_NUM_SMALL 14
|
||
#define SEGMENT_NUM_MIDDLE 34
|
||
#define SEGMENT_NUM_LARGE 155
|
||
|
||
#define DXS_SEGMENT_NUM_LARGE 280 //多项式的基础模型分段值
|
||
|
||
//流量曲线的数量开关
|
||
//#define SUBSECTION_NUM_THREE 1
|
||
#define SUBSECTION_NUM_FOUR 1
|
||
//#define SUBSECTION_NUM_FIVE 1
|
||
|
||
#define CALIBRATION_PROTECT_VALUE ((float)0.9*R400Q2) //防冻校准流速小于0.9倍Q1即不走数
|
||
#define TOF_AM_VALUE 190
|
||
#define TOF_UP_AM_0_8 (0.8*TOF_AM_VALUE)//up最大幅值0.8倍
|
||
#define TOF_DOWN_AM_0_8 (0.8*TOF_AM_VALUE)//down最大幅值0.8倍
|
||
#define Q1_0_8 (float)12.8//0.8倍的R250的Q1数值
|
||
|
||
#define TOF_UP_DATA (float)57881.92//20度下UP单程时间ns
|
||
#define LEGENTH_SPEED_SOUND (float)85795.925778//声路长度=1482.257772*TOF_UP_DATA 单位um
|
||
#define LEGENTH_SPEED_SOUND_DAOSHU (float)5.8277825603528e-9//声路长度倒数
|
||
|
||
#elif LLGS_DN20_BRASS_40KPA_GP30_32768 || LLGS_WDFS_DN20_BRASS_40KPA_GP30_32768
|
||
#define DEFAULT_START_FLOW 0x00D1 //DN20铜40KPA时的使动流量数值
|
||
#define FLOW_RATE_FILTER_COEFFICIENT (float)0.2//瞬时流量滤波系数
|
||
#define GP30_DIFTOF_FILTER_COEFFICIENT (FLOW_RATE_FILTER_COEFFICIENT*(float)2)//活塞台子时间差滤波系数
|
||
#define DIFTOF_COEFFICIENT (float)0.129817327// 25L/h对应的时间差均值3.245433172
|
||
#define R400Q1 (float)10
|
||
#define R400Q2 (float)16
|
||
#define R250Q2 (float)25
|
||
#define Q3_3_3 (float)1320
|
||
#define Q3_6_6 (float)2640
|
||
#define MIN_FLOW_0_6 0x80000//最小流量的50%
|
||
#define MAX_FLOW_1_02 0x14050000//过载流量的102%
|
||
#define MIN_FLOW_0_3 0x40000//最小流量的25%
|
||
#define LIMIT_FLOW_1_5Q4 7500//1.5倍的过载流量
|
||
#define LIMIT_DIFTOF_FORWARD 0x00033333 //-200~-800ns时间差判断,时间差为正
|
||
#define LIMIT_DIFTOF_REVERSE 0x8000CCCC //-200~-800ns时间差判断,时间差为负
|
||
#define SEGMENT_NUM_SMALL 16
|
||
#define SEGMENT_NUM_MIDDLE 25
|
||
#define SEGMENT_NUM_LARGE 155
|
||
#define SEGMENT_NUM_ERROR_MIDDLE 43 //误差曲线新增,为了适配4段的建模
|
||
|
||
#define DXS_SEGMENT_NUM_LARGE 280 //多项式的基础模型分段值
|
||
|
||
|
||
//理论模型
|
||
#define REAL_SOUND_PATH_LENGTH (float)59.95//(float)74.863 //L*cos 还是 D*cot—— D准确 ——————————————2021-2-1改为弦向尺寸 2021-7-21 ——15的59.8;20的59.95
|
||
#define MEASYRING_TUBE_DIAMETER (float)13.6 //15的10.7, 20的13.6
|
||
#define FLOW_RATE_MULTIPLIER (float)8.3402836e-9//(float)6.6788667e-9 // 流速计算常数= 1e-9/(2*(L有效))/0.001
|
||
#define FLOW_MULTIPLIER (float)527.8716 // 流量计算常数= (3.1416*D*D*1e-6/4 )*3600 *1000L/h //面积 15:93.3307 20:146.631
|
||
|
||
//流量曲线的数量开关
|
||
//#define SUBSECTION_NUM_THREE 1
|
||
#define SUBSECTION_NUM_FOUR 1
|
||
//#define SUBSECTION_NUM_FIVE 1
|
||
|
||
#define CALIBRATION_PROTECT_VALUE ((float)0.9*R400Q2) //防冻校准流速小于0.9倍Q1即不走数
|
||
#define TOF_AM_VALUE 190
|
||
#define TOF_UP_AM_0_8 (0.8*TOF_AM_VALUE)//up最大幅值0.8倍
|
||
#define TOF_DOWN_AM_0_8 (0.8*TOF_AM_VALUE)//down最大幅值0.8倍
|
||
#define Q1_0_8 (float)12.8//0.8倍的R250的Q1数值
|
||
|
||
#define TOF_UP_DATA (float)57881.92//20度下UP单程时间ns
|
||
#define LEGENTH_SPEED_SOUND (float)85795.925778//声路长度=1482.257772*TOF_UP_DATA 单位um
|
||
#define LEGENTH_SPEED_SOUND_DAOSHU (float)5.8277825603528e-9//声路长度倒数
|
||
|
||
#elif ROUND_LLGS_DN20_BRASS_40KPA_GP30_32768 || ROUND_LLGS_WDFS_DN20_BRASS_40KPA_GP30_32768
|
||
#define DEFAULT_START_FLOW 0x00D1 //DN20铜40KPA时的使动流量数值
|
||
#define FLOW_RATE_FILTER_COEFFICIENT (float)0.2//瞬时流量滤波系数
|
||
#define GP30_DIFTOF_FILTER_COEFFICIENT (FLOW_RATE_FILTER_COEFFICIENT*(float)2)//活塞台子时间差滤波系数
|
||
#define DIFTOF_COEFFICIENT (float)0.129817327// 25L/h对应的时间差均值3.245433172
|
||
#define R400Q1 (float)10
|
||
#define R400Q2 (float)16
|
||
#define R250Q2 (float)25
|
||
#define Q3_3_3 (float)1320
|
||
#define Q3_6_6 (float)2640
|
||
#define MIN_FLOW_0_6 0x80000//最小流量的50%
|
||
#define MAX_FLOW_1_02 0x14050000//过载流量的102%
|
||
#define MIN_FLOW_0_3 0x40000//最小流量的25%
|
||
#define LIMIT_FLOW_1_5Q4 7500//1.5倍的过载流量
|
||
#define LIMIT_DIFTOF_FORWARD 0x00033333 //-200~-800ns时间差判断,时间差为正
|
||
#define LIMIT_DIFTOF_REVERSE 0x8000CCCC //-200~-800ns时间差判断,时间差为负
|
||
#define SEGMENT_NUM_SMALL 15
|
||
#define SEGMENT_NUM_MIDDLE 35
|
||
#define SEGMENT_NUM_LARGE 190
|
||
|
||
|
||
|
||
#define DXS_SEGMENT_NUM_LARGE 280 //多项式的基础模型分段值
|
||
|
||
#define CALIBRATION_PROTECT_VALUE ((float)0.9*R400Q2) //防冻校准流速小于0.9倍Q1即不走数
|
||
#define TOF_AM_VALUE 190
|
||
#define TOF_UP_AM_0_8 (0.8*TOF_AM_VALUE)//up最大幅值0.8倍
|
||
#define TOF_DOWN_AM_0_8 (0.8*TOF_AM_VALUE)//down最大幅值0.8倍
|
||
#define Q1_0_8 (float)12.8//0.8倍的R250的Q1数值
|
||
|
||
#define TOF_UP_DATA (float)60160.65//20度下UP单程时间ns
|
||
#define LEGENTH_SPEED_SOUND (float)89173.591031//声路长度=1482.257772*TOF_UP_DATA 单位um
|
||
#define LEGENTH_SPEED_SOUND_DAOSHU (float)5.6070412e-9//声路长度倒数
|
||
|
||
#define TOF_UP_DOWN_DAOSHUHE_LOW (float)0.03397054 //1/up + 1/down 35度以下
|
||
#define TOF_UP_DOWN_DAOSHUHE_MIDDLE (float)0.03428789 //1/up + 1/down 35~45度
|
||
|
||
//理论模型
|
||
#define REAL_SOUND_PATH_LENGTH (float)62////
|
||
#define MEASYRING_TUBE_DIAMETER (float)12.5 //15的11.5, 20的12.5
|
||
#define FLOW_RATE_MULTIPLIER (float)8.064516e-9 // 流速计算常数= 1e-9/(2*(L有效))/0.001
|
||
#define FLOW_MULTIPLIER (float)441.7875 // 流量计算常数= (3.1416*D*D*1e-6/4 )*3600 *1000L/h 15口径面积:103.86915 20口径面积:122.71875
|
||
|
||
//流量曲线的数量开关
|
||
//#define SUBSECTION_NUM_THREE 1
|
||
#define SUBSECTION_NUM_FOUR 1
|
||
//#define SUBSECTION_NUM_FIVE 1
|
||
|
||
#elif Buxiugang_LLGS_WDFS_DN20_BXG_40KPA_GP30_32768
|
||
#define DEFAULT_START_FLOW 0x00B8 //DN20铜40KPA时的使动流量数值
|
||
#define FLOW_RATE_FILTER_COEFFICIENT (float)0.2//瞬时流量滤波系数
|
||
#define GP30_DIFTOF_FILTER_COEFFICIENT (FLOW_RATE_FILTER_COEFFICIENT*(float)2)//活塞台子时间差滤波系数
|
||
#define DIFTOF_COEFFICIENT (float)0.1131270// 25L/h对应的时间差均值2.8281742
|
||
#define R400Q1 (float)10
|
||
#define R400Q2 (float)16
|
||
#define R250Q2 (float)25
|
||
#define Q3_3_3 (float)1320
|
||
#define Q3_6_6 (float)2640
|
||
#define MIN_FLOW_0_6 0x80000//最小流量的50%
|
||
#define MAX_FLOW_1_02 0x14050000//过载流量的102%
|
||
#define MIN_FLOW_0_3 0x40000//最小流量的25%
|
||
#define LIMIT_FLOW_1_5Q4 7500//1.5倍的过载流量
|
||
#define LIMIT_DIFTOF_FORWARD 0x00033333 //-200~-800ns时间差判断,时间差为正
|
||
#define LIMIT_DIFTOF_REVERSE 0x8000CCCC //-200~-800ns时间差判断,时间差为负
|
||
#define SEGMENT_NUM_SMALL 15
|
||
#define SEGMENT_NUM_MIDDLE 33
|
||
#define SEGMENT_NUM_LARGE 130
|
||
#define SEGMENT_NUM_ERROR_MIDDLE 47 //误差曲线新增,为了适配4段的建模
|
||
|
||
#define DXS_SEGMENT_NUM_LARGE 170 //多项式的基础模型分段值
|
||
|
||
#define CALIBRATION_PROTECT_VALUE ((float)0.9*R400Q2) //防冻校准流速小于0.9倍Q1即不走数
|
||
#define TOF_AM_VALUE 190
|
||
#define TOF_UP_AM_0_8 (0.8*TOF_AM_VALUE)//up最大幅值0.8倍
|
||
#define TOF_DOWN_AM_0_8 (0.8*TOF_AM_VALUE)//down最大幅值0.8倍
|
||
#define Q1_0_8 (float)12.8//0.8倍的R250的Q1数值
|
||
|
||
#define TOF_UP_DATA (float)60160.65//20度下UP单程时间ns
|
||
#define LEGENTH_SPEED_SOUND (float)89173.591031//声路长度=1482.257772*TOF_UP_DATA 单位um
|
||
#define LEGENTH_SPEED_SOUND_DAOSHU (float)5.6070412e-9//声路长度倒数
|
||
|
||
#define TOF_UP_DOWN_DAOSHUHE_LOW (float)0.03397054 //1/up + 1/down 35度以下
|
||
#define TOF_UP_DOWN_DAOSHUHE_MIDDLE (float)0.03428789 //1/up + 1/down 35~45度
|
||
|
||
//理论模型
|
||
#define REAL_SOUND_PATH_LENGTH (float)62////
|
||
#define MEASYRING_TUBE_DIAMETER (float)14 //15的11.5, 20的12.5
|
||
#define FLOW_RATE_MULTIPLIER (float)8.06452E-09 // 流速计算常数= 1e-9/(2*(L有效))/0.001
|
||
#define FLOW_MULTIPLIER (float)554.17824 // 流量计算常数= (3.1416*D*D*1e-6/4 )*3600 *1000L/h 15口径面积:103.86915 20口径面积:122.71875
|
||
|
||
//流量曲线的数量开关
|
||
//#define SUBSECTION_NUM_THREE 1
|
||
#define SUBSECTION_NUM_FOUR 1
|
||
//#define SUBSECTION_NUM_FIVE 1
|
||
|
||
#elif ROUND_LLGS_XFZ_DN20_BRASS_40KPA_GP30_32768
|
||
#define DEFAULT_START_FLOW 0x00D1 //DN20铜40KPA时的使动流量数值
|
||
#define FLOW_RATE_FILTER_COEFFICIENT (float)0.2//瞬时流量滤波系数
|
||
#define GP30_DIFTOF_FILTER_COEFFICIENT (FLOW_RATE_FILTER_COEFFICIENT*(float)2)//活塞台子时间差滤波系数
|
||
#define DIFTOF_COEFFICIENT (float)0.129817327// 25L/h对应的时间差均值3.245433172
|
||
#define R400Q1 (float)10
|
||
#define R400Q2 (float)16
|
||
#define R250Q2 (float)25
|
||
#define Q3_3_3 (float)1320
|
||
#define Q3_6_6 (float)2640
|
||
#define MIN_FLOW_0_6 0x80000//最小流量的50%
|
||
#define MAX_FLOW_1_02 0x14050000//过载流量的102%
|
||
#define MIN_FLOW_0_3 0x40000//最小流量的25%
|
||
#define LIMIT_FLOW_1_5Q4 7500//1.5倍的过载流量
|
||
#define LIMIT_DIFTOF_FORWARD 0x00033333 //-200~-800ns时间差判断,时间差为正
|
||
#define LIMIT_DIFTOF_REVERSE 0x8000CCCC //-200~-800ns时间差判断,时间差为负
|
||
#define SEGMENT_NUM_SMALL 15 //10 16 25 150 4000校准点
|
||
#define SEGMENT_NUM_MIDDLE 38
|
||
#define SEGMENT_NUM_LARGE 136
|
||
|
||
#define DXS_SEGMENT_NUM_LARGE 280 //多项式的基础模型分段值
|
||
|
||
#define CALIBRATION_PROTECT_VALUE ((float)0.9*R400Q2) //防冻校准流速小于0.9倍Q1即不走数
|
||
#define TOF_AM_VALUE 190
|
||
#define TOF_UP_AM_0_8 (0.8*TOF_AM_VALUE)//up最大幅值0.8倍
|
||
#define TOF_DOWN_AM_0_8 (0.8*TOF_AM_VALUE)//down最大幅值0.8倍
|
||
#define Q1_0_8 (float)12.8//0.8倍的R250的Q1数值
|
||
|
||
#define TOF_UP_DATA (float)60160.65//20度下UP单程时间ns
|
||
#define LEGENTH_SPEED_SOUND (float)89173.591031//声路长度=1482.257772*TOF_UP_DATA 单位um
|
||
#define LEGENTH_SPEED_SOUND_DAOSHU (float)5.6070412e-9//声路长度倒数
|
||
|
||
#define TOF_UP_DOWN_DAOSHUHE_LOW (float)0.03397054 //1/up + 1/down 35度以下
|
||
#define TOF_UP_DOWN_DAOSHUHE_MIDDLE (float)0.03428789 //1/up + 1/down 35~45度
|
||
|
||
//理论模型
|
||
#define REAL_SOUND_PATH_LENGTH (float)62////
|
||
#define MEASYRING_TUBE_DIAMETER (float)12.5 //15的11.5, 20的12.5
|
||
#define FLOW_RATE_MULTIPLIER (float)8.064516e-9 // 流速计算常数= 1e-9/(2*(L有效))/0.001
|
||
#define FLOW_MULTIPLIER (float)441.7875 // 流量计算常数= (3.1416*D*D*1e-6/4 )*3600 *1000L/h 15口径面积:103.86915 20口径面积:122.71875
|
||
|
||
//流量曲线的数量开关
|
||
//#define SUBSECTION_NUM_THREE 1
|
||
#define SUBSECTION_NUM_FOUR 1
|
||
//#define SUBSECTION_NUM_FIVE 1
|
||
|
||
#elif MID_DN20_BRASS_63KPA_GP30_32768
|
||
#define DEFAULT_START_FLOW 0x00B7 //DN20铜63KPA时的使动流量数值
|
||
#define FLOW_RATE_FILTER_COEFFICIENT (float)0.3//瞬时流量滤波系数
|
||
#define GP30_DIFTOF_FILTER_COEFFICIENT (FLOW_RATE_FILTER_COEFFICIENT*(float)2)//活塞台子时间差滤波系数
|
||
#define DIFTOF_COEFFICIENT (float)0.119770896//
|
||
#define R400Q1 (float)10
|
||
#define R400Q2 (float)16
|
||
#define R250Q2 (float)25
|
||
#define Q3_3_3 (float)1320
|
||
#define Q3_6_6 (float)2640
|
||
#define MIN_FLOW_0_6 0x80000//最小流量的50%
|
||
#define MAX_FLOW_1_02 0x14050000//过载流量的102%
|
||
#define MIN_FLOW_0_3 0x40000//最小流量的25%
|
||
#define LIMIT_FLOW_1_5Q4 7500//1.5倍的过载流量
|
||
#define LIMIT_DIFTOF_FORWARD 0x000347AE //-220~820ns时间差判断,时间差为正
|
||
#define LIMIT_DIFTOF_REVERSE 0x8000E147 //-220~-820ns时间差判断,时间差为负
|
||
#define SEGMENT_NUM_SMALL 16
|
||
#define SEGMENT_NUM_MIDDLE 23// 之前是40 修改0816
|
||
#define SEGMENT_NUM_LARGE 155
|
||
#define SEGMENT_NUM_ERROR_MIDDLE 43 //误差曲线新增,为了适配4段的建模
|
||
|
||
#define DXS_SEGMENT_NUM_LARGE 280 //多项式的基础模型分段值
|
||
|
||
//理论模型----------------需要修改下面的参数!!!--------------------------------------------------------------------------------------
|
||
#define REAL_SOUND_PATH_LENGTH (float)59.95//(float)74.863 //L*cos 还是 D*cot—— D准确 ——————————————2021-2-1改为弦向尺寸 2021-7-21 ——15的59.8;20的59.95
|
||
#define MEASYRING_TUBE_DIAMETER (float)13.6 //15的10.7, 20的13.6
|
||
#define FLOW_RATE_MULTIPLIER (float)8.3402836e-9//(float)6.6788667e-9 // 流速计算常数= 1e-9/(2*(L有效))/0.001
|
||
#define FLOW_MULTIPLIER (float)485.82 // 流量计算常数= (3.1416*D*D*1e-6/4 )*3600 *1000L/h //面积 PF 15:80.67 PF 20:134.95
|
||
|
||
#define CALIBRATION_PROTECT_VALUE ((float)0.9*R400Q1) //防冻校准流速小于0.9倍Q1即不走数
|
||
|
||
//流量曲线的数量开关
|
||
//#define SUBSECTION_NUM_THREE 1
|
||
#define SUBSECTION_NUM_FOUR 1
|
||
//#define SUBSECTION_NUM_FIVE 1
|
||
|
||
#elif EN_DN20_BRASS_63KPA_GP30_32768
|
||
#define DEFAULT_START_FLOW 0x00B7 //DN20铜63KPA时的使动流量数值
|
||
#define FLOW_RATE_FILTER_COEFFICIENT (float)0.3//瞬时流量滤波系数
|
||
#define GP30_DIFTOF_FILTER_COEFFICIENT ((float)FLOW_RATE_FILTER_COEFFICIENT*2)//活塞台子时间差滤波系数
|
||
#define DIFTOF_COEFFICIENT (float)0.119770896//
|
||
#define R400Q1 (float)10
|
||
#define R400Q2 (float)16
|
||
#define R250Q2 (float)25
|
||
#define Q3_3_3 (float)1320
|
||
#define Q3_6_6 (float)2640
|
||
#define MIN_FLOW_0_6 0x80000//最小流量的50%
|
||
#define MAX_FLOW_1_02 0x14050000//过载流量的102%
|
||
#define MIN_FLOW_0_3 0x40000//最小流量的25%
|
||
#define LIMIT_FLOW_1_5Q4 7500//1.5倍的过载流量
|
||
#define LIMIT_DIFTOF_FORWARD 0x000347AE //-220~820ns时间差判断,时间差为正
|
||
#define LIMIT_DIFTOF_REVERSE 0x8000E147 //-220~-820ns时间差判断,时间差为负
|
||
#define SEGMENT_NUM_SMALL 16
|
||
#define SEGMENT_NUM_MIDDLE 38// 之前是40 修改0816
|
||
#define SEGMENT_NUM_LARGE 128
|
||
#define SEGMENT_NUM_ERROR_MIDDLE 43 //误差曲线新增,为了适配4段的建模
|
||
|
||
#define DXS_SEGMENT_NUM_LARGE 280 //多项式的基础模型分段值
|
||
|
||
//理论模型----------------需要修改下面的参数!!!--------------------------------------------------------------------------------------
|
||
#define REAL_SOUND_PATH_LENGTH (float)59.95//(float)74.863 //L*cos 还是 D*cot—— D准确 ——————————————2021-2-1改为弦向尺寸 2021-7-21 ——15的59.8;20的59.95
|
||
#define MEASYRING_TUBE_DIAMETER (float)13.6 //15的10.7, 20的13.6
|
||
#define FLOW_RATE_MULTIPLIER (float)8.3402836e-9//(float)6.6788667e-9 // 流速计算常数= 1e-9/(2*(L有效))/0.001
|
||
#define FLOW_MULTIPLIER (float)485.82 // 流量计算常数= (3.1416*D*D*1e-6/4 )*3600 *1000L/h //面积 PF 15:80.67 PF 20:134.95
|
||
|
||
#define CALIBRATION_PROTECT_VALUE ((float)0.9*R400Q1) //防冻校准流速小于0.9倍Q1即不走数
|
||
|
||
//流量曲线的数量开关
|
||
//#define SUBSECTION_NUM_THREE 1
|
||
#define SUBSECTION_NUM_FOUR 1
|
||
//#define SUBSECTION_NUM_FIVE 1
|
||
|
||
|
||
#elif BM_DN20_BRASS_63KPA_GP30_32768
|
||
#define DEFAULT_START_FLOW 0x00B7 //DN20铜63KPA时的使动流量数值 700ps
|
||
#define FLOW_RATE_FILTER_COEFFICIENT (float)0.3//瞬时流量滤波系数
|
||
#define GP30_DIFTOF_FILTER_COEFFICIENT (FLOW_RATE_FILTER_COEFFICIENT*(float)2)//活塞台子时间差滤波系数
|
||
#define DIFTOF_COEFFICIENT (float)0.114827154
|
||
#define R400Q1 (float)10
|
||
#define R400Q2 (float)16
|
||
#define R250Q2 (float)25
|
||
#define Q3_3_3 (float)1320
|
||
#define Q3_6_6 (float)2640
|
||
#define MIN_FLOW_0_6 0x80000//最小流量的50%
|
||
#define MAX_FLOW_1_02 0x14050000//过载流量的102%
|
||
#define MIN_FLOW_0_3 0x40000//最小流量的25%
|
||
#define LIMIT_FLOW_1_5Q4 7500//1.5倍的过载流量
|
||
#define LIMIT_DIFTOF_FORWARD 0x000347AE //-220~820ns时间差判断,时间差为正
|
||
#define LIMIT_DIFTOF_REVERSE 0x8000E147 //-220~-820ns时间差判断,时间差为负
|
||
#define SEGMENT_NUM_SMALL 14
|
||
#define SEGMENT_NUM_MIDDLE 40
|
||
#define SEGMENT_NUM_LARGE 160
|
||
|
||
#define DXS_SEGMENT_NUM_LARGE 280 //多项式的基础模型分段值
|
||
//流量曲线的数量开关
|
||
//#define SUBSECTION_NUM_THREE 1
|
||
#define SUBSECTION_NUM_FOUR 1
|
||
//#define SUBSECTION_NUM_FIVE 1
|
||
#define CALIBRATION_PROTECT_VALUE ((float)0.9*R400Q1) //防冻校准流速小于0.9倍Q1即不走数
|
||
|
||
//20211205
|
||
#elif PF_DN20_BRASS_63KPA_GP30_32768
|
||
#define DEFAULT_START_FLOW 0x00B7 //DN20铜63KPA时的使动流量数值
|
||
#define FLOW_RATE_FILTER_COEFFICIENT (float)0.3//瞬时流量滤波系数
|
||
#define GP30_DIFTOF_FILTER_COEFFICIENT (FLOW_RATE_FILTER_COEFFICIENT*(float)2)//活塞台子时间差滤波系数
|
||
#define DIFTOF_COEFFICIENT (float)0.119770896//
|
||
#define R400Q1 (float)10
|
||
#define R400Q2 (float)16
|
||
#define R250Q2 (float)25
|
||
#define Q3_3_3 (float)1320
|
||
#define Q3_6_6 (float)2640
|
||
#define MIN_FLOW_0_6 0x80000//最小流量的50%
|
||
#define MAX_FLOW_1_02 0x14050000//过载流量的102%
|
||
#define MIN_FLOW_0_3 0x40000//最小流量的25%
|
||
#define LIMIT_FLOW_1_5Q4 7500//1.5倍的过载流量
|
||
#define LIMIT_DIFTOF_FORWARD 0x000347AE //-220~820ns时间差判断,时间差为正
|
||
#define LIMIT_DIFTOF_REVERSE 0x8000E147 //-220~-820ns时间差判断,时间差为负
|
||
#define SEGMENT_NUM_SMALL 16
|
||
#define SEGMENT_NUM_MIDDLE 23// 之前是40 修改0816
|
||
#define SEGMENT_NUM_LARGE 155
|
||
#define SEGMENT_NUM_ERROR_MIDDLE 43 //误差曲线新增,为了适配4段的建模
|
||
|
||
#define DXS_SEGMENT_NUM_LARGE 280 //多项式的基础模型分段值
|
||
|
||
//理论模型----------------需要修改下面的参数!!!--------------------------------------------------------------------------------------
|
||
#define REAL_SOUND_PATH_LENGTH (float)59.95//(float)74.863 //L*cos 还是 D*cot—— D准确 ——————————————2021-2-1改为弦向尺寸 2021-7-21 ——15的59.8;20的59.95
|
||
#define MEASYRING_TUBE_DIAMETER (float)13.6 //15的10.7, 20的13.6
|
||
#define FLOW_RATE_MULTIPLIER (float)8.3402836e-9//(float)6.6788667e-9 // 流速计算常数= 1e-9/(2*(L有效))/0.001
|
||
#define FLOW_MULTIPLIER (float)485.82 // 流量计算常数= (3.1416*D*D*1e-6/4 )*3600 *1000L/h //面积 PF 15:80.67 PF 20:134.95
|
||
|
||
#define CALIBRATION_PROTECT_VALUE ((float)0.9*R400Q1) //防冻校准流速小于0.9倍Q1即不走数
|
||
#define FLOAT_BETWEEN_DATA_DIF_MAX (float)3.8//950ns时间差对应的滤波时的float类型数值=850/250 临界状态切换门限值
|
||
#define FLOAT_SWITCH_STATE_THRESHOLD (float)3.4//850ns时间差对应的滤波时的float类型数值=850/250 临界状态切换门限值
|
||
#define FLOAT_BETWEEN_DATA_DIF (float)2.2//550ns时间差对应的滤波时的float类型数值=550/250 相邻俩个数据之间的差值
|
||
#define FLOAT_LAST_DATA_MAX_THRESHOULD (float)1.4//350ns时间差对应的滤波时的float类型数值=350/250 上一个数据的门限判定上限值 关于门限判定,程序中判定的是负数,所以-350是上限
|
||
#define FLOAT_LAST_DATA_MIN_THRESHOULD (float)1.84//460ns时间差对应的滤波时的float类型数值=460/250 上一个数据的门限判定门限值 关于门限判定,程序中判定的是负数,所以-460是下限
|
||
#define FLOAT_SWITCH_STATE_CURRENT_THRESHOLD (float)0.64//160ns时间差对应的滤波时的float类型数值=160/250 临界状态当前数据的门限值
|
||
|
||
//流量曲线的数量开关
|
||
//#define SUBSECTION_NUM_THREE 1
|
||
#define SUBSECTION_NUM_FOUR 1
|
||
//#define SUBSECTION_NUM_FIVE 1
|
||
|
||
#elif BM_DN25_BRASS_63KPA_GP30_32768
|
||
#define DEFAULT_START_FLOW 0xEC //DN25铜63KPA时的使动流量数值 900ps
|
||
#define FLOW_RATE_FILTER_COEFFICIENT (float)0.3//瞬时流量滤波系数
|
||
#define GP30_DIFTOF_FILTER_COEFFICIENT (FLOW_RATE_FILTER_COEFFICIENT*(float)2)//活塞台子时间差滤波系数
|
||
#define DIFTOF_COEFFICIENT (float)0.123358832 //25L/h对应的始动数值
|
||
#define R400Q1 (float)16
|
||
#define R400Q2 (float)25
|
||
#define R250Q2 (float)40
|
||
#define Q3_3_3 (float)2079
|
||
#define Q3_6_6 (float)4158
|
||
#define MIN_FLOW_0_6 0xF0000//最小流量的50%
|
||
#define MAX_FLOW_1_02 0x1F600000//过载流量的102%
|
||
#define MIN_FLOW_0_3 0x60000//最小流量的25%
|
||
#define LIMIT_FLOW_1_5Q4 11700//1.5倍的过载流量
|
||
#define LIMIT_DIFTOF_FORWARD 0x00039999 //-100~900ns时间差判断,时间差为正
|
||
#define LIMIT_DIFTOF_REVERSE 0x80006666 //-100~900ns时间差判断,时间差为负
|
||
#define SEGMENT_NUM_SMALL 22
|
||
#define SEGMENT_NUM_MIDDLE 60
|
||
#define SEGMENT_NUM_LARGE 320
|
||
|
||
#define DXS_SEGMENT_NUM_LARGE 280 //多项式的基础模型分段值
|
||
//流量曲线的数量开关
|
||
//#define SUBSECTION_NUM_THREE 1
|
||
#define SUBSECTION_NUM_FOUR 1
|
||
//#define SUBSECTION_NUM_FIVE 1
|
||
#define CALIBRATION_PROTECT_VALUE ((float)0.9*R400Q1) //防冻校准流速小于0.9倍Q1即不走数
|
||
|
||
#elif DN25_BRASS_40KPA_GP30_32768 || LLGS_DN25_BRASS_40KPA_GP30_32768
|
||
#define DEFAULT_START_FLOW 0xEC //DN25铜63KPA时的使动流量数值 900ps
|
||
#define FLOW_RATE_FILTER_COEFFICIENT (float)0.3//瞬时流量滤波系数
|
||
#define GP30_DIFTOF_FILTER_COEFFICIENT (FLOW_RATE_FILTER_COEFFICIENT*(float)2)//活塞台子时间差滤波系数
|
||
#define DIFTOF_COEFFICIENT (float)0.123358832 //25L/h对应的始动数值
|
||
#define R400Q1 (float)16
|
||
#define R400Q2 (float)25
|
||
#define R250Q2 (float)40
|
||
#define Q3_3_3 (float)2079
|
||
#define Q3_6_6 (float)4158
|
||
#define MIN_FLOW_0_6 0xF0000//最小流量的50%
|
||
#define MAX_FLOW_1_02 0x1F600000//过载流量的102%
|
||
#define MIN_FLOW_0_3 0x60000//最小流量的25%
|
||
#define LIMIT_FLOW_1_5Q4 11700//1.5倍的过载流量
|
||
#define LIMIT_DIFTOF_FORWARD 0x000347AE //-220~820ns时间差判断,时间差为正
|
||
#define LIMIT_DIFTOF_REVERSE 0x8000E147 //-220~-820ns时间差判断,时间差为负
|
||
#define SEGMENT_NUM_SMALL 35
|
||
#define SEGMENT_NUM_MIDDLE 50
|
||
#define SEGMENT_NUM_LARGE 320
|
||
|
||
#define DXS_SEGMENT_NUM_LARGE 280 //多项式的基础模型分段值
|
||
|
||
|
||
/*需要修改下面的参数!!!20211105*/
|
||
#define SEGMENT_NUM_ERROR_MIDDLE 60
|
||
|
||
#define CALIBRATION_PROTECT_VALUE ((float)0.9*R400Q2) //防冻校准流速小于0.9倍Q1即不走数
|
||
#define TOF_AM_VALUE 160//2022-09-17
|
||
#define TOF_UP_AM_0_8 (0.8*TOF_AM_VALUE)//up最大幅值0.8倍
|
||
#define TOF_DOWN_AM_0_8 (0.8*TOF_AM_VALUE)//down最大幅值0.8倍
|
||
#define Q1_0_8 (float)20//0.8倍的R250的Q1数值
|
||
|
||
//理论模型----------------需要修改下面的参数!!!--------------------------------------------------------------------------------------
|
||
#define REAL_SOUND_PATH_LENGTH (float)85//(float)74.863 //L*cos 还是 D*cot—— D准确 ——————————————2021-2-1改为弦向尺寸 2021-7-21 ——15的59.8;20的59.95
|
||
#define MEASYRING_TUBE_DIAMETER (float)17 //15的10.7, 20的13.6
|
||
#define FLOW_RATE_MULTIPLIER (float)5.8823529e-9//(float)6.6788667e-9 // 流速计算常数= 1e-9/(2*(L有效))/0.001
|
||
#define FLOW_MULTIPLIER (float)826.7796 // 流量计算常数= (3.1416*D*D*1e-6/4 )*3600 *1000L/h //面积 15:93.3307 20:146.631 25 229.661mm2
|
||
|
||
//流量曲线的数量开关
|
||
//#define SUBSECTION_NUM_THREE 1
|
||
#define SUBSECTION_NUM_FOUR 1
|
||
//#define SUBSECTION_NUM_FIVE 1
|
||
|
||
#elif MID_DN25_BRASS_63KPA_GP30_32768
|
||
#define DEFAULT_START_FLOW 0x106 //DN25铜63KPA时的使动流量数值
|
||
#define FLOW_RATE_FILTER_COEFFICIENT (float)0.3//瞬时流量滤波系数
|
||
#define GP30_DIFTOF_FILTER_COEFFICIENT (FLOW_RATE_FILTER_COEFFICIENT*(float)2)//活塞台子时间差滤波系数
|
||
#define DIFTOF_COEFFICIENT (float)0.125176377 //40L/h对应的时间差均值4.862376622
|
||
#define R400Q1 (float)16
|
||
#define R400Q2 (float)25
|
||
#define R250Q2 (float)40
|
||
#define Q3_3_3 (float)2079
|
||
#define Q3_6_6 (float)4158
|
||
#define MIN_FLOW_0_6 0xF0000//最小流量的50%
|
||
#define MAX_FLOW_1_02 0x1F600000//过载流量的102%
|
||
#define MIN_FLOW_0_3 0x60000//最小流量的25%
|
||
#define LIMIT_FLOW_1_5Q4 11700//1.5倍的过载流量
|
||
#define LIMIT_DIFTOF_FORWARD 0x00039999 //-100~900ns时间差判断,时间差为正
|
||
#define LIMIT_DIFTOF_REVERSE 0x80006666 //-100~900ns时间差判断,时间差为负
|
||
#define SEGMENT_NUM_SMALL 23////////???
|
||
#define SEGMENT_NUM_MIDDLE 45////////???
|
||
#define SEGMENT_NUM_LARGE 530
|
||
|
||
#define DXS_SEGMENT_NUM_LARGE 280 //多项式的基础模型分段值
|
||
//流量曲线的数量开关
|
||
//#define SUBSECTION_NUM_THREE 1
|
||
#define SUBSECTION_NUM_FOUR 1
|
||
//#define SUBSECTION_NUM_FIVE 1
|
||
#define CALIBRATION_PROTECT_VALUE ((float)0.9*R400Q1) //防冻校准流速小于0.9倍Q1即不走数
|
||
|
||
//20211205
|
||
#elif PF_DN25_BRASS_63KPA_GP30_32768
|
||
#define DEFAULT_START_FLOW 0xEC //DN25铜63KPA时的使动流量数值 900ps
|
||
#define FLOW_RATE_FILTER_COEFFICIENT (float)0.3//瞬时流量滤波系数
|
||
#define GP30_DIFTOF_FILTER_COEFFICIENT (FLOW_RATE_FILTER_COEFFICIENT*(float)2)//活塞台子时间差滤波系数
|
||
#define DIFTOF_COEFFICIENT (float)0.123358832 //25L/h对应的始动数值
|
||
#define R400Q1 (float)16
|
||
#define R400Q2 (float)25
|
||
#define R250Q2 (float)40
|
||
#define Q3_3_3 (float)2079
|
||
#define Q3_6_6 (float)4158
|
||
#define MIN_FLOW_0_6 0xF0000//最小流量的50%
|
||
#define MAX_FLOW_1_02 0x1F600000//过载流量的102%
|
||
#define MIN_FLOW_0_3 0x60000//最小流量的25%
|
||
#define LIMIT_FLOW_1_5Q4 11700//1.5倍的过载流量
|
||
#define LIMIT_DIFTOF_FORWARD 0x000347AE //-220~820ns时间差判断,时间差为正
|
||
#define LIMIT_DIFTOF_REVERSE 0x8000E147 //-220~-820ns时间差判断,时间差为负
|
||
#define SEGMENT_NUM_SMALL 35
|
||
#define SEGMENT_NUM_MIDDLE 50
|
||
#define SEGMENT_NUM_LARGE 320
|
||
|
||
#define DXS_SEGMENT_NUM_LARGE 280 //多项式的基础模型分段值
|
||
|
||
/*需要修改下面的参数!!!20211105*/
|
||
#define SEGMENT_NUM_ERROR_MIDDLE 60////
|
||
|
||
//理论模型----------------------------需要修改参数!!!!-------
|
||
#define REAL_SOUND_PATH_LENGTH (float)85//(float)74.863 //L*cos 还是 D*cot—— D准确 ——————————————2021-2-1改为弦向尺寸 2021-7-21 ——15的59.8;20的59.95
|
||
#define MEASYRING_TUBE_DIAMETER (float)17 //15的10.7, 20的13.6
|
||
#define FLOW_RATE_MULTIPLIER (float)5.8823529e-9//(float)6.6788667e-9 // 流速计算常数= 1e-9/(2*(L有效))/0.001
|
||
#define FLOW_MULTIPLIER (float)826.7796 // 流量计算常数= (3.1416*D*D*1e-6/4 )*3600 *1000L/h //面积 15:93.3307 20:146.631 25 229.661mm2
|
||
|
||
#define CALIBRATION_PROTECT_VALUE ((float)0.9*R400Q1) //防冻校准流速小于0.9倍Q1即不走数
|
||
#define FLOAT_BETWEEN_DATA_DIF_MAX (float)3.8//950ns时间差对应的滤波时的float类型数值=850/250 临界状态切换门限值
|
||
#define FLOAT_SWITCH_STATE_THRESHOLD (float)3.4//850ns时间差对应的滤波时的float类型数值=850/250 临界状态切换门限值
|
||
#define FLOAT_BETWEEN_DATA_DIF (float)2.2//550ns时间差对应的滤波时的float类型数值=550/250 相邻俩个数据之间的差值
|
||
#define FLOAT_LAST_DATA_MAX_THRESHOULD (float)1.4//350ns时间差对应的滤波时的float类型数值=350/250 上一个数据的门限判定上限值 关于门限判定,程序中判定的是负数,所以-350是上限
|
||
#define FLOAT_LAST_DATA_MIN_THRESHOULD (float)1.84//460ns时间差对应的滤波时的float类型数值=460/250 上一个数据的门限判定门限值 关于门限判定,程序中判定的是负数,所以-460是下限
|
||
#define FLOAT_SWITCH_STATE_CURRENT_THRESHOLD (float)0.64//160ns时间差对应的滤波时的float类型数值=160/250 临界状态当前数据的门限值
|
||
//流量曲线的数量开关
|
||
//#define SUBSECTION_NUM_THREE 1
|
||
#define SUBSECTION_NUM_FOUR 1
|
||
//#define SUBSECTION_NUM_FIVE 1
|
||
|
||
#elif DN32_BRASS_63KPA_GP30_32768
|
||
#define DEFAULT_START_FLOW 0x0106
|
||
#define DIFTOF_COEFFICIENT (float)0.081530677//40L/h对应的时间差均值
|
||
#define R400Q1 (float)25
|
||
#define R400Q2 (float)40
|
||
#define R250Q2 (float)64
|
||
#define Q3_3_3 (float)3300
|
||
#define Q3_6_6 (float)6600
|
||
#define MIN_FLOW_0_6 0x140000//最小流量的50%
|
||
#define MAX_FLOW_1_02 0x31CE0000//过载流量的102%
|
||
#define MIN_FLOW_0_3 0xA0000//最小流量的25%
|
||
#define LIMIT_FLOW_1_5Q4 18750//1.5倍的过载流量
|
||
#define LIMIT_DIFTOF_FORWARD 0x0003AE14 //-80~920ns时间差判断,时间差为正 2022-08-09更新
|
||
#define LIMIT_DIFTOF_REVERSE 0x800051EB //-80~920ns时间差判断,时间差为负
|
||
#define SEGMENT_NUM_SMALL 50
|
||
#define SEGMENT_NUM_MIDDLE 120
|
||
#define SEGMENT_NUM_LARGE 520
|
||
|
||
/*需要修改下面的参数!!!20211105*/
|
||
#define SEGMENT_NUM_ERROR_MIDDLE 130 //这个值
|
||
|
||
#define DXS_SEGMENT_NUM_LARGE 280 //多项式的基础模型分段值
|
||
|
||
//理论模型----------------------------需要修改参数!!!!-------
|
||
#define REAL_SOUND_PATH_LENGTH (float)85//(float)74.863 //L*cos 还是 D*cot—— D准确 ——————————————2021-2-1改为弦向尺寸 2021-7-21 ——15的59.8;20的59.95
|
||
#define MEASYRING_TUBE_DIAMETER (float)21 //15的10.7, 20的13.6
|
||
#define FLOW_RATE_MULTIPLIER (float)5.8823529e-9//(float)6.6788667e-9 // 流速计算常数= 1e-9/(2*(L有效))/0.001
|
||
#define FLOW_MULTIPLIER (float)1252.1376 // 流量计算常数= (3.1416*D*D*1e-6/4 )*3600 *1000L/h //面积 15:93.3307 20:146.631
|
||
|
||
#define CALIBRATION_PROTECT_VALUE ((float)0.9*R400Q1) //防冻校准流速小于0.9倍Q1即不走数
|
||
#define TOF_AM_VALUE 190
|
||
#define TOF_UP_AM_0_8 (0.8*TOF_AM_VALUE)//up最大幅值0.8倍
|
||
#define TOF_DOWN_AM_0_8 (0.8*TOF_AM_VALUE)//down最大幅值0.8倍
|
||
#define Q1_0_8 (float)20//0.8倍的R400的Q1数值
|
||
|
||
//流量曲线的数量开关
|
||
//#define SUBSECTION_NUM_THREE 1
|
||
#define SUBSECTION_NUM_FOUR 1
|
||
//#define SUBSECTION_NUM_FIVE 1
|
||
|
||
#elif BM_DN32_BRASS_63KPA_GP30_32768
|
||
#define DEFAULT_START_FLOW 0x0106
|
||
#define DIFTOF_COEFFICIENT (float)0.081530677//40L/h对应的时间差均值
|
||
#define R400Q1 (float)25
|
||
#define R400Q2 (float)40
|
||
#define R250Q2 (float)64
|
||
#define Q3_3_3 (float)3300
|
||
#define Q3_6_6 (float)6600
|
||
#define MIN_FLOW_0_6 0x140000//最小流量的50%
|
||
#define MAX_FLOW_1_02 0x31CE0000//过载流量的102%
|
||
#define MIN_FLOW_0_3 0xA0000//最小流量的25%
|
||
#define LIMIT_FLOW_1_5Q4 18750//1.5倍的过载流量
|
||
#define LIMIT_DIFTOF_FORWARD 0x00039999 //-100~900ns时间差判断,时间差为正
|
||
#define LIMIT_DIFTOF_REVERSE 0x80006666 //-100~900ns时间差判断,时间差为负
|
||
#define SEGMENT_NUM_SMALL 55//分段多包一下测试点
|
||
#define SEGMENT_NUM_MIDDLE 80//分段多包一下测试点
|
||
#define SEGMENT_NUM_LARGE 520
|
||
|
||
#define DXS_SEGMENT_NUM_LARGE 280 //多项式的基础模型分段值
|
||
|
||
#define CALIBRATION_PROTECT_VALUE ((float)0.9*R400Q1) //防冻校准流速小于0.9倍Q1即不走数
|
||
#define TOF_AM_VALUE 190
|
||
#define TOF_UP_AM_0_8 (0.8*TOF_AM_VALUE)//up最大幅值0.8倍
|
||
#define TOF_DOWN_AM_0_8 (0.8*TOF_AM_VALUE)//down最大幅值0.8倍
|
||
#define Q1_0_8 (float)20//0.8倍的R400的Q1数值
|
||
|
||
//流量曲线的数量开关
|
||
//#define SUBSECTION_NUM_THREE 1
|
||
#define SUBSECTION_NUM_FOUR 1
|
||
//#define SUBSECTION_NUM_FIVE 1
|
||
|
||
//20211205
|
||
#elif PF_DN32_BRASS_63KPA_GP30_32768
|
||
#define DEFAULT_START_FLOW 0x106
|
||
#define DIFTOF_COEFFICIENT (float)0.081530677//40L/h对应的时间差均值
|
||
#define R400Q1 (float)25
|
||
#define R400Q2 (float)40
|
||
#define R250Q2 (float)64
|
||
#define Q3_3_3 (float)3300
|
||
#define Q3_6_6 (float)6600
|
||
#define MIN_FLOW_0_6 0x140000//最小流量的50%
|
||
#define MAX_FLOW_1_02 0x31CE0000//过载流量的102%
|
||
#define MIN_FLOW_0_3 0xA0000//最小流量的25%
|
||
#define LIMIT_FLOW_1_5Q4 18750//1.5倍的过载流量
|
||
#define LIMIT_DIFTOF_FORWARD 0x000347AE //-220~820ns时间差判断,时间差为正
|
||
#define LIMIT_DIFTOF_REVERSE 0x8000E147 //-220~-820ns时间差判断,时间差为负
|
||
#define SEGMENT_NUM_SMALL 50
|
||
#define SEGMENT_NUM_MIDDLE 75
|
||
#define SEGMENT_NUM_LARGE 520
|
||
|
||
#define DXS_SEGMENT_NUM_LARGE 280 //多项式的基础模型分段值
|
||
|
||
/*需要修改下面的参数!!!20211105*/
|
||
#define SEGMENT_NUM_ERROR_MIDDLE 120 //误差曲线新增,为了适配4段的建模
|
||
|
||
//理论模型----------------------------需要修改参数!!!!-------
|
||
#define REAL_SOUND_PATH_LENGTH (float)85//(float)74.863 //L*cos 还是 D*cot—— D准确 ——————————————2021-2-1改为弦向尺寸 2021-7-21 ——15的59.8;20的59.95
|
||
#define MEASYRING_TUBE_DIAMETER (float)21 //15的10.7, 20的13.6
|
||
#define FLOW_RATE_MULTIPLIER (float)5.8823529e-9//(float)6.6788667e-9 // 流速计算常数= 1e-9/(2*(L有效))/0.001
|
||
#define FLOW_MULTIPLIER (float)1252.1376 // 流量计算常数= (3.1416*D*D*1e-6/4 )*3600 *1000L/h //面积 15:93.3307 20:146.631
|
||
|
||
#define CALIBRATION_PROTECT_VALUE ((float)0.9*R400Q1) //防冻校准流速小于0.9倍Q1即不走数
|
||
#define FLOAT_BETWEEN_DATA_DIF_MAX (float)3.8//950ns时间差对应的滤波时的float类型数值=850/250 临界状态切换门限值
|
||
#define FLOAT_SWITCH_STATE_THRESHOLD (float)3.4//850ns时间差对应的滤波时的float类型数值=850/250 临界状态切换门限值
|
||
#define FLOAT_BETWEEN_DATA_DIF (float)2.2//550ns时间差对应的滤波时的float类型数值=550/250 相邻俩个数据之间的差值
|
||
#define FLOAT_LAST_DATA_MAX_THRESHOULD (float)1.4//350ns时间差对应的滤波时的float类型数值=350/250 上一个数据的门限判定上限值 关于门限判定,程序中判定的是负数,所以-350是上限
|
||
#define FLOAT_LAST_DATA_MIN_THRESHOULD (float)1.84//460ns时间差对应的滤波时的float类型数值=460/250 上一个数据的门限判定门限值 关于门限判定,程序中判定的是负数,所以-460是下限
|
||
#define FLOAT_SWITCH_STATE_CURRENT_THRESHOLD (float)0.64//160ns时间差对应的滤波时的float类型数值=160/250 临界状态当前数据的门限值
|
||
|
||
//流量曲线的数量开关
|
||
//#define SUBSECTION_NUM_THREE 1
|
||
#define SUBSECTION_NUM_FOUR 1
|
||
//#define SUBSECTION_NUM_FIVE 1
|
||
|
||
#elif DN40_BRASS_63KPA_GP30_32768
|
||
#define DEFAULT_START_FLOW 0x00D2 //800ps
|
||
#define DIFTOF_COEFFICIENT (float)0.042673614 //64 L/h对应的时间差均值
|
||
#define R400Q1 (float)40
|
||
#define R400Q2 (float)64
|
||
#define R250Q2 (float)102
|
||
#define Q3_3_3 (float)5280
|
||
#define Q3_6_6 (float)10560
|
||
#define MIN_FLOW_0_6 0x200000//最小流量的50%
|
||
#define MAX_FLOW_1_02 0x4FB00000//过载流量的102%
|
||
#define MIN_FLOW_0_3 0x100000//最小流量的25%
|
||
#define LIMIT_FLOW_1_5Q4 30000//1.5倍的过载流量
|
||
#define LIMIT_DIFTOF_FORWARD 0x0003AE14 //-80~920ns时间差判断,时间差为正
|
||
#define LIMIT_DIFTOF_REVERSE 0x800051EB //-80~920ns时间差判断,时间差为负
|
||
#define SEGMENT_NUM_SMALL 76
|
||
#define SEGMENT_NUM_MIDDLE 530//
|
||
#define SEGMENT_NUM_LARGE 2700
|
||
|
||
#define DXS_SEGMENT_NUM_LARGE 280 //多项式的基础模型分段值
|
||
|
||
/*需要修改下面的参数!!!20211105*/
|
||
#define SEGMENT_NUM_ERROR_MIDDLE 550 ////这个值没有意义
|
||
|
||
//理论模型----------------------------需要修改参数!!!!-------
|
||
#define REAL_SOUND_PATH_LENGTH (float)85//(float)74.863 //L*cos 还是 D*cot—— D准确 ——————————————2021-2-1改为弦向尺寸 2021-7-21 ——15的59.8;20的59.95
|
||
#define MEASYRING_TUBE_DIAMETER (float)26 //15的10.7, 20的13.6
|
||
#define FLOW_RATE_MULTIPLIER (float)5.8823529e-9//(float)6.6788667e-9 // 流速计算常数= 1e-9/(2*(L有效))/0.001
|
||
#define FLOW_MULTIPLIER (float)1935.0432 // 流量计算常数= (3.1416*D*D*1e-6/4 )*3600 *1000L/h //面积 15:93.3307 20:146.631
|
||
|
||
|
||
#define CALIBRATION_PROTECT_VALUE ((float)0.9*R400Q1) //防冻校准流速小于0.9倍Q1即不走数
|
||
#define TOF_AM_VALUE 250
|
||
#define TOF_UP_AM_0_8 (0.8*TOF_AM_VALUE)//up最大幅值0.8倍
|
||
#define TOF_DOWN_AM_0_8 (0.8*TOF_AM_VALUE)//down最大幅值0.8倍
|
||
#define Q1_0_8 (float)32//0.8倍的R400的Q1数值
|
||
|
||
//流量曲线的数量开关
|
||
//#define SUBSECTION_NUM_THREE 1
|
||
#define SUBSECTION_NUM_FOUR 1
|
||
//#define SUBSECTION_NUM_FIVE 1
|
||
|
||
#elif BM_DN40_BRASS_63KPA_GP30_32768
|
||
#define DEFAULT_START_FLOW 0x00D2 //800ps
|
||
#define DIFTOF_COEFFICIENT (float)0.042673614 //64 L/h对应的时间差均值
|
||
#define R400Q1 (float)40
|
||
#define R400Q2 (float)64
|
||
#define R250Q2 (float)102
|
||
#define Q3_3_3 (float)5280
|
||
#define Q3_6_6 (float)10560
|
||
#define MIN_FLOW_0_6 0x200000//最小流量的50%
|
||
#define MAX_FLOW_1_02 0x4FB00000//过载流量的102%
|
||
#define MIN_FLOW_0_3 0x100000//最小流量的25%
|
||
#define LIMIT_FLOW_1_5Q4 30000//1.5倍的过载流量
|
||
#define LIMIT_DIFTOF_FORWARD 0x00039999 //-100~900ns时间差判断,时间差为正
|
||
#define LIMIT_DIFTOF_REVERSE 0x80006666 //-100~900ns时间差判断,时间差为负
|
||
#define SEGMENT_NUM_SMALL 80
|
||
#define SEGMENT_NUM_MIDDLE 120 //100计算的最大值是107,将102的点也包进去
|
||
#define SEGMENT_NUM_LARGE 2600
|
||
|
||
#define DXS_SEGMENT_NUM_LARGE 280 //多项式的基础模型分段值
|
||
|
||
|
||
#define CALIBRATION_PROTECT_VALUE ((float)0.9*R400Q1) //防冻校准流速小于0.9倍Q1即不走数
|
||
#define TOF_AM_VALUE 250
|
||
#define TOF_UP_AM_0_8 (0.8*TOF_AM_VALUE)//up最大幅值0.8倍
|
||
#define TOF_DOWN_AM_0_8 (0.8*TOF_AM_VALUE)//down最大幅值0.8倍
|
||
#define Q1_0_8 (float)32//0.8倍的R400的Q1数值
|
||
|
||
//流量曲线的数量开关
|
||
//#define SUBSECTION_NUM_THREE 1
|
||
#define SUBSECTION_NUM_FOUR 1
|
||
//#define SUBSECTION_NUM_FIVE 1
|
||
|
||
//20211205
|
||
#elif PF_DN40_BRASS_63KPA_GP30_32768
|
||
#define DEFAULT_START_FLOW 0xD2 //800ps
|
||
#define DIFTOF_COEFFICIENT (float)0.042673614 //64 L/h对应的时间差均值
|
||
#define R400Q1 (float)40
|
||
#define R400Q2 (float)64
|
||
#define R250Q2 (float)102
|
||
#define Q3_3_3 (float)5280
|
||
#define Q3_6_6 (float)10560
|
||
#define MIN_FLOW_0_6 0x200000//最小流量的50%
|
||
#define MAX_FLOW_1_02 0x4FB00000//过载流量的102%
|
||
#define MIN_FLOW_0_3 0x100000//最小流量的25%
|
||
#define LIMIT_FLOW_1_5Q4 30000//1.5倍的过载流量
|
||
#define LIMIT_DIFTOF_FORWARD 0x000347AE //-220~820ns时间差判断,时间差为正
|
||
#define LIMIT_DIFTOF_REVERSE 0x8000E147 //-220~-820ns时间差判断,时间差为负
|
||
#define SEGMENT_NUM_SMALL 76
|
||
#define SEGMENT_NUM_MIDDLE 530//
|
||
#define SEGMENT_NUM_LARGE 2700
|
||
|
||
#define DXS_SEGMENT_NUM_LARGE 280 //多项式的基础模型分段值
|
||
|
||
/*需要修改下面的参数!!!20211105*/
|
||
#define SEGMENT_NUM_ERROR_MIDDLE 550 ////这个值没有意义
|
||
|
||
//理论模型----------------------------需要修改参数!!!!-------
|
||
#define REAL_SOUND_PATH_LENGTH (float)85//(float)74.863 //L*cos 还是 D*cot—— D准确 ——————————————2021-2-1改为弦向尺寸 2021-7-21 ——15的59.8;20的59.95
|
||
#define MEASYRING_TUBE_DIAMETER (float)26 //15的10.7, 20的13.6
|
||
#define FLOW_RATE_MULTIPLIER (float)5.8823529e-9//(float)6.6788667e-9 // 流速计算常数= 1e-9/(2*(L有效))/0.001
|
||
#define FLOW_MULTIPLIER (float)1935.0432 // 流量计算常数= (3.1416*D*D*1e-6/4 )*3600 *1000L/h //面积 15:93.3307 20:146.631
|
||
|
||
#define CALIBRATION_PROTECT_VALUE ((float)0.9*R400Q1) //防冻校准流速小于0.9倍Q1即不走数
|
||
#define FLOAT_BETWEEN_DATA_DIF_MAX (float)3.8//950ns时间差对应的滤波时的float类型数值=850/250 临界状态切换门限值
|
||
#define FLOAT_SWITCH_STATE_THRESHOLD (float)3.4//850ns时间差对应的滤波时的float类型数值=850/250 临界状态切换门限值
|
||
#define FLOAT_BETWEEN_DATA_DIF (float)2.2//550ns时间差对应的滤波时的float类型数值=550/250 相邻俩个数据之间的差值
|
||
#define FLOAT_LAST_DATA_MAX_THRESHOULD (float)1.4//350ns时间差对应的滤波时的float类型数值=350/250 上一个数据的门限判定上限值 关于门限判定,程序中判定的是负数,所以-350是上限
|
||
#define FLOAT_LAST_DATA_MIN_THRESHOULD (float)1.84//460ns时间差对应的滤波时的float类型数值=460/250 上一个数据的门限判定门限值 关于门限判定,程序中判定的是负数,所以-460是下限
|
||
#define FLOAT_SWITCH_STATE_CURRENT_THRESHOLD (float)0.64//160ns时间差对应的滤波时的float类型数值=160/250 临界状态当前数据的门限值
|
||
//流量曲线的数量开关
|
||
//#define SUBSECTION_NUM_THREE 1
|
||
#define SUBSECTION_NUM_FOUR 1
|
||
//#define SUBSECTION_NUM_FIVE 1
|
||
|
||
#endif
|
||
|
||
#define MIN_START_FLOW 0x1A //100ps 对应的Gp30格式的数据 0.1/250*65536
|
||
#define MAX_START_FLOW 0x189 //1500ps 对应的Gp30格式的数据 1.5/250*65536
|
||
|
||
#define MIN_FLOW_TO_PS 0x64 //100ps 对应的十六进制
|
||
#define MAX_FLOW_TO_PS 0x05DC //1500ps 对应的十六进制
|
||
|
||
//#define RESET_LIMIT_DATE 200 //复位保留限定值(DN15 250 ,DN20 400, DN25 500, DN32 1000, DN40 1200)
|
||
//主要工作: 采样,滤波
|
||
/*************************宏定义****************************/
|
||
#define GP22_APP_S0 0
|
||
#define GP22_APP_S1 1
|
||
#define GP22_APP_S2 2
|
||
#define GP22_APP_S3 3
|
||
#define GP22_APP_S10 4
|
||
|
||
//采样启动
|
||
#define GP22_APP_FLOW 01 //GP22只启动流量。
|
||
#define GP22_APP_FLOW_TEMP 10 //GP22启动流量+温度。
|
||
//滤波时间差的正负号标志
|
||
#define GP22_APP_DIFTOF_POST 01 //滤波时间差为正
|
||
#define GP22_APP_DIFTOF_NEGT 10 //滤波时间差为负
|
||
|
||
//采样频率
|
||
#define GP22_SAMPLE_2HZ 1 //2Hz
|
||
#define GP22_SAMPLE_1HZ 2 //1Hz
|
||
#define GP22_SAMPLE_0_5HZ 4 //0.5Hz
|
||
//检定状态下,累积量计算系数
|
||
#define FACTOR_0_5 0.5
|
||
#define FACTOR_1 1
|
||
#define FACTOR_2 2
|
||
// 0流量时间差(绝对值)、1顺流单程时间、2逆流单程时间 4带正负号的顺流逆流时间差
|
||
#define GP22_APP_FLOW_DIFFER 0 //流量时间差(绝对值)
|
||
#define GP22_APP_UP_TOF 1 //顺流单程时间
|
||
#define GP22_APP_DOWN_TOF 2 //逆流单程时间
|
||
#define GP22_APP_STAND_DIFFER 3 //缺省
|
||
#define GP22_APP_FLOW_DIFFER_SIGN 4 //带正负号的顺流逆流时间差
|
||
|
||
|
||
//接口查询输入参数
|
||
#define GP30_APP_INS_FLOW 1//瞬时流量
|
||
#define GP30_APP_TOTAL_FLOW 2//累计流量
|
||
#define GP30_APP_TOTAL_FLOW_REVERSE 3//累计逆向流量
|
||
|
||
#define GP30_APP_TOF 4//单程时间up
|
||
#define GP30_APP_RATIO_UP 5//脉冲宽度比up
|
||
#define GP30_APP_PEAK_UP 6//峰值up
|
||
|
||
#define GP30_APP_DOWN 7//单程时间down
|
||
#define GP30_APP_RATIO_DOWN 8//脉冲宽度比DOWN
|
||
#define GP30_APP_PEAK_DOWN 9//峰值DOWN
|
||
|
||
#define GP30_APP_DIFF 10//时间差
|
||
#define GP30_APP_INS_FLOW_LCD 12//检定状态下瞬时流量显示
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
//#define GP30_APP_TOTAL_FLOW_REVERSE 13//逆向累计流量
|
||
|
||
#define GP30_APP_TEMP 14//温度
|
||
|
||
//规约传递的MSG
|
||
#define GP30_APP_STILL_WATER_FRAME 4 //查询静水时间差 参数
|
||
#define GP30_APP_CLEAR_DATA_FRAME 1 //清GP30 实时数据
|
||
|
||
//常数
|
||
//#define GP30_APP_QUEUE_SIZE 12
|
||
//#define GP30_APP_START_FLOW_FILTER 0xD1 //DN15、DN20整表:900、700ps(3.77L、5 L)——模组的800、600(3.3L、4.2)
|
||
//#define GP22_APP_START_FLOW_RESERVER 0x80000000|GP30_APP_START_FLOW_FILTER //反向始动流量DN15、DN20整表:900、700ps(3.77L、5 L)——模组的800、600(3.3L、4.2)
|
||
//#define GP30_APP_START_FLOW_FILTER_FOR_FLOAT (float)GP30_APP_START_FLOW_FILTER/(float)65536
|
||
#define MAX_TEMP_NUM 10//用于温度滤波的BUFFER最大值
|
||
#define MAX_TOF_BUCHANG_NUM 150//单程时间校准数据存储BUFFER----------这个数值需要实际活塞台子测试
|
||
|
||
#define TOF_BUCHANG_IDLE 0//单程时间补偿---空闲状态
|
||
#define TOF_BUCHANG_START_SAMPLE 1//单程时间补偿---采样状态
|
||
|
||
|
||
#define GP30_DIFTOF_FILTER_ENABLE_MAX_VALUE 0x1EB8//GP30时间差滤波算法启用的最大阈值,只有小于30ns的时间差才会启用新的滤波算法
|
||
|
||
|
||
#define TOF_MAX_DIF_FOR_HUADONG 0x0000E147// 150ns对应的GP30格式数据
|
||
#define TOF_DIF_FOR_HUADONG 0x00023333// 550ns对应的GP30格式数据
|
||
#define TOF_UP_FOR_FILTER_FLAG 1//UP单程时间滤波标志
|
||
#define TOF_DOWN_FOR_FILTER_FLAG 0//DOwn单程时间滤波标志
|
||
#define TOF_6_US 1572864 //6us 对应的GP30格式数据
|
||
|
||
typedef union {
|
||
u32 gp30_u32;
|
||
float gp30_float;
|
||
} To_Float_GP30;
|
||
|
||
#define GP30_APP_MAX_DATA 18 //GP30最大数据个数
|
||
|
||
typedef union {
|
||
u32 gp30_u32;
|
||
float gp30_float;
|
||
} To_Float;
|
||
|
||
typedef union {
|
||
u64 gp30_u64;
|
||
double gp30_double;
|
||
} To_Double;
|
||
|
||
typedef union {
|
||
|
||
struct {
|
||
u32 temp; //温度(GP30数据格式)
|
||
To_Float_GP30 total_flow; //累计流量(float(iEEE754),非检定放大倍数100)
|
||
To_Float_GP30 total_flow_reverse;//逆向累计流量
|
||
u32 ins_flow; //瞬时流量(GP30数据格式)
|
||
u32 TOF_up; //单程TOF_up均值(GP30数据格式)
|
||
u32 ratio_up; //Pulse_Width_Ratio_Up(GP30数据格式)
|
||
u32 peak_up; //换能器峰值(GP30数据格式)//换能器峰峰值_up
|
||
u32 TOF_down; //单程TOF_down均值(GP30数据格式)
|
||
u32 ratio_down; //Pulse_Width_Ratio_down(GP30数据格式)
|
||
u32 peak_down; //换能器峰值(GP30数据格式)//换能器峰峰值_down
|
||
u32 TOF_diff; //时间差(GP30数据格式)
|
||
To_Float up_tof_dif; //UP端的比例差值
|
||
To_Float down_tof_dif; //DOwn的比例差值
|
||
u32 ins_flow_cnt; //瞬时流量计算总次数,计算一次cnt加1次
|
||
float ins_flow_sum;//瞬时流量计算总和,计算一次sum加1次
|
||
float ins_flow_sum_temp;//瞬时流速累计临时值
|
||
float ins_flow_max;//瞬时流速最大值
|
||
float ins_flow_min;//瞬时流速最小值
|
||
|
||
}s;
|
||
u32 data[GP30_APP_MAX_DATA]; //当前数据
|
||
} GP30_SYS_Date;
|
||
|
||
|
||
typedef struct {
|
||
u16 communication_err;
|
||
u16 no_water;
|
||
u16 low_flow;
|
||
u16 out_temp;
|
||
u16 low_high_flow;
|
||
u16 reverse_flow;
|
||
u16 tof_overrun;
|
||
u16 low_amp;
|
||
u16 gp30_err;
|
||
u16 water_direction_reverse;//水流反向
|
||
} EVENT;
|
||
|
||
typedef struct {
|
||
u8 communication_err;
|
||
u8 no_water;
|
||
u8 low_flow;
|
||
u8 out_temp;
|
||
u8 low_high_flow;
|
||
u8 reverse_flow;
|
||
u8 tof_overrun;
|
||
u8 low_amp;
|
||
u8 gp30_err;
|
||
u8 water_direction;//水流反向
|
||
} EVENT_FLAG;
|
||
|
||
typedef union {
|
||
|
||
struct {
|
||
u8 time[6]; //年月日时
|
||
To_Float total_flow; //累计流量
|
||
u16 state; //状态字
|
||
}s;
|
||
u8 data[12];
|
||
} GP30_APP_EVENT_DATA;
|
||
|
||
typedef struct {
|
||
u8 diftof_overrun_num;
|
||
u8 tdc_overrun_num; //无水
|
||
u8 tof_overrun_num;
|
||
u8 type_err_num;
|
||
u8 GP30_sample_err_num;
|
||
} OVERRUN_NUM;
|
||
|
||
#define GP30_APP_EVENT_SUM_NORMAL 20
|
||
#define GP30_APP_EVENT_SUM_TEST 160
|
||
|
||
#define GP30_communication_err 1
|
||
#define GP30_no_water 2
|
||
#define GP30_low_flow 4
|
||
#define GP30_out_temp 5
|
||
#define GP30_low_high_flow 6
|
||
#define GP30_reverse_flow 7
|
||
#define GP30_TOF_overrun 8
|
||
#define GP30_low_amp 9
|
||
#define GP30_err 3
|
||
#define GP30_water_direction 10
|
||
|
||
|
||
#define GP30_communication_err_DE 11
|
||
#define GP30_no_water_DE 22
|
||
#define GP30_low_flow_DE 44
|
||
#define GP30_out_temp_DE 55
|
||
#define GP30_low_high_flow_DE 66
|
||
#define GP30_reverse_flow_DE 77
|
||
#define GP30_TOF_overrun_DE 88
|
||
#define GP30_low_amp_DE 99
|
||
#define GP30_err_DE 33
|
||
#define GP30_water_direction_DE 23
|
||
|
||
|
||
#define GP30_clear_all 0xFF
|
||
|
||
//2017-12-4 13:25:56屏
|
||
//#define GP30_APP_LOWPOW_ERR_ADDR 0x800
|
||
//#define GP30_APP_TRANS_ERR_ADDR 0x900
|
||
//#define GP30_APP_NO_WATER_ADDR 0xA00
|
||
//#define GP30_APP_LOW_FLOW_ADDR 0xB00
|
||
//#define GP30_APP_OUT_TEMP_ADDR 0xC00
|
||
|
||
#define GP30_APP_LOWPOW_ERR_ADDR 0x800 //2015-6-4 改为连续存储事件
|
||
#define GP30_APP_TRANS_ERR_ADDR (GP30_APP_LOWPOW_ERR_ADDR + sizeof(GP30_APP_EVENT_DATA))
|
||
#define GP30_APP_NO_WATER_ADDR (GP30_APP_TRANS_ERR_ADDR + sizeof(GP30_APP_EVENT_DATA))
|
||
#define GP30_APP_LOW_FLOW_ADDR (GP30_APP_NO_WATER_ADDR + sizeof(GP30_APP_EVENT_DATA))
|
||
#define GP30_APP_OUT_TEMP_ADDR (GP30_APP_LOW_FLOW_ADDR + sizeof(GP30_APP_EVENT_DATA))
|
||
|
||
|
||
//事件发生时间年月日时分秒6 +事件发生时累积流量4 + 状态字2 = 12字节。每个事件最近发生的一条记录。
|
||
//换能器故障:0x900 - 0x9FF(GP30应用处理机):1小时发生的次数超过90%作为有效记录
|
||
//管段无水:0xA00 - 0xAFF(GP30应用处理机):1小时发生的次数超过90%作为有效记录
|
||
//超低流量报警:0xB00 - 0xBFF(GP30应用处理机):1小时发生的次数超过90%作为有效记录
|
||
//水温超出温度等级范围:0xC00 - 0xCFF(GP30应用处理机):1小时发生的次数超过90%作为有效记录
|
||
|
||
|
||
//GP30数据清零处理机
|
||
//主要工作: 处理上位机命令,将当前数据清零
|
||
|
||
#define GP30_APP_CLEAR_DATA_S0 0
|
||
#define GP30_APP_CLEAR_DATA_S1 1
|
||
|
||
#define GP30_APP_DATA_ADDR EEP_GP30_BASE_ADDR //数据备份的EE地址 0x100
|
||
#define GP30_APP_DATA_TOTAL_FLOW_ADDR (GP30_APP_DATA_ADDR +6) //2017 02,更改复位不丢数
|
||
#define GP30_APP_DATA_TOTAL_FLOW_ADDR_REVERSE (GP30_APP_DATA_ADDR +10) //2017 02,更改复位不丢数
|
||
#define GP30_APP_DATA_UP_TOF_DIF_ADDR (GP30_APP_DATA_ADDR +14) //2021-03-22//
|
||
#define GP30_APP_DATA_DOWN_TOF_DIF_ADDR (GP30_APP_DATA_ADDR +18) //2021-03-22
|
||
|
||
#define DIFTOF_CALIBRATION_FLAG_ADDR 0X150 //2021,04,增加换能器零流量校准标志,如果是0xA1B2C3D4E5F6A7B8表示校准过
|
||
#define DIFTOF_CALIBRATION_VALUE_ADDR (DIFTOF_CALIBRATION_FLAG_ADDR +8) //2021,04,增加换能器零流量校准值4字节
|
||
typedef union {
|
||
|
||
struct {
|
||
u8 flag[2]; //第一次上电标志
|
||
u8 time[4]; //年月日时
|
||
To_Float total_flow; //正向累计流量
|
||
To_Float total_flow_reverse; //反向累计流量
|
||
To_Float up_tof_dif; //UP端的比例差值
|
||
To_Float down_tof_dif; //DOwn的比例差值
|
||
}s;
|
||
u8 data[22]; //当前数据
|
||
} GP30_APP_SAVE_DATA;
|
||
typedef union {
|
||
|
||
struct {
|
||
U8TOU64 diftof_calibration_flag; //时间差是否校准过的标志
|
||
U8TOU32 diftof_calibration_value; //时间差校准值
|
||
}s;
|
||
u8 data[12];
|
||
} GP30_DIFTOF_CAL_DATA;
|
||
|
||
//当前数据备份处理机
|
||
//主要工作: 完成GP30当前累计数据备份存储
|
||
|
||
/*************************宏定义****************************/
|
||
#define GP30_APP_SAVE_S0 0
|
||
#define GP30_APP_SAVE_S1 1
|
||
#define GP30_APP_SAVE_S2 2
|
||
#define GP30_APP_SAVE_S3 3
|
||
#define GP30_APP_SAVE_S4 4
|
||
#define GP30_APP_SAVE_S5 5
|
||
#define GP30_APP_SAVE_S6 6
|
||
|
||
#define SAMPLE_INTERVAL_1h 3600 //数据备份周期
|
||
#define FLOW_DETECT_5S 3 //流量检测
|
||
|
||
|
||
//GP22应用处理机上电初始化
|
||
//主要工作: GP22应用处理机上电初始化, EE数据读取
|
||
//EEPROM区域: 0x80-0xB7
|
||
//第一次上电标志: 0x77 0x88
|
||
|
||
#define GP30_APP_INIT_S0 0
|
||
#define GP30_APP_INIT_S1 1
|
||
#define GP30_APP_INIT_S2 2
|
||
#define GP30_APP_INIT_S3 3
|
||
#define GP30_APP_INIT_S4 4
|
||
#define GP30_APP_INIT_S5 5
|
||
#define GP30_APP_INIT_S6 6
|
||
#define GP30_APP_INIT_S7 7
|
||
#define GP30_APP_INIT_S8 8
|
||
|
||
//GP22采样间隔处理机
|
||
#define GP22_APP_SAMPLE_S0 0
|
||
#define GP22_APP_SAMPLE_S1 1
|
||
#define GP22_APP_SAMPLE_S2 2
|
||
#define GP22_APP_SAMPLE_S3 3
|
||
#define GP22_APP_SAMPLE_S4 4
|
||
|
||
//Send_Data主动上报处理机
|
||
#define SEND_DATA_S0 0
|
||
#define SEND_DATA_S1 1
|
||
#define SEND_DATA_S2 2
|
||
#define SEND_DATA_S3 3
|
||
|
||
//流量计算间隔切换处理机
|
||
#define GP30_CONTROL_S0 0
|
||
#define GP30_CONTROL_S1 1
|
||
|
||
#define GP30_APP_FLOW_DETECT_S0 0//流速检测状态机 2022-05-30
|
||
#define GP30_APP_FLOW_DETECT_S1 1
|
||
#define GP30_APP_FLOW_DETECT_S2 2
|
||
#define GP30_APP_FLOW_DETECT_S3 3
|
||
|
||
|
||
//位置20211213
|
||
//反向计量机制状态机
|
||
#define MSASURE_STATE_OPEN 0
|
||
#define MSASURE_STATE_SWITCH 1
|
||
#define MSASURE_STATE_CLOSE 2
|
||
//#define GP22_APP_SAMPLE_SIZE 6 //GP22每采样GP22_APP_SAMPLE_SIZE 次进行一次温度采集,计算一次。
|
||
//#define GP22_APP_QUEUE_SIZE 12 //GP22流量滤波队列中元素个数
|
||
|
||
|
||
//#define GP22_APP_DIFTOF_SIZE 10 //GP22测量时间差元素个数
|
||
//#define GP22_APP_DIFTOF_SIZE_2 60 //第二个数组元素个数
|
||
|
||
#define GP22_APP_QUEUE_SIZE 16 //GP22流量滤波队列中元素个数
|
||
#define GP22_APP_TEMP_INVERSE_DATA_SIZE 3 //GP22FHL模式下UP和DOWN单程时间队列中元素个数
|
||
#define GP22_APP_TEMP_INVERSE_DATA_SIZE_FIVE 5 //GP22FHL模式下UP和DOWN单程时间队列中元素个数
|
||
|
||
#define GP30_APP_FILTER_SIZE (GP22_APP_QUEUE_SIZE/4) //检定状态下计算累计量滤波值
|
||
#define GP30_APP_FILTER_MAX_MIN_SIZE (GP30_APP_FILTER_SIZE/2) //GP30检定状态下计算累计量滤波值,最大最小个数
|
||
|
||
#define GP22_APP_DIFTOF_SIZE GP22_APP_QUEUE_SIZE //GP22测量时间差元素个数
|
||
|
||
|
||
#if EN_SMALL_FILITER
|
||
#define GP22_APP_DIFTOF_SIZE_2 40 //第二个数组元素个数 16*40 = 640
|
||
#elif EN_LARGE_FILITER
|
||
#define GP22_APP_DIFTOF_SIZE_2 20 //第二个数组元素个数
|
||
#define GP22_APP_DIFTOF_SIZE_3 30 //第三个数组元素个数 16*30 *20 = 9600 //10分钟超长滤波
|
||
#define GP22_APP_DIFTOF_SUM 600 //第三个滤波函数总数 30*20 //10分钟超长滤波
|
||
#endif
|
||
|
||
#define SAMPLE_FREQUENCY_NON_VERIFICATION 8 //GP30非检定状态采样频率
|
||
#define TOTAL_FLOW_COEFFICIENT_NON_VERIFICATION (GP22_APP_QUEUE_SIZE / SAMPLE_FREQUENCY_NON_VERIFICATION) //非检定状态计算累计流量 用到的系数
|
||
|
||
#define SAMPLE_FREQUENCY_VERIFICATION 16 //GP30检定状态采样频率
|
||
#define TOTAL_FLOW_COEFFICIENT_VERIFICATION (GP22_APP_QUEUE_SIZE / SAMPLE_FREQUENCY_VERIFICATION) //检定状态计算累计流量 用到的系数
|
||
#define GP22_APP_EXCEED_START_FLOW_SUM 3/* 修改原因:大流出现低振幅情况,写2个存在风险;GP22_APP_QUEUE_SIZE/8 //GP30_APP_FILTER_SIZE 低于始动流量的时间差次数,用于静水处理算法 2019-5-7*/
|
||
#define GP22_APP_EXCEED_START_FLOW_SUM_VERIFICATION (GP22_APP_QUEUE_SIZE/2) //用于检定状态下GP30_APP_FILTER_SIZE //低于始动流量的时间差次数,用于静水处理算法 2019-5-7
|
||
#define GP22_APP_MAX_AM_BUFFER (GP22_APP_QUEUE_SIZE/2) //用于检定状态下GP30_APP_FILTER_SIZE //低于始动流量的时间差次数,用于静水处理算法 2019-5-7
|
||
#define GP22_MAX_BUFFERLENTH 16 //GP30最大bufferlenth
|
||
|
||
#define INS_FLOW_CAL_CNT_MAX 1800//30分钟瞬时流量循环一次
|
||
//GP22数据存储防护处理机
|
||
#define GP22_APP_MONITOR_S(X) X
|
||
/*处理机设计
|
||
*
|
||
while (!g_gp22_init_flag)
|
||
{
|
||
GP22应用处理机上电初始化 处理机
|
||
EE处理机
|
||
}*/
|
||
|
||
//接口使用
|
||
#define SLEEP_TRUE 1
|
||
#define SLEEP_FALSE 0
|
||
|
||
//接口使用
|
||
#define GP30_APP_IDLE 1
|
||
#define GP30_APP_BUSY 0
|
||
#define GP30_APP_TEST 2
|
||
|
||
|
||
//常数
|
||
|
||
#define GP22_APP_3P6 0x00039999 //3.6
|
||
|
||
|
||
#define GP22_APP_TOTAL_FLOW_PARA_NOR 0x0000071C //100/3600 非检定 放大100倍
|
||
#define GP22_APP_TOTAL_FLOW_PARA_JIAN 0x0000071C //100000/3600/1000 检定 放大100000倍
|
||
|
||
//#define GP22_APP_TOTAL_FLOW_PARA_NOR 0x0000071C //100/3600 非检定 放大100倍
|
||
//#define GP22_APP_TOTAL_FLOW_PARA_JIAN 0x0000071C //100000/3600 检定 放大100000倍 并把检定状态 ms转秒 /1000 同上了
|
||
#define GP22_APP_1_3600 0x0000471D // 1000 /3600
|
||
|
||
#define GP22_APP_TOTAL_HEAT_PARA_NOR 0x0000071C //100/3600 非检定 放大100倍
|
||
#define GP22_APP_TOTAL_HEAT_PARA_JIAN 0x00000012 //1000/3600 检定 放大1000倍 /1000 转化ms
|
||
|
||
extern GP30_DIFTOF_CAL_DATA g_diftof_cal_data;//校准的时间差和标志
|
||
/*---------------------------------- Function Declare -----------------------------------*/
|
||
void Gp30MachineApp(void);
|
||
void Gp30InitApp(void);
|
||
u32 Gp30CheckDataApp(u8 data_para);
|
||
u32 Gp30CheckTestDataApp(u8 data_para);
|
||
u8 Gp30IfSleepApp(void);
|
||
u8 Gp30InitDataApp(u32 total_flow, u32 negative_total_flow);
|
||
u8 Gp30CurInitDataApp(u32 cur_total_flow);
|
||
//void Gp30TestFlowInit(void);
|
||
void gp22CheckErrEventApp (u8 err_event);
|
||
u8 Gp30CheckBootloaderMsgApp(void);
|
||
u32 Gp30GetTestRamFlag(void);
|
||
void Meter_ResetCountAdd(u8 reason);
|
||
u16 Meter_GetResetCount(void);
|
||
u16 Gp30CheckErrDataApp(void);
|
||
void Gp30StartMeasureApp(u8 flag);
|
||
//u8 Gp30CheckSetWindowApp(void);
|
||
//void Gp30ClearSetWindowApp(void);
|
||
u32 FilterJunZhi(u32 *data, u8 data_len);
|
||
|
||
u8 Check_Start_STOP_Filter_Flag(void);//获取温度是否进行滤波处理标志
|
||
void Clear_Start_STOP_Filter_Flag(void);//清零温度是否进行滤波处理标志
|
||
float Check_Temperature_Parameter(void);//获取滤波温度
|
||
|
||
u32 FloatToGp30Data(float data);
|
||
float Gp30DataToFloat(u32 data);
|
||
u32 bcdToHex32(u32 value);
|
||
void Gp22AppSetGp22Err(void);
|
||
void FlowIntvalTimeLPTimer(void);
|
||
void RecordCalculativeIntvalTimeLPTimer(void);
|
||
void NormalResetCompensation(void);
|
||
void Gp30DiftofCalibration(void);
|
||
u8 CheckAutoCalibrationMsg(void);
|
||
u8 CheckTransducerErrorMsg(void);
|
||
u8 CheckDiftofCalibrationFlag(void);
|
||
|
||
float ModifyForVolumeTestbench(float temp_ins_flow_float);
|
||
float modify_flow( float ins_flow_temp_float);//根据流量计算当前流量
|
||
u8 GP30_Check_Data_UpdateMsg(void);
|
||
void GP30_Set_Data_UpdateMsg(void);
|
||
void GP30_Clear_Data_UpdateMsg(void);
|
||
|
||
void DiftofForTestbench(float temp_ins_flow_float);
|
||
//void VerificationResetCompensation(void);
|
||
|
||
//extern u16 g_test_start_sum ;
|
||
//extern u16 g_test_stop_sum ;
|
||
|
||
#endif /* __UWater_GP30_APP_H */
|
||
|
||
|
||
|