Files
CHJ/user/Compute/UnitConverter.h

170 lines
6.3 KiB
C
Raw Normal View History

2026-03-20 21:16:58 +08:00
/********************************************************************************************************
** HY3106<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӳ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͷ<EFBFBD>ļ<EFBFBD>
**
** Copyright (c) Siargo, Ltd. 2011
** All Rights Reserved.
**
**-------------------------------------------------------------------------------------------------------
********************************************************************************************************/
#ifndef __UnitConverter_h__
#define __UnitConverter_h__
//==============================================================================
// Update V2006
//******************************************************************************
#if(FR_STD_UNIT==NCMH)
//******************************************************************************
// for acc
#define ACC_STD_UINT NM3
//mL
#define ONE_STD_ACC_TO_ML 1000000.0
#define ONE_ML_TO_STD_ACC (1/ONE_STD_ACC_TO_ML)
//SL
#define ONE_STD_ACC_TO_SL 1000.0
#define ONE_SL_TO_STD_ACC (1/ONE_STD_ACC_TO_SL)
//NM3
#define ONE_STD_ACC_TO_NCM 1.0
#define ONE_NCM_TO_STD_ACC 1.0
//SCF
#define ONE_STD_ACC_TO_SCF 35.314724827664
#define ONE_SCF_TO_STD_ACC (1.0/ONE_STD_ACC_TO_SCF)
//KG
#define ONE_STD_ACC_TO_KG 1.205
#define ONE_KG_TO_STD_ACC (1.0/ONE_STD_ACC_TO_KG)
//-----------------------------------------------------------------------------
// flowRate
// SCCM
#define ONE_STD_FR_TO_SCCM (ONE_STD_ACC_TO_ML/60.0)
#define ONE_SCCM_TO_STD_FR (1.0/ONE_STD_FR_TO_SCCM)
// SLPM
#define ONE_STD_FR_TO_SLPM (ONE_STD_ACC_TO_SL/60.0)
#define ONE_SLPM_TO_STD_FR (1.0/ONE_STD_FR_TO_SLPM)
// NCMH
#define ONE_STD_FR_TO_NCMH 1.0
#define ONE_NCMH_TO_STD_FR 1.0
// SCFH
#define ONE_STD_FR_TO_SCFH ONE_STD_ACC_TO_SCF
#define ONE_SCFH_TO_STD_FR (1.0/ONE_STD_FR_TO_SCFH)
// SCFM
#define ONE_STD_FR_TO_SCFM (ONE_STD_FR_TO_SCFH/60.0) // 35.314724827664 /60 for(SCFM)
#define ONE_SCFM_TO_STD_FR (1.0/ONE_STD_FR_TO_SCFM)
// KGH
#define ONE_STD_FR_TO_KGH ONE_STD_ACC_TO_KG
#define ONE_KGH_TO_STD_FR ONE_KG_TO_STD_ACC
//******************************************************************************
#elif(FR_STD_UNIT==SLPM)
//******************************************************************************
// for acc
#define ACC_STD_UINT NM3
//mL
#define ONE_STD_ACC_TO_ML 1000000.0
#define ONE_ML_TO_STD_ACC (1.0/ONE_STD_ACC_TO_ML)
//SL
#define ONE_STD_ACC_TO_SL 1000.0
#define ONE_SL_TO_STD_ACC (1.0/ONE_STD_ACC_TO_SL)
//NM3
#define ONE_STD_ACC_TO_NCM 1.0
#define ONE_NCM_TO_STD_ACC 1.0
//SCF
#define ONE_STD_ACC_TO_SCF 35.314724827664
#define ONE_SCF_TO_STD_ACC (1.0/ONE_STD_ACC_TO_SCF)
//KG
#define ONE_STD_ACC_TO_KG 1.205
#define ONE_KG_TO_STD_ACC (1/ONE_STD_ACC_TO_KG)
//-----------------------------------------------------------------------------
// flowRate
// SCCM
#define ONE_STD_FR_TO_SCCM (1000.0/60.0)
#define ONE_SCCM_TO_STD_FR (1.0/ONE_STD_FR_TO_SCCM)
// SLPM
#define ONE_STD_FR_TO_SLPM 1.0
#define ONE_SLPM_TO_STD_FR 1.0
// NCMH
#define ONE_STD_FR_TO_NCMH (0.001*60)
#define ONE_NCMH_TO_STD_FR (1.0/ONE_STD_FR_TO_NCMH)
// SCFH
#define ONE_STD_FR_TO_SCFH (0.035314724827664*60)
#define ONE_SCFH_TO_STD_FR (1/ONE_STD_FR_TO_SCFH)
// SCFM
#define ONE_STD_FR_TO_SCFM 0.035314724827664
#define ONE_SCFM_TO_STD_FR (1.0/ONE_STD_FR_TO_SCFM)
// KGH
#define ONE_STD_FR_TO_KGH (0.001205*60)
#define ONE_KGH_TO_STD_FR (1.0/ONE_STD_FR_TO_KGH)
//******************************************************************************
#elif(FR_STD_UNIT==SCCM)
//******************************************************************************
// for acc
#define ACC_STD_UINT SL
//mL
#define ONE_STD_ACC_TO_ML 1000.0
#define ONE_ML_TO_STD_ACC (1.0/ONE_STD_ACC_TO_ML)
//SL
#define ONE_STD_ACC_TO_SL 1.0
#define ONE_SL_TO_STD_ACC 1.0
//NM3
#define ONE_STD_ACC_TO_NCM 0.001
#define ONE_NCM_TO_STD_ACC 1000.0
//SCF
#define ONE_STD_ACC_TO_SCF 0.035314724827664
#define ONE_SCF_TO_STD_ACC (1.0/ONE_STD_ACC_TO_SCF)
//KG
#define ONE_STD_ACC_TO_KG 0.001205
#define ONE_KG_TO_STD_ACC (1.0/ONE_STD_ACC_TO_KG)
//-----------------------------------------------------------------------------
// flowRate
// SCCM
#define ONE_STD_FR_TO_SCCM 1.0
#define ONE_SCCM_TO_STD_FR 1.0
// SLPM
#define ONE_STD_FR_TO_SLPM 0.001
#define ONE_SLPM_TO_STD_FR (1.0/ONE_STD_FR_TO_SLPM)
// NCMH
#define ONE_STD_FR_TO_NCMH (0.000001*60)
#define ONE_NCMH_TO_STD_FR (1.0/ONE_STD_FR_TO_NCMH)
// SCFH
#define ONE_STD_FR_TO_SCFH (0.000035314724827664*60)
#define ONE_SCFH_TO_STD_FR (1.0/ONE_STD_FR_TO_SCFH)
// SCFM
#define ONE_STD_FR_TO_SCFM 0.000035314724827664
#define ONE_SCFM_TO_STD_FR (1.0/ONE_STD_FR_TO_SCFM)
// KGH
#define ONE_STD_FR_TO_KGH (0.000001205*60)
#define ONE_KGH_TO_STD_FR (1.0/ONE_STD_FR_TO_KGH)
//---------------------------------------------------------------------------------
#endif
//------------------------------------------------------------------------------
#define MIN_TIME_BASE 125 // 125ms
//******************************************************************************
extern u16 flowDisUnit, flowComUnit, AccDisUnit, AccComputeUnit, AccComUnit;
//------------------------------------------------------------------------------
void CombinedUnitByFlowRate(void);
void CombinedUnitByACC(void);
u16 JudgeflowUserUnit(u16 judgeUnit);
u16 JudgeflowAccUnit(u16 judgeUnit);
u16 JudgeflowUnit(u16 judgeUnit);
u32 ConvertFlowrate(u32 flowRateBuf, u16 targetUnit, u16 originalUnit);
void ConvertAllFlowRateAndSave(u16 NewFlowUnit);
u16 ReturnStartUnitBit(u16 stdBit);
u16 ConvertTimeBaseAndUnit(u16 unit, u16 timeBaseIndex);
void UnitConverterInit(void);
//******************************************************************************
#endif
//******************************************************************************