123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400 |
- #pragma once
- #include <string>
- #include <algorithm>
- using namespace std;
- #include "DIOS.Dev.MouldDefine.hpp"
- #pragma warning (disable:4244) // warning C4244: “初始化”: 从“double”转换到“float”,可能丢失数据
- namespace DIOS::Dev::Detail
- {
- namespace MECH
- {
- // 515D79B6-9243-4D9A-8F01-88183B9BCC07 Dirver
- // A6C288B9-8C4F-3A6C-9C5F-12345A0F7284 mammo
- // 9A02D2A7-523D-4FE3-8EA0-C711AE7CA6C3 stitch
- static const char* MechDriverType = "{515D79B6-9243-4D9A-8F01-88183B9BCC07}";
- static const char* MechUnitType = "{0C99B70A-F788-48E1-9728-403BFF6DF982}";
- static const char* MamoMechUnitType = "{A6C288B9-8C4F-3A6C-9C5F-12345A0F7284}";
- static const char* StitchMechUnitType = "{9A02D2A7-523D-4FE3-8EA0-C711AE7CA6C3}";
- namespace AttrKey
- {
- //检查信息
- static const char* VIEWID = "ViewID";//视图ID
- static const char* PATIENTSIZE = "PatientSize";//病人体型
- //机架基础信息
- static const char* MACHSTATE = "MACHINESTATUS"; //机架设备状态
- enum MACHINE_STATUS {
- MACHINE_STATUS_SHUTDOWN,
- MACHINE_STATUS_INIT,
- MACHINE_STATUS_SLEEP,
- MACHINE_STATUS_CHARGING,//充电
- MACHINE_STATUS_STANDBY,
- MACHINE_STATUS_ERROR,
- MACHINE_STATUS_3DDR,
- MACHINE_STATUS_STITCH,
- MACHINE_STATUS_CALIBRATION,
- MACHINE_STATUS_SERVICE,
- MACHINE_STATUS_MAX
- };
- static const char* SupportSyncMode = "SupportSyncMode"; //同步模式对应关系只存在于模型中,理论上不需要发生器存储或修改,可以不定义相应变量及Get、Set接口
- static const char* UNITINFO = "DeviceInfo";//机架状态详细信息
- static const char* TUBEANGLE = "MechanicalAngle";//球馆角度
- static const char* TUBEHEIGHT = "MechanicalHeight";//机架高度
- static const char* POSITIONNUMBER = "PositionNumber";//位置码
- static const char* TID = "TID";//TID:DetectorToTableDistance
- static const char* SID = "SID";//SID:SourcetoDetectorDistance
- static const char* SED = "SED";//ENTRANCE:SourceToEntranceDistance
- static const char* SOD = "SOD";//SOD:SourceToPatientDistance
- static const char* FID = "FID";//FloorToDetectorDistance
- static const char* GRIDSTATE = "GRID";//震动栅
- typedef enum _Dios_Mech_GridState
- {
- Grid_NULL,
- Grid_IN,
- Grid_OUT,
- Grid_MOVING,
- Grid_VIBRATE,
- Grid_MAX
- }MECH_GRIDSTATE;
- //乳腺信息
- static const char* MAMMO_AE = "AE";//
- static const char* MAMMO_THICKNESS = "Thickness";//压迫厚度
- static const char* MAMMO_CompPressureDEC = "CompPressureDEC";//
- static const char* MAMMO_DEPRESS = "Depress";//自动释放压迫板
- static const char* MAMMO_SecANGLE = "MechanicalSecAngle";//机架相对角度
- static const char* MAMMO_PRESSVAL = "CompPressure";//压迫压力
- static const char* MAMMO_AGD = "AGD";//平均腺体计量
- static const char* MAMMO_MAG = "MAG";//放大倍数
- static const char* MAMMO_CompressPaddle = "CompressPaddle";//压迫板信息
- //遮光器
- static const char* FILTER = "Filter";//滤过
- static const char* CollimatorSize = "CollimatorSize";//遮光器尺寸
- //TOMO
- static const char* TomoTID = "MachineryTID";//探测器到患者距离
- static const char* TomoSID = "MachinerySID";//球管到探测器的距离
- static const char* TomoType = "TomoType";//TOMO类型
- static const char* TomoViewId = "ProcedureViewId";
- static const char* TomoScanDirection = "MachineryScanDirection";//方向
- typedef enum TomoDirection_Type {
- TOMODIR_NULL,
- TOMODIR_TopToBottom = 1,
- TOMODIR_BottomToTop = 2,
- TOMODIR_leftToRight = 3,
- TOMODIR_RightToLeft = 4,
- TOMODIR_MAX
- }TOMODIR_TYPE;
- static const char* TomoFrameCount = "FrameCount";//总帧数
- static const char* TomoFrameRate = "FrameRate";//帧率
- static const char* TomoScanAngle = "MachineryScanAngle";//总角度
- static const char* TomoRotateAngle = "RotateAngle";
- static const char* TomoScanImageNumber = "MachineryProjectionNumber";//总张数
- //拼接相应
- static const char* STITCHINGSTATE = "STITCHINGSTATE"; //拼接流程状态
- typedef enum _Dios_Stitch_State
- {
- STITCHSTATE_ERR = -1, //拼接错误
- STITCHSTATE_INIT, //拼接初始化,此时设置拼接相应参数
- STITCHSTATE_STANDBY, //拼接就绪,参数设置成功
- STITCHSTATE_START, //拼接开始
- STITCHSTATE_NEED_MOVE, //拼接机架需要向指定位置运动
- STITCHSTATE_MOVING, //拼接机架正在运动
- STITCHSTATE_REACH_INIT, //拼接机架到达初始位置
- STITCHSTATE_REACH_NEXT, //拼接机架到达下一个位置
- STITCHSTATE_REACH_EXTRA, //拼接机架到达额外位置
- STITCHSTATE_READY, //拼接准备完毕,可以曝光
- STITCHSTATE_Accept_Image,//接受当前拼接的图像
- STITCHSTATE_Reject_Image,//拒绝当前拼接的图像
- STITCHSTATE_END, //拼接完成
- STITCHSTATE_CANCEL, //拼接退出
- STITCHSTATE_RESTART, //重新拼接
- STITCHSTATE_MAX //无意义
- }STITCH_STATE;
- static const char* MECHREADY = "MachineryReady"; //机架Ready
- static const char* STITCHHEIGHT = "InitHeight";//初始高度
- static const char* STITCHLENGTH = "TotalLength";//拼接长度
- static const char* STITCHOVERLAP = "Overlap";//重叠区域
- static const char* STITCHTID = "TID";//TID:DetectorToTableDistance
- static const char* STITCHSID = "SID";//SID:SourcetoDetectorDistance
- static const char* STITCHPID = "PID";//拼接位置码
- static const char* STITCHDIRECTION = "Direction";//拼接方向
- typedef enum StitchDirection_Type {
- STITCHDIR_NULL = 0,
- STITCHDIR_TopToBottom = 1,
- STITCHDIR_BottomToTop,
- STITCHDIR_leftToRight,
- STITCHDIR_RightToLeft,
- STITCHDIR_MAX
- }STITCHDIR_TYPE;
- static const char* STITCHTYPE = "StitchType";//拼接类型
- typedef enum Stitch_Type {
- STITCHTYPE_NULL = -1,
- STITCHTYPE_AutomaticTranslation,
- STITCHTYPE_AutomaticAngle,
- STITCHTYPE_ManualTranslation,
- STITCHTYPE_ManualAngle,
- STITCHTYPE_MAX
- }STITCH_TYPE;
- static const char* STITCHSTEPLENGTH = "StitchStepLength";//移动步长
- static const char* FPDPOSITION = "FPDPosition";//探测器位置
- static const char* TOTALIMAGECOUNT = "StitchImageCount";//拼接总张数
- static const char* CURRENTIMAGENUMBER = "StitchCurrentImage";//当前张数
- //牛头显示
- static const char* KV = "KV"; //阳极电压
- static const char* MA = "MA"; //球管电流
- static const char* MS = "MS"; //管电流
- static const char* MAS = "MAS"; //电流时间积
- static const char* FOCUS = "FOCUS"; //灯丝/焦点
- typedef enum Focus_Type {
- FOCUS_SMALL,
- FOCUS_LARGE,
- FOCUS_AUTOMATIC
- }FOCUS_TYPE;
- static const char* WORKSTATION = "WORKSTATION"; //工作位
- typedef enum GenWS_Type
- {
- TABLE = 0,
- WALL = 1,
- CONVENTIONAL = 2,
- MOBILE = 3,
- FREE_TABLE = 3,
- TOMO = 4,
- CONVENTIONAL_TABLE = 5,
- CONVENTIONAL_WALL = 6,
- FREE_WALL = 7,
- }GENWS_TYPE;
- static const char* TECHMODE = "TECHMODE"; //技术模式
- typedef enum Techmode_Type {
- TECHMODE_NOAEC_3P,
- TECHMODE_NOAEC_2P,
- TECHMODE_AEC_3P,
- TECHMODE_AEC_2P,
- TECHMODE_AEC_1P,
- TECHMODE_AEC_ReduceMA,
- TECHMODE_NOAEC_MAS_MA,
- TECHMODE_AEC_MAS_MA
- }TECHMODE_TYPE;
- typedef enum Techmode_V2Type {
- ET_NONE = -1,
- ET_TIME = 0,
- ET_MAS = 1,
- ET_AEC = 2,
- ET_AEC2P = 3,
- ET_AEC1P = 4,
- ET_AECreduceMA = 5
- }TECHMODE_V2TYPE;
- static const char* AECFIELD = "AECFIELD"; //AEC区域
- static const char* AECFILM = "AECFILM"; //AEC底片
- static const char* AECDENSITY = "AECDENSITY"; //AEC浓度
- }
- namespace ActionKey
- {
- //病人信息相关
- static const char* SetStudyInfo = "SetStudyInfo";
- static const char* SetViewInfo = "SetViewInfo";
- static const char* SetPatientInfo = "SetPatientInfo";
- //机架机械控制
- static const char* Reset = "RESET";
- static const char* SetTechParamsInfo = "SetTechParamsInfo";
- static const char* SetPositionNumber = "SetPositionNumber";
- static const char* SetSID = "SetSID";
- static const char* SetSOD = "SetSOD";
- static const char* MoveToHome = "MoveToHome";
- static const char* MoveMech = "MoveMech";
- static const char* StopMech = "StopMech";
- static const char* SetGrid = "SetGrid";
- static const char* SetAutoTracking = "SetAutoTracking";
- static const char* ActiveSyncMode = "ActiveSyncMode";//取代WorkStation设置同步模式,由上层调用设置
- //乳腺方法
- static const char* SetCollimatorSize = "SetCollimatorSize";
- static const char* SetCollimatorFilter = "SetCollimatorFilter";
- static const char* SetCollimatorSID = "SetCollimatorSID";
- static const char* SetCollimatorAngle = "SetCollimatorAngle";
- static const char* SetCollimatorLight = "SetCollimatorLight";
- //Tomo相应
- static const char* SetTomoEnable = "SetTomoEnable";
- static const char* SetTomoExpMode = "SetExpMode";
- static const char* SetTomoTechnical = "SetMachinicalTechnical";
- static const char* GetTomoResults = "GetTomoResults";
- //拼接相应
- static const char* BeginStitching = "BeginStitching";
- static const char* InitStitching = "InitStitching";
- static const char* EndStitching = "EndStitching";
- static const char* SetupStitching = "SetupStitching";
- static const char* AcceptStitchingImage = "AcceptStitchingImage";
- static const char* RejectStitchingImage = "RejectStitchingImage";
- static const char* CancelStitching = "CancelStitching";
- static const char* CompleteStitching = "CompleteStitching";
- static const char* NewExtraView = "NewExtraView";
- static const char* RepeatStitching = "RepeatStitching";
- static const char* SetAutoPosiitonNo = "SetAutoPosiitonNo";
- //遮光器
- static const char* SetCollimator = "SetCollimator";
- static const char* SetFilter = "SetFilter";
- //牛头显示
- static const char* SetWS = "SetWS";
- static const char* SetKV = "SetKV";
- static const char* SetMA = "SetMA";
- static const char* SetMS = "SetMS";
- static const char* SetMAS = "SetMAS";
- static const char* SetFocus = "SetFocus";
- static const char* SetTechMode = "SetTechMode";
- static const char* SetAECField = "SetAECField";
- static const char* SetDensity = "SetDensity";
- static const char* SetExpEnable = "SetExpEnable";
- static const char* SetBodySize = "SetBodySize";
- }
- //-----------------------------------------------------------------------------
- // _tSyncModeArgs
- //-----------------------------------------------------------------------------
- struct _tSyncModeArgs
- {
- string strWS;
- string strSyncMode;
- string strSyncValue;
- };
- namespace AttrKey::SYNC_TYPE
- {
- static const char* SYNC_AUTO = "AUTO"; //自动运动模式
- static const char* SYNC_MANUAL = "MANUAL"; //手动运动模式
- };
- //##################################################################################################
- //定义具体设备属性
- #define UNIT_DATA_INT(NAME, KEY) \
- class NAME :public IntMould\
- {\
- using super = IntMould;\
- public:\
- NAME(int initialvalue, int lower, int upper, int accuracy)\
- :super(KEY, initialvalue, lower, upper, accuracy)\
- {}\
- ~NAME() {}\
- };\
- #define UNIT_DATA_FLOAT(NAME, KEY) \
- class NAME :public FloatMould\
- {\
- using super = FloatMould;\
- public:\
- NAME(float initialvalue, float lower, float upper, float accuracy)\
- :super(KEY, initialvalue, lower, upper, accuracy)\
- {}\
- ~NAME() {}\
- };\
- #define UNIT_DATA_STR(NAME, KEY) \
- class NAME :public StringMould\
- {\
- using super = StringMould;\
- public:\
- NAME(std::string initialvalue)\
- :super(KEY, initialvalue)\
- {}\
- ~NAME() {}\
- };\
- UNIT_DATA_INT(PATIENTSIZEMould, AttrKey::PATIENTSIZE);
- UNIT_DATA_INT(VIEWIDMould, AttrKey::VIEWID);
- UNIT_DATA_INT(MechStateMould, AttrKey::MACHSTATE);
- UNIT_DATA_INT(POSITIONNUMBERMould, AttrKey::POSITIONNUMBER);
- UNIT_DATA_INT(TubeAngleMould, AttrKey::TUBEANGLE);
- UNIT_DATA_INT(TubeHeightMould, AttrKey::TUBEHEIGHT);
- UNIT_DATA_FLOAT(TIDMould, AttrKey::TID);
- UNIT_DATA_FLOAT(SIDMould, AttrKey::SID);
- UNIT_DATA_FLOAT(SEDMould, AttrKey::SED);
- UNIT_DATA_FLOAT(SODMould, AttrKey::SOD);
- UNIT_DATA_FLOAT(FIDMould, AttrKey::FID);
- UNIT_DATA_INT(GRIDMould, AttrKey::GRIDSTATE);
- UNIT_DATA_INT(FILTERMould, AttrKey::FILTER);
- UNIT_DATA_INT(MAMMOAEMould, AttrKey::MAMMO_AE);
- UNIT_DATA_INT(MAMMOTHICKNESSMould, AttrKey::MAMMO_THICKNESS);
- UNIT_DATA_INT(MAMMOPRESSDECMould, AttrKey::MAMMO_CompPressureDEC);
- UNIT_DATA_INT(MAMMODEPRESSMould, AttrKey::MAMMO_DEPRESS);
- UNIT_DATA_INT(MAMMOPRESSVALMould, AttrKey::MAMMO_PRESSVAL);
- UNIT_DATA_INT(MAMMOAGDMould, AttrKey::MAMMO_AGD);
- UNIT_DATA_INT(MAMMOMAGMould, AttrKey::MAMMO_MAG);
- UNIT_DATA_INT(TOMOTypeMould, AttrKey::TomoType);
- UNIT_DATA_INT(TOMOScanDirectionMould, AttrKey::TomoScanDirection);
- UNIT_DATA_INT(TOMOFrameCountMould, AttrKey::TomoFrameCount);
- UNIT_DATA_INT(TOMOFrameRateMould, AttrKey::TomoFrameRate);
- UNIT_DATA_INT(TOMOScanAngleMould, AttrKey::TomoScanAngle);
- UNIT_DATA_INT(TOMOScanImageNumberMould, AttrKey::TomoScanImageNumber);
- UNIT_DATA_INT(StitchingStateMould, AttrKey::STITCHINGSTATE);
- UNIT_DATA_FLOAT(StitchHeightMould, AttrKey::STITCHHEIGHT);
- UNIT_DATA_FLOAT(StitchLengthMould, AttrKey::STITCHLENGTH);
- UNIT_DATA_FLOAT(StitchOverLapMould, AttrKey::STITCHOVERLAP);
- UNIT_DATA_FLOAT(StitchPIDMould, AttrKey::STITCHPID);
- UNIT_DATA_INT(StitchDirectionMould, AttrKey::STITCHDIRECTION);
- UNIT_DATA_INT(StitchTypeMould, AttrKey::STITCHTYPE);
- UNIT_DATA_FLOAT(StitchStepLengthMould, AttrKey::STITCHSTEPLENGTH);
- UNIT_DATA_INT(FPDPositionMould, AttrKey::FPDPOSITION);
- UNIT_DATA_INT(TotalImageCountMould, AttrKey::TOTALIMAGECOUNT);
- UNIT_DATA_INT(CurrentImageNumberMould, AttrKey::CURRENTIMAGENUMBER);
- UNIT_DATA_INT(KVMould, AttrKey::KV);
- UNIT_DATA_FLOAT(MAMould, AttrKey::MA);
- UNIT_DATA_INT(MSMould, AttrKey::MS);
- UNIT_DATA_FLOAT(MASMould, AttrKey::MAS);
- UNIT_DATA_INT(FOCUSMould, AttrKey::FOCUS);
- UNIT_DATA_INT(WORKSTATIONMould, AttrKey::WORKSTATION);
- UNIT_DATA_INT(TECHMODEMould, AttrKey::TECHMODE);
- UNIT_DATA_INT(AECFIELDMould, AttrKey::AECFIELD);
- UNIT_DATA_INT(AECFILMMould, AttrKey::AECFILM);
- UNIT_DATA_INT(AECDENSITYMould, AttrKey::AECDENSITY);
- //-----------------------------------------------------------------------------
- // ConfigInfo
- //-----------------------------------------------------------------------------
- namespace ConfKey
- {
- static const char* DiosType = "Type";
- static const char* DiosModel = "Model";
- static const char* DiosConfig = "DeviceConfig";
- static const char* DiosAttribute = "Attribute";
- static const char* DiosDescription = "Description";
- static const char* DiosSCFType = "SCFType";
- static const char* DiosSCFTCPIP = "TCPIP";
- static const char* DiosSCFCOM = "COM";
- static const char* DiosSCFIP = "ip";
- static const char* DiosSCFPort = "port";
- static const char* DiosSCFBaudrate = "baudrate";
- static const char* DiosSCFBytesize = "bytesize";
- static const char* DiosSCFParity = "parity";
- static const char* DiosSCFStopbits = "stopbits";
- static const char* DiosIsConnect = "IsConnect";
- //20220412 新增 <ConfigToolInfo> 以及其内部属性,主要用于webconfig
- static const char* DiosConfigToolInfo = "ConfigToolInfo";
- static const char* DiosAttributeInfo = "AttributeInfo";
- static const char* DiosAttributeKey = "AttributeKey";
- static const char* DiosAttributeDescripition = "AttributeDescripition";
- static const char* DiosAccess = "Access";
- //static const char* DiosType = "Type";
- static const char* DiosRangeMin = "RangeMin";
- static const char* DiosRangeMax = "RangeMax";
- static const char* DiosListNum = "ListNum";
- static const char* DiosListInfo = "ListInfo";
- static const char* DiosList = "List";
- static const char* DiosRequired = "Required";
- static const char* DiosDefaultValue = "DefaultValue";
- static const char* DiosInnerKey = "InnerKey";
- static const char* DiosPathID = "PathID";
- }
- }
- }
|