#pragma once // 下列 ifdef 块是创建使从 DLL 导出更简单的 // 宏的标准方法。此 DLL 中的所有文件都是用命令行上定义的 US_MODEL_DEF_EXPORTS // 符号编译的。在使用此 DLL 的 // 任何其他项目上不应定义此符号。这样,源文件中包含此文件的任何其他项目都会将 // US_MODEL_DEF_API 函数视为是从 DLL 导入的,而此 DLL 则将用此宏定义的 // 符号视为是被导出的。 #ifdef US_MODEL_DEF_EXPORTS #define US_MODEL_DEF_API __declspec(dllexport) #define US_MODEL_DEF_C_API extern "C" __declspec(dllexport) #else #define US_MODEL_DEF_API __declspec(dllimport) #define US_MODEL_DEF_C_API extern "C" __declspec(dllimport) #endif #ifndef US_MODEL_DEF_EXPORTS #ifdef _WIN64 #ifdef _DEBUG #pragma comment(lib, "US_Model_DefX64D.lib") #else #pragma comment(lib, "US_Model_DefX64.lib") #endif #else #ifdef _DEBUG #pragma comment(lib, "US_Model_DefD.lib") #else #pragma comment(lib, "US_Model_Def.lib") #endif #endif #endif #include "DiosLock.h" #include "ResDataObject.h" #define US_BeanFormer ("BEANFORMER") //整数:32,64,128,256,512 #define BfChannels ("BFCHANNELS") #define TrChannels ("TRCHANNELS") #define MaxTrChannels ("MAXTRCHANNELS") //工作模式 #define US_SelectedTr ("SELECTEDTR") typedef enum _Us_TrSelectStatus { US_TR_SELECT_NULL, US_TR_SELECT_OK, US_TR_SELECT_MAX, }USTRSELECTSTATUS; #define US_TrList ("TRLIST") #define US_BfModeList ("BFMODELIST") #define US_CurBfMode ("CURBFMODELIST") #define BfMode ("BFMODE") typedef enum _Bf_Mode { BF_B_MODE, BF_B_THI_MODE, BF_COLOR_MODE, BF_CW_MODE, BF_PW_MODE, BF_M_MODE, BF_MODE_MAX }BF_MODE; //设备状态,WORK状态下选定工作模式的一种. #define BfStatus ("BFSTATUS") typedef enum _Bf_Status { BF_STATUS_SHUTDOWN, BF_STATUS_INIT,//start machine BF_STATUS_SLEEP,//fpga shutdown&&dios cpu sleep. BF_STATUS_WAKEUP,//fpga shutdown BF_STATUS_STANDBY,//all ready BF_STATUS_WORK, BF_STATUS_ERROR, BF_STATUS_MAX }BF_STATUS; //Work状态下的工作状态 #define BfReadyStatus ("BFREADYSTATUS") typedef enum _Bf_WorkStatus { BF_WORKSTATUS_PREP, BF_WORKSTATUS_READY, BF_WORKSTATUS_MAX, }BFWORKSTATUS; //US 手闸状态:On,Off #define Us_Xmit ("USXMIT") typedef enum _Us_XmitStatus { US_STOPXMIT, US_STARTXMIT, US_XMIT_MAX, }USXMITSTATUS; //US 冻结状态:On,Off #define Us_Freeze ("USFREEZE") typedef enum _Us_FreezeStatus { US_UNFREEZE, US_FREEZE, US_FREEZE_MAX, }USFREEZESTATUS; #define US_TrName ("TRNAME") #define US_TrConnectStatus ("TRCONNECTSTATUS") #define US_TrExamType ("TREXAMTYPE") #define US_TrType ("TRTYPE") typedef enum _Tr_Type { TR_TYPE_LINNEAR, TR_TYPE_CURVE, TR_TYPE_PHASE, TR_TYPE_MAX, }TRTYPE; //发射焦点深度 #define US_FrameRate ("FRAMERATE") //正整数 > 0 #define US_FOCUS ("FOCUS") //正整数 > 0 #define US_FOCUSZONE ("FOCUSZONE") //正整数 0 - 100 #define US_GAIN ("GAIN") //正整数 0 - 255 //uchar[8],使用UINT64 #define US_TGC ("TGC") //uchar[2],使用USHORT #define US_LGC ("LGC") //浮点,3.5Mhz,6Mhz... #define US_FREQUENCY ("FREQUENCY") //正数,0开始 #define US_PULSEDELAY ("PULSEDELAY") //正数 #define US_POWER ("POWER") //正数 #define US_PulseWidth ("PULSEWIDTH") //浮点数:物理参数 #define US_View_LineAngle ("LINEANGLE") #define US_View_LeftMargin ("LEFTLINEMARGIN") #define US_View_RightMargin ("RIGHTLINEMARGIN") #define US_View_AngleStep ("LINEANGLESTEP") #define US_View_InnerDepth ("INNERDEPTH") #define US_View_OuterDepth ("OUTERDEPTH") #define US_Roi_LineHigh ("ROILINEHIGH") #define US_Roi_LineLow ("ROILINELOW") #define US_Roi_LineLeft ("ROILINELEFT") #define US_Roi_LineRight ("ROILINERIGHT") #define US_LineDensity ("LINEDENSITY") typedef enum _Us_LineDensity { US_LINEDENSITY_LOW, US_LINEDENSITY_MID, US_LINEDENSITY_HIGH, US_LINEDENSITY_MAX }US_LINEDENSITY; //浮点:正数 #define US_ScanLineAngle ("SCANLINEANGLE") //正整数 #define US_MultiLine ("MULTILINE") //正浮点数(米为单位) #define US_ReceiveDepth ("RECEIVEDEPTH") //bool值 #define US_Harmonic ("HARMONIC") //正数 1-5,0-4 #define US_Fusion ("FUSION") //正数 #define US_Compress ("COMPRESS") //正数 #define US_Packet ("PACKET") //正浮点数 #define US_GateStartDepth ("GATESTARTDEPTH") //正浮点数 #define US_GateLength ("GATELENGTH") #define US_ModeActiveStatus ("MODEACTIVESTATUS") #define US_ROI_Area ("USROIAREA") #define US_ROI_Type ("USROITYPE") typedef enum _Us_RoiType { US_ROI_TYPE_FANTYPE, US_ROI_TYPE_PARALLELOGRAM, US_ROI_TYPE_MAX }US_ROITYPE; #define US_ElementWidth ("ELEMENTWIDTH") #define US_ElementSpace ("ELEMENTSPACE") #define US_XmtLensFocus ("XMTLENSFOCUS") #define US_Elevation ("ELEVATION") #define US_LensThickness ("LENSTHICKNESS") //正数 #define US_Dynamic ("DYNAMIC") //正数 #define US_DwallFilter ("DWALLFILTER") //正数 #define US_CwallFilter ("CWALLFILTER") //正数 #define US_Smooth ("SMOOTH") #define US_BModeInf ("BModeInfo") #define US_CModeInf ("CModeInfo") #define US_PWModeInf ("PWModeInfo") #define US_BModeXmit ("BXmit") #define US_BModeRecv ("BRecv") #define US_CModeXmit ("CXmit") #define US_CModeRecv ("CRecv") #define US_DModeXmit ("DXmit") #define US_DModeRecv ("DRecv") class US_MODEL_DEF_API UsRoiArea : public ExJsonDataObject { //key:UsRoiArea public: UsRoiArea(US_ROITYPE RoiType); virtual ~UsRoiArea(); }; class US_MODEL_DEF_API BModeXmit : public ExJsonDataObject { //key:BModeXmit public: BModeXmit(); virtual ~BModeXmit(); }; class US_MODEL_DEF_API BModeReceive : public ExJsonDataObject { //key:BModeReceive public: BModeReceive(); virtual ~BModeReceive(); }; class US_MODEL_DEF_API BModeInfo : public ExJsonDataObject { //key:BModeInfo public: BModeInfo(); virtual ~BModeInfo(); }; class US_MODEL_DEF_API CModeXmit : public ExJsonDataObject { //key:CModeXmit public: CModeXmit(); virtual ~CModeXmit(); }; class US_MODEL_DEF_API CModeReceive : public ExJsonDataObject { //key:CModeReceive public: CModeReceive(); virtual ~CModeReceive(); }; class US_MODEL_DEF_API CModeInfo : public ExJsonDataObject { //key:CModeInfo public: CModeInfo(); virtual ~CModeInfo(); }; class US_MODEL_DEF_API PWModeXmit : public ExJsonDataObject { //key:PWModeXmit public: PWModeXmit(); virtual ~PWModeXmit(); }; class US_MODEL_DEF_API PWModeReceive : public ExJsonDataObject { //key:PWModeReceive public: PWModeReceive(); virtual ~PWModeReceive(); }; class US_MODEL_DEF_API PWModeInfo : public ExJsonDataObject { //key:PWModeInfo public: PWModeInfo(); virtual ~PWModeInfo(); }; class US_MODEL_DEF_API ModelTranducer : public ExJsonDataObject { //key:Tranducer //US_BfModeList //US_TrType public: ModelTranducer(); virtual ~ModelTranducer(); }; class US_MODEL_DEF_API ModelBeanFormer : public ExJsonDataObject { //key:BeanFormer //B Mode BModeInfo m_BMode; //C Mode CModeInfo m_CMode; //PW Mode PWModeInfo m_PwMode; //BfStatus //BfReadyStatus //TR表 //激活的TR public: ModelBeanFormer(); virtual ~ModelBeanFormer(); bool SelectTR(const char *pTRName); bool StartAcq(); bool StopAcq(); //rule No1.只要激活状态,B模式 always on Active. //rule No2.Active B,C,D情况下,三个都有激活 //rule No3.再次Active已激活的模式的话,会Deactive 所有其他模式 void ActiveMode(BF_MODE Mode); //设置参数 //设置单独的参数 //设置一个Mode的参数 ResDataObject &operator [](const char *pKey); //设置全部参数 bool SetFullModeParams(ResDataObject &Res); }; class US_MODEL_DEF_API ModelSignalProcess : public ExJsonDataObject { //key:SignalProcess public: ModelSignalProcess(); virtual ~ModelSignalProcess(); }; #define Us_DiosImageInfo ("UsImageInfo") #define Us_ImageBmodeInfo ("UsImageBModeInfo") #define Us_ImageCmodeInfo ("UsImageBModeInfo") #define Us_ImageDmodeInfo ("UsImageBModeInfo") #define Us_DiosImageType ("USIMAGETYPE") #define Us_DiosImageViewTypeSupprt ("USIMAGETYPESUPPORT") #define Us_DiosImageHeight ("USIMAGEHEIGHT") #define Us_DiosImageWidth ("USIMAGEWIDTH") #define Us_DiosImageBits ("USIMAGEBITS") typedef enum _Us_ImageType { US_IMAGETYPE_BMODE, US_IMAGETYPE_CMODE, US_IMAGETYPE_DMODE, US_IMAGETYPE_MAX }USIMAGETYPE; class US_MODEL_DEF_API UsImageBModeInfo : public ExJsonDataObject { //key:UsImageBModeInfo public: UsImageBModeInfo(); virtual ~UsImageBModeInfo(); }; class US_MODEL_DEF_API UsImageCModeInfo : public ExJsonDataObject { //key:UsImageCModeInfo public: UsImageCModeInfo(); virtual ~UsImageCModeInfo(); }; class US_MODEL_DEF_API UsImageDModeInfo : public ExJsonDataObject { //key:UsImageDModeInfo public: UsImageDModeInfo(); virtual ~UsImageDModeInfo(); }; class US_MODEL_DEF_API ModelAcousticProcess : public ExJsonDataObject { //key:AcousticProcess UsImageBModeInfo m_BImageMode; UsImageCModeInfo m_CImageMode; UsImageDModeInfo m_DImageMode; public: ModelAcousticProcess(); virtual ~ModelAcousticProcess(); };