SSPC-Tester/Driver/UDP5080-100/UNI-T SDK/examples/UCI/CVI/UCIDEMO/include/UPO.h

223 lines
3.6 KiB
C
Raw Normal View History

/*!
* \created : 2016/12/27
* \author : M.Yang
* \purpose : <EFBFBD>ʹ<EFBFBD><EFBFBD>UCI<EFBFBD>ӿڵģ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>DSO<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ض<EFBFBD><EFBFBD><EFBFBD>
*/
#ifndef DSO_UPO_h__
#define DSO_UPO_h__
#ifdef __cplusplus
namespace upo2k {
#endif // __cplusplus
//////////////////////////////////////////////////////////////////////////
// UPO<50><4F><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD>
// 16bit<69><74><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>8λΪ<CEBB><CEAA>λ<EFBFBD><CEBB><EFBFBD>ͣ<EFBFBD><CDA3><EFBFBD>8λΪ<CEBB><CEAA>λ<EFBFBD><CEBB><EFBFBD><EFBFBD>!
// <20><>ȡ<EFBFBD><C8A1>ʽ<EFBFBD><CABD> <20><><EFBFBD><EFBFBD> short unit<69><74>
// char unit_code = unit & 0xff;
// if((unit & UT_Time) == UT_Time) unit_code is ETime
// else if((unit & UT_Freq) == UT_Freq) unit_code is EFreq
//////////////////////////////////////////////////////////////////////////
//@brief : <20><>λ<EFBFBD><CEBB><EFBFBD><EFBFBD>
//@remarks : <20><>8λΪ<CEBB><CEAA>λ<EFBFBD><CEBB><EFBFBD>ͣ<EFBFBD><CDA3><EFBFBD>8λΪ<CEBB><CEAA>λ<EFBFBD><CEBB><EFBFBD><EFBFBD>!
#ifdef __cplusplus
typedef enum _UnitType : unsigned short {
#else
typedef enum _UnitType {
#endif // __cplusplus
UT_Voltage = (0x0000),
UT_Time = (0x0100),
UT_Freq = (0x0200),
UT_Percent = (0x0300),
UT_Degree = (0x0400),
UT_DB = (0x0500),
UT_SamplePoint = (0x0600),
//@brief : <20><><EFBFBD><EFBFBD>
UT_Current = (0x0700),
//@brief : <20><><EFBFBD><EFBFBD>
UT_Watt = (0x0800),
//@brief : δ֪<CEB4><D6AA>λ
UT_Unknown = (0x0900),
UT_Invalid = (0x8000),
}UnitType;
enum EFreq {
Hz = 0,
KHz,
MHz,
GHz,
THz,
};
enum ETime {
s = 0,
ms,
<EFBFBD><EFBFBD>s,
ns,
ps,
};
enum EVoltage {
<EFBFBD><EFBFBD>V = 0,
mV,
V,
KV
};
enum ECurrent {
<EFBFBD><EFBFBD>A = 0,
mA,
A,
KA
};
enum EWatt {
<EFBFBD><EFBFBD>W = 0,
mW,
W,
KW
};
enum EUnknown {
<EFBFBD><EFBFBD>U = 0,
mU,
U,
KU
};
enum EDB {
mdB = 0,
dB,
kdB
};
enum EPoint {
Sa = 0,
KSa,
MSa,
GSa,
};
enum EPercent {
Percent = 0
};
enum EDegree {
Degree = 0,
};
static inline char GetUnitType(short _v) { return (char)(_v >> 8); }
static inline char GetUnitCode(short _v) { return _v & 0xff; }
//@brief : <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ
//@remark: ͨ<><CDA8>ָ<EFBFBD><EFBFBD><EEA3BA>Lock?<3F><><EFBFBD><EFBFBD>ȡ<EFBFBD><C8A1>64bit<69><74><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD>ǡ<EFBFBD>
typedef enum _KeyFlagsPos {
IKEY_F1,
IKEY_F2,
IKEY_F3,
IKEY_F4,
IKEY_F5,
IKEY_CH1,
IKEY_CH2,
IKEY_CH3,
IKEY_CH4,
IKEY_MATH,
IKEY_REF,
IKEY_HORIZON,
IKEY_TRIGGER,
IKEY_FORCE,
IKEY_HELP,
IKEY_MEASURE,
IKEY_CURSOR,
IKEY_ACQUIRE,
IKEY_DISPLAY,
IKEY_STORAGE,
IKEY_UTILITY,
IKEY_DECODE,
IKEY_DEFAULT,
IKEY_AUTOSET,
IKEY_RUNSTOP,
IKEY_SINGLE,
IKEY_CLEAR,
IKEY_PRINTSCREEN,
IKEY_MENU,
IKEY_OFFSET_LEFT,
IKEY_OFFSET_RIGHT,
IKEY_OFFSET_OK,
IKEY_PRETRIG_LEFT,
IKEY_PRETRIG_RIGHT,
IKEY_PRETRIG_OK,
IKEY_TRIGLEVEL_LEFT,
IKEY_TRIGLEVEL_RIGHT,
IKEY_TRIGLEVEL_OK,
IKEY_VOLTS_LEFT,
IKEY_VOLTS_RIGHT,
IKEY_VOLTS_OK,
IKEY_TIMEBASE_LEFT,
IKEY_TIMEBASE_RIGHT,
IKEY_TIMEBASE_OK,
IKEY_SELECT_LEFT,
IKEY_SELECT_RIGHT,
IKEY_SELECT,
}KeyFlagsPos;
typedef struct _CellBaseValue {
float Value;
short Unit;
short IsLimit; // == 1,yes; =0, no!
}CellBaseValue;
typedef struct _time {
unsigned short Year;
unsigned short Month;
unsigned short Day;
unsigned short Hour;
unsigned short Minute;
unsigned short Second;
}Time;
#include <PshPack1.h> //<2F><>1<EFBFBD>ֽڶ<D6BD><DAB6><EFBFBD>
//@brief : <20><><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//@remark:
typedef struct _measure_param {
float value; //<2F><>ЧʱֵΪ FLT_MAX
//@brief : <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ
//@remark: <20><>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>UnitType
short unit; //<2F><>ЧʱֵΪ UT_Invalid = (0x8000)
}UValue;
//@brief : <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>LED״̬
//@remark: 1 - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 0 <20><> δ<><CEB4><EFBFBD><EFBFBD> <20><>ָ<EFBFBD><EFBFBD><EEA3BA>LED?<3F><> <20><>ȡ<EFBFBD><C8A1>
typedef struct _KeyLedStat {
char CH1, CH2, CH3, CH4, MATH, REF, RUN_STOP, Single;
}KeyLedStat;
//@brief : <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݰ<EFBFBD>
typedef struct _CursorMeasurePack {
UValue Ax;
UValue Bx;
UValue Bx_Ax;
UValue Hz_Bx_Ax;
UValue Ay;
UValue By;
UValue By_Ay;
char Reserver[8];
}CursorMeasurePack;
#include <poppack.h>
#ifdef __cplusplus
}
#endif // __cplusplus
#endif // DSO_UPO_h__