SSPC-Tester/Driver/UDP5080-100/UNI-T SDK/examples/UCI/VC/SimpleUCI/unit.h

117 lines
2.7 KiB
C
Raw Normal View History

/*!
* \created : 2016/10/10
* \author : M.Yang
* \purpose : <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD>ı<EFBFBD>׼<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* \remarks : <EFBFBD><EFBFBD><EFBFBD>е<EFBFBD>λ<EFBFBD>Ķ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ա<EFBFBD>׼<EFBFBD><EFBFBD>λΪ0<EFBFBD><EFBFBD>С<EFBFBD>ڱ<EFBFBD>׼<EFBFBD><EFBFBD>λ<EFBFBD><EFBFBD>Ϊ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڱ<EFBFBD>׼<EFBFBD><EFBFBD>λʱΪ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ĺô<EFBFBD><EFBFBD>ǣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ա<EFBFBD>֤<EFBFBD>Ա<EFBFBD>׼<EFBFBD><EFBFBD>λΪ<EFBFBD><EFBFBD>׼<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>չ<EFBFBD><EFBFBD>
*/
#ifndef Unit_h__
#define Unit_h__
#ifdef __cplusplus
namespace unit {
extern "C"{
#endif
#ifdef __cplusplus
typedef enum _EScale : char {
#else
typedef enum _EScale {
#endif // DEBUG
SCALE_p = -4,
SCALE_n,
SCALE_u,
SCALE_m,
SCALE_STD = 0,
SCALE_K,
SCALE_M,
SCALE_G,
SCALE_T,
}EScale;
#ifdef __cplusplus
typedef enum _EType : char{
#else
typedef enum _EType {
#endif // __cplusplus
TYPE_INVALID = -1,
TYPE_FREQ,
TYPE_TIME,
TYPE_AREA, //<2F><><EFBFBD><EFBFBD>(Vs)
TYPE_SAMPLERATE,//<2F><><EFBFBD><EFBFBD><EFBFBD>ʣ<EFBFBD>Sa/s<><73>
TYPE_POINT, //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Sa<53><61>
TYPE_VPP, //<2F><><EFBFBD><EFBFBD>ֵ
TYPE_VOLTAGE,//<2F><>ѹ
TYPE_CURRENT,//<2F><><EFBFBD><EFBFBD>
TYPE_DB, //DB
TYPE_VV, //
TYPE_PERCENT,//<2F>ٷֱ<D9B7>
TYPE_DEGREE, //<2F><><EFBFBD><EFBFBD>
TYPE_WATT, //<2F><><EFBFBD>أ<EFBFBD><D8A3><EFBFBD><EFBFBD><EFBFBD>
TYPE_UNKNOWN,// δ֪<CEB4><D6AA>λ
}EType;
typedef struct _CodeName {
char Code;
char Name[5];
}CodeName;
static const CodeName ScaleTabel[] = {
{ SCALE_p, "p" },
{ SCALE_n, "n" },
{ SCALE_u, "u" },
{ SCALE_m, "m" },
{ SCALE_STD,"" },
{ SCALE_K, "K" },
{ SCALE_M, "M" },
{ SCALE_G, "G" },
{ SCALE_T, "T" }
};
static const CodeName TypeTabel[] = {
{ TYPE_FREQ, "Hz" },
{ TYPE_TIME, "s" },
{ TYPE_AREA, "Vs" },
{ TYPE_SAMPLERATE, "Sa/s" },
{ TYPE_POINT, "Sa" },
{ TYPE_VPP, "Vpp" },
{ TYPE_VOLTAGE, "V" },
{ TYPE_CURRENT, "A" },
{ TYPE_DB, "dB" },
{ TYPE_VV, "VV" },
{ TYPE_PERCENT, "%" },
{ TYPE_DEGREE, "<EFBFBD><EFBFBD>" },
{ TYPE_WATT, "W" },
{ TYPE_UNKNOWN, "U" },
};
const char* _UCIAPI uci_UnitFindTypeName(char _code);
const char* _UCIAPI uci_UnitFindScaleName(char _code);
//@brief : <20><><EFBFBD><EFBFBD>ǰ<EFBFBD><C7B0>λ<EFBFBD><CEBB><EFBFBD><EFBFBD>ֵת<D6B5><D7AA><EFBFBD><EFBFBD>ָ<EFBFBD><D6B8><EFBFBD>ĵ<EFBFBD>λ<EFBFBD><CEBB>
//@param _cur_value : <20><>ǰ<EFBFBD><C7B0>ֵ
//@param _cur_unit : <20><>ǰ<EFBFBD><C7B0>λ<EFBFBD><CEBB><EFBFBD><EFBFBD>
//@param _des_unit : Ҫת<D2AA><D7AA><EFBFBD><EFBFBD><EFBFBD>ĵ<EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD>
//@param _scale : <20><><EFBFBD>ƣ<EFBFBD>һ<EFBFBD><D2BB>Ϊ1000<30><30><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƶ<EFBFBD>ʵĽ<CAB5><C4BD><EFBFBD><EFBFBD><EFBFBD>1000
//@return : <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>2.3KHz ת<><D7AA>ΪHz<48><7A><EFBFBD><EFBFBD>2300Hz
//@remarks : ע<>ⵥλ<E2B5A5><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>EScale<6C><65><EFBFBD><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
double _UCIAPI uci_UnitConvertTo(double _cur_value, int _cur_unit, int _des_unit, double _scale);
typedef struct _UVale {
double Value;
long long Unit;
}UVale;
//@brief : <20><><EFBFBD><EFBFBD>ǰ<EFBFBD><C7B0>λ<EFBFBD><CEBB><EFBFBD><EFBFBD>ֵ<EFBFBD>Զ<EFBFBD>ת<EFBFBD><D7AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʵĵ<CAB5>λ<EFBFBD><CEBB><EFBFBD>ͣ<EFBFBD><CDA3><EFBFBD>ʹ<EFBFBD><CAB9>ֵС<D6B5>ڽ<EFBFBD><DABD>ơ<EFBFBD><C6A1><EFBFBD><EFBFBD><EFBFBD>2300Hz<48><7A>ת<EFBFBD><D7AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>2.3KHzs
//@param _value : <20><>ǰ<EFBFBD><C7B0>ֵ
//@param _unit : <20><>ǰ<EFBFBD><C7B0>λ<EFBFBD><CEBB><EFBFBD><EFBFBD>
//@param _scale : <20><><EFBFBD>ƣ<EFBFBD>һ<EFBFBD><D2BB>Ϊ1000<30><30><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƶ<EFBFBD>ʵĽ<CAB5><C4BD><EFBFBD><EFBFBD><EFBFBD>1000
//@remarks : ע<>ⵥλ<E2B5A5><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>EScale<6C><65><EFBFBD><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
UVale _UCIAPI uci_UnitRefresh(double _value, char _unit, double _scale);
#ifdef __cplusplus
}
}
#endif
#endif // Unit_h__