123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655 |
- #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 Generator
- {
- static const char* GeneratorDriverType = "{18FDF176-DECE-445F-A52C-A14BDD3AC2C1}";
- static const char* GeneratorUnitType = "{123492D6-A546-4ACF-8EF1-2CCAA9EA974E}";
- namespace AttrKey
- {
- //设备
- static const char* SupportSyncMode = "SupportSyncMode"; //同步模式对应关系只存在于模型中,理论上不需要发生器存储或修改,可以不定义相应变量及Get、Set接口
- static const char* TUBEINFO = "TubeInfo"; //球管信息
- static const char* TUBETARGETMATERIAL = "TubeTargetMaterial"; //球管靶材
- namespace TUBETARGETMATERIAL_TYPE {
- static const char* MO = "MO";
- static const char* RH = "RH";
- }
- static const char* TUBEANGLE = "TubeAngle"; //球馆角度
- static const char* TUBEHEAT = "TUBEHEAT"; //球管热容
- static const char* DENHEAT = "GENHEAT"; //发生器温度
- static const char* BATTERYCHARGESTATE = "BatteryChargeState"; //电池充电状态
- enum CHARGE_SYNC {
- CHARGE_STATUS_OFF,
- CHARGE_STATUS_CHARGING,
- CHARGE_STATUS_FINISH,
- CHARGE_STATUS_MAX
- };
- static const char* BATTERYPOWERSTATE = "BatteryPowerState"; //电池电量状态
- static const char* GENSYNSTATE = "GENERATORSYNCSTATE"; //发生器曝光流程状态
- enum GENERATOR_SYNC {
- GENERATOR_SYNC_ERR = -1,
- GENERATOR_RAD_OFF,
- GENERATOR_RAD_PREPARE,
- GENERATOR_RAD_READY,
- GENERATOR_RAD_XRAYON,
- GENERATOR_RAD_XRAYOFF,
- GENERATOR_FLU_OFF,
- GENERATOR_FLU_READY,
- GENERATOR_FLU_XRAYON,
- GENERATOR_FLU_XRAYOFF,
- GENERATOR_FLU_CINE_READY,
- GENERATOR_SYNC_MAX
- };
- static const char* GENSTATE = "GENERATORSTATUS"; //发生器设备状态
- enum GENERATOR_STATUS {
- GENERATOR_STATUS_SHUTDOWN,
- GENERATOR_STATUS_INIT,
- GENERATOR_STATUS_SLEEP,
- GENERATOR_STATUS_CHARGING,//充电
- GENERATOR_STATUS_STANDBY,
- GENERATOR_STATUS_EXP,
- GENERATOR_STATUS_ERROR,
- GENERATOR_STATUS_CALIBRATION,
- GENERATOR_STATUS_SERVICE,
- GENERATOR_STATUS_MAX
- };
- static const char* GENHANDSWITCH = "HANDSWITCHSTATE"; //手闸状态
- enum HANDSWITCH_STATUS {
- HANDSWITCH_STATUS_Release,
- HANDSWITCH_STATUS_Hold,
- HANDSWITCH_STATUS_Press,
- HANDSWITCH_STATUS_MAX
- };
- static const char* GENFOOTSWITCH = "FOOTSWITCHSTATE"; //脚闸状态
- enum FOOTSWITCH_STATUS {
- FOOTSWITCH_STATUS_Release,
- FOOTSWITCH_STATUS_Press,
- FOOTSWITCH_STATUS_MAX
- };
- //点片
- static const char* KV = "KV"; //阳极电压
- static const char* MA = "MA"; //球管电流
- static const char* MS = "MS"; //管电流
- static const char* KV2 = "KV2"; //阳极电压
- static const char* MA2 = "MA2"; //球管电流
- static const char* MS2 = "MS2"; //管电流
- static const char* MAS = "MAS"; //电流时间积
- static const char* FOCUS = "FOCUS"; //灯丝/焦点
- enum FOCUS_TYPE {
- FOCUS_SMALL,
- FOCUS_LARGE,
- FOCUS_AUTOMATIC,
- FOCUS_MAX
- };
- static const char* FOCUSSIZE = "FOCUSSIZE"; //灯丝尺寸
- static const char* WORKSTATION = "WORKSTATION"; //工作位
- 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_MAX
- };
- static const char* TECHMODE = "TECHMODE"; //技术模式
- 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_MAX
- };
- enum TECHMODE_V2TYPE {
- ET_NONE = -1,
- ET_TIME = 0,
- ET_MAS = 1,
- ET_AEC = 2,
- ET_AEC2P = 3,
- ET_AEC1P = 4,
- ET_AECreduceMA = 5,
- ET_MAX
- };
- static const char* AECDENSITY = "AECDENSITY"; //AEC浓度
- static const char* AECFIELD = "AECFIELD"; //AEC区域
- enum AEC_FIELD {
- AEC_100 = 100,
- AEC_010 = 10,
- AEC_001 = 1,
- AEC_110 = 110,
- AEC_111 = 111,
- AEC_011 = 11,
- AEC_101 = 101
- };
- static const char* AECFILM = "AECFILM"; //AEC底片
- static const char* POSTKV = "POSTKV"; //曝光时的实际电压
- static const char* POSTMA = "POSTMA"; //曝光时的实际电流
- static const char* POSTMS = "POSTMS"; //曝光时的实际时间
- static const char* POSTMAS = "POSTMAS"; //曝光时的实际电流时间积
- static const char* TOTALEXPSURENUMBER = "TotalExposureNumber"; //总曝光次数
- static const char* TOTALACQTIMES = "TotalAcqTimes"; //曝光累计时间
- static const char* TUBECOOLWAITTIME = "TubeCoolWaitTime"; //球管冷却时间
- static const char* TUBEOVERLOADNUMBER = "TubeOverLoadNumber"; //球管过热次数
- static const char* CURRENTEXPOSUREBNUMBER = "CurrentExposureNumber"; //当前曝光次数
- static const char* EXPMODE = "EXPMODE"; //曝光模式
- namespace EXPMODE_TYPE {
- static const char* Single = "Single";
- static const char* Stitch = "Stitch";
- static const char* PulseSerial = "PulseSerial";
- static const char* CoutineSerial = "CoutineSerial";
- static const char* TOMO = "TOMO";
- }
- static const char* EXAMMODE = "EXAMMODE"; //检查模式
- namespace EXAMMODE_TYPE {
- static const char* MANUAL = "MANUAL"; //0
- static const char* SEMIAUTO = "SEMIAUTO"; //1
- static const char* AUTOMATIC = "AUTOMATIC"; //2
- static const char* AUTOFILTER = "AUTOFILTER"; //3
- }
- static const char* MODALITY = "Modality"; //?模式
- static const char* FRAMERATE = "FrameRate"; //帧速率(连续)
- static const char* REFERENCEAIRKERMA = "ReferenceAirKerma"; //?
- static const char* KVLIST = "KVList"; //电压取值集合
- static const char* MASLIST = "MASList"; //电流取值集合
- //透视
- static const char* FLUKV = "FLUKV"; //透视电压
- static const char* FLUMA = "FLUMA"; //透视电流
- static const char* FLUMS = "FLUMS"; //透视曝光时间
- static const char* FLUMAS = "FLUMAS"; //透视时间电流积
- static const char* FLUAccTime = "FLUAccTime"; //透视累计时间
- static const char* FLUAccTimeUnit = "FLUAccTimeUnit"; //透视累计时间单位
- static const char* FLUIntTime = "FLUIntTime"; //脉冲周期时间
- static const char* FLUPPS = "FLUPPS"; //帧率
- static const char* FLUpulseWidth = "FLUpulseWidth"; //脉宽
- static const char* FLUMode = "FLUMode"; //透视模式
- enum GENERATOR_FLUMode {
- GENERATOR_FLMODE_NOTFLU,//非透视
- GENERATOR_FLMODE_CF,//连续
- GENERATOR_FLMODE_PF,//脉冲
- GENERATOR_FLMODE_HCF,//高剂量连续
- GENERATOR_FLMODE_HPF,//高剂量脉冲
- GENERATOR_FLMODE_MAX
- };//主要是透视模式分类,后续斟酌。
- namespace FLFMODE_TYPE
- {
- static const char* FLF_DISB = "NotFlu";
- static const char* FLF_CONTI = "CF";
- static const char* FLF_PULSE = "PF";
- static const char* FLF_HL_CONTI = "HLCF";
- static const char* FLF_HL_PULSE = "HLF";
- static const char* FLF_CBCT = "5";
- static const char* FLF_DIRECT = "6";
- }
- static const char* FLUABSStatus = "FLUABSStatus"; //ABS状态
- enum GENERATOR_ABSStatus {
- GENERATOR_ABS_OFF,//关闭
- GENERATOR_ABS_ON_KV,//启用(KV only)
- GENERATOR_ABS_ON_KVMA,//启用(KV/mA)
- GENERATOR_ABS_MAX
- };
- static const char* FLUMag = "FLUMag"; //fluoro mag
- static const char* FLUDoseLevel = "FLUDoseLevel"; //剂量模式
- enum GENERATOR_DoseLevel {
- GENERATOR_DOSE_LOW,//关闭
- GENERATOR_DOSE_NORMAL,//启用(KV only)
- GENERATOR_DOSE_HIGH,//启用(KV/mA)
- GENERATOR_DOSE_CineLOW = 10,//关闭
- GENERATOR_DOSE_CineNORMAL,//启用(KV only)
- GENERATOR_DOSE_CineHIGH,//启用(KV/mA)
- GENERATOR_DOSE_MAX
- };
- static const char* FLUCurve = "FLUCurve"; //ABS曲线
- static const char* FLUCineKV = "FLUCineKV"; //Cine电压
- static const char* FLUCineMA = "FLUCineMA"; //Cine电流
- static const char* FLUCineMS = "FLUCineMS"; //Cine曝光时间
- enum UNIT_REGULATION_LEVEL { //故障等级
- REG_ERRO,
- REG_WARN
- };
- enum UNIT_CHARGE_STATE { //电池状态
- POWER_LOW,
- POWER_NOR
- };
- enum UNIT_CTRL_TYPE { //交互方式
- CTRL_PlatformInterface,
- CTRL_Center,
- CTRL_CallBackFun
- };
- }
- namespace ActionKey
- {
- //unit
- static const char* Query_HE = "Query_HE";
- static const char* SetGeneratortoSyncStatus = "SetGeneratortoSyncStatus";
- static const char* SetExpEnable = "SetExpEnable";
- static const char* SetExpDisable = "SetExpDisable";
- static const char* Reset = "RESET";
- static const char* SetTubeAngle = "SetTubeAngle";
- static const char* SetTubeTargetMaterial = "SetTubeTargetMaterial";
- static const char* GetSignalFromWorkflows = "GetSignalFromWorkflows";//add by wxx for 品臻3025ZF
- static const char* ActiveSyncMode = "ActiveSyncMode";//取代WorkStation设置同步模式,由上层调用设置
- static const char* SimulateError = "SimulateError";//模拟错误注入
- //DR
- static const char* SetAPR = "SetAPR";
- static const char* SetAPRArray = "SetAPRArray";
- static const char* IncParam_KV = "IncParam_KV";
- static const char* DecParam_KV = "DecParam_KV";
- static const char* IncParam_KVL = "IncParam_KVL";
- static const char* DecParam_KVL = "DecParam_KVL";
- static const char* SetValue_KV = "SetValue_KV";
- static const char* IncParam_MA = "IncParam_MA";
- static const char* DecParam_MA = "DecParam_MA";
- static const char* IncParam_MAL = "IncParam_MAL";
- static const char* DecParam_MAL = "DecParam_MAL";
- static const char* SetValue_MA = "SetValue_MA";
- static const char* IncParam_MS = "IncParam_MS";
- static const char* DecParam_MS = "DecParam_MS";
- static const char* IncParam_MSL = "IncParam_MSL";
- static const char* DecParam_MSL = "DecParam_MSL";
- static const char* SetValue_MS = "SetValue_MS";
- static const char* IncParam_MAS = "IncParam_MAS";
- static const char* DecParam_MAS = "DecParam_MAS";
- static const char* IncParam_MASL = "IncParam_MASL";
- static const char* DecParam_MASL = "DecParam_MASL";
- static const char* SetValue_MAS = "SetValue_MAS";
- static const char* SetValue_TECHMODE = "SetValue_TECHMODE";
- static const char* SetValue_FOCUS = "SetValue_FOCUS";
- static const char* SetValue_AECDENSITY = "SetValue_AECDENSITY";
- static const char* IncParam_AECDENSITY = "IncParam_AECDENSITY";
- static const char* DecParam_AECDENSITY = "DecParam_AECDENSITY";
- static const char* SetValue_AECFIELD = "SetValue_AECFIELD";
- static const char* SetValue_AECFILM = "SetValue_AECFILM";
- static const char* SetValue_WORKSTATION = "SetValue_WORKSTATION";
- static const char* GetValue_POSTKV = "GetValue_POSTKV";
- static const char* GetValue_POSTMA = "GetValue_POSTMA";
- static const char* GetValue_POSTMS = "GetValue_POSTMS";
- static const char* GetValue_POSTMAS = "GetValue_POSTMAS";
- static const char* SetExpMode = "SetExpMode";
- static const char* SetFrameRate = "SetFrameRate";
- static const char* SetModality = "SetModality";
- static const char* SetEXAMMode = "SetEXAMMode";
- //FLU
- static const char* IncParam_FluKV = "IncParam_FluKV";
- static const char* DecParam_FluKV = "DecParam_FluKV";
- static const char* GetValue_FluKV = "GetValue_FluKV";
- static const char* SetValue_FluKV = "SetValue_FluKV";
- static const char* IncParam_FluMA = "IncParam_FluMA";
- static const char* DecParam_FluMA = "DecParam_FluMA";
- static const char* GetValue_FluMA = "GetValue_FluMA";
- static const char* SetValue_FluMA = "SetValue_FluMA";
- static const char* IncParam_FluMS = "IncParam_FluMS";
- static const char* DecParam_FluMS = "DecParam_FluMS";
- static const char* GetValue_FluMS = "GetValue_FluMS";
- static const char* SetValue_FluMS = "SetValue_FluMS";
- static const char* IncParam_FluMAS = "IncParam_FluMAS";
- static const char* DecParam_FluMAS = "DecParam_FluMAS";
- static const char* SetValue_FluMAS = "SetValue_FluMAS";
- static const char* SetValue_PPS = "SetValue_PPS";
- static const char* GetValue_PPS = "GetValue_PPS";
- static const char* IncParam_PPS = "IncParam_PPS";
- static const char* DecParam_PPS = "DecParam_PPS";
- static const char* SetValue_ABSCurve = "SetValue_ABSCurve";
- static const char* IncParam_ABSCurve = "IncParam_ABSCurve";
- static const char* DecParam_ABSCurve = "DecParam_ABSCurve";
- static const char* SetValue_ABSValue = "SetValue_ABSValue";
- static const char* GetValue_FluIntTimer = "GetValue_FluIntTimer";
- static const char* GetValue_FluAccTimer = "GetValue_FluAccTimer";
- static const char* SetValue_PluseWidth = "SetPluseWidth";
- static const char* SetValue_ABSMode = "SetABSMode";
- static const char* SetValue_ABSTargetEXI = "SetABSTargetEXI";
- static const char* SetValue_APF = "SetAPF";
- static const char* ReSetFluTimer = "ReSetFluTimer";
- static const char* SetValue_FluPre = "SetFluPre";
- static const char* SetValue_FluEXP = "SetFluEXP";
- static const char* SetFLFMode = "SetFLFMode";
- static const char* SetValue_FluMAG = "SetFluMAG";
- static const char* DisableMAG = "DisableMAG";
- static const char* SetValue_FluDoseLever = "SetFluDoseLever";
- static const char* SetValue_HalfDose = "SetHalfDose";
- static const char* SetValue_RadCurve = "TransferRadCurve";
- //other
- static const char* SetCollimatorLight = "SetCollimatorLight";
- }
- //-----------------------------------------------------------------------------
- // ConfigInfo
- //-----------------------------------------------------------------------------
- namespace ConfKey
- {
- static const char* DiosGeneratorType = "GeneratorVender";
- static const char* DiosGeneratorModel = "GeneratorModel";
- static const char* DiosGeneratorConfig = "DeviceConfig";
- static const char* DiosGeneratorAttribute = "Attribute";
- static const char* DiosGeneratorDescription = "Description";
- static const char* AttributeType = "Type";
- static const char* AttributeAccess = "Access";
- static const char* AttributeRangeMax = "RangeMax";
- static const char* AttributeRangeMin = "RangeMin";
- static const char* AttributeListNum = "ListNum";
- static const char* AttributeList = "List";
- static const char* AttributeRequired = "Required";
- static const char* AttributeDefaultValue = "DefaultValue";
- static const char* DiosSyncType = "SyncType";
- 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* DiosWSTable = "WSTable";
- static const char* DiosWSWall = "WSWall";
- static const char* DiosWSFree = "WSFree";
- static const char* DiosWSTomo = "WSTomo";
- static const char* DiosWSConventional = "WSConventional";
- static const char* DiosSynTable = "SYNTable";
- static const char* DiosSynWall = "SYNWall";
- static const char* DiosSynFree = "SYNFree";
- static const char* DiosSynTomo = "SYNTomo";
- static const char* DiosSynConventional = "SYNConventional";
- static const char* DiosConsoleRole = "ConsoleRole";
- 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";
- //20230829 新增 满足demand574
- static const char* DiosTubeInfo = "TubeInfo";
- static const char* DiosFocusSmall = "FocusSmall";
- static const char* DiosFocusLarge = "FocusLarge";
- }
- //-----------------------------------------------------------------------------
- // _tAPRArgs、_tAPFArgs
- //-----------------------------------------------------------------------------
- struct _tAPRArgs
- {
- int nWS{ 0 };
- int nFocus{ 0 };
- int nTechmode{ 0 };
- float fKV{ 0 };
- float fMA{ 0 };
- float fMS{ 0 };
- float fKV2{ 0 };
- float fMA2{ 0 };
- float fMS2{ 0 };
- float fMAS{ 0 };
- int nAECDensity{ 0 };
- int nAECFilm{ 0 };
- int nAECField{ 0 };
- };
- struct _tAPFArgs
- {
- int nWS{ 0 };
- int nFluMode{ 0 };
- int nABSMode{ 0 };
- int nDoseLever{ 0 };
- float nFLKV{ 0 };
- float fFLMA{ 0 };
- int nPPS{ 0 };
- };
- //-----------------------------------------------------------------------------
- // _tSyncModeArgs
- //-----------------------------------------------------------------------------
- struct _tSyncModeArgs
- {
- string strWS;
- string strSyncMode;
- string strSyncValue;
- };
- namespace AttrKey::SYNC_TYPE
- {
- static const char* SYNC_HWS = "HWS"; //硬件信号同步出线
- static const char* SYNC_CMD = "CMD"; //软件指令同步出线
- static const char* SYNC_FRE = "FRE"; //自由出线
- static const char* SYNC_DEMO = "DEMO"; //发生器不接入到Dios系统
- }
- //-----------------------------------------------------------------------------
- // SYNMould
- //-----------------------------------------------------------------------------
- enum EnSYNMode
- {
- EXPOSURE_SYNMODE_HARDWARE_SYNBOX, //0
- EXPOSURE_SYNMODE_DIRCETCONNECT_NOSYNBOX, //1
- EXPOSURE_SYNMODE_SOFTWARE_NOSYNBOX, //2
- EXPOSURE_SYNMODE_DIRECT //3
- };
- struct cfgWorkStationKey //SDC工作位结构体
- {
- std::string strWSNAme;
- int nWSID{ 0 };
- cfgWorkStationKey()
- {
- strWSNAme = "";
- nWSID = 0;
- };
- cfgWorkStationKey(std::string name, int id)
- {
- strWSNAme = name;
- nWSID = id;
- };
- cfgWorkStationKey(int id)
- {
- strWSNAme = "null";
- if (id == AttrKey::TABLE)
- strWSNAme = "Table";
- else if (id == AttrKey::WALL)
- strWSNAme = "Wall";
- else if (id == AttrKey::MOBILE)
- strWSNAme = "Free";
- else if (id == AttrKey::TOMO)
- strWSNAme = "Tomo";
- else if (id == AttrKey::CONVENTIONAL)
- strWSNAme = "Direct";
- nWSID = id;
- };
- cfgWorkStationKey(const char* name)
- {
- strWSNAme = name;
- if (strcmp(name, "Table") == 0)
- nWSID = AttrKey::TABLE;
- else if (strcmp(name, "Wall") == 0)
- nWSID = AttrKey::WALL;
- else if (strcmp(name, "Free") == 0)
- nWSID = AttrKey::MOBILE;
- else if (strcmp(name, "Tomo") == 0)
- nWSID = AttrKey::TOMO;
- else if (strcmp(name, "Direct") == 0)
- nWSID = AttrKey::CONVENTIONAL;
- };
- bool operator<(const cfgWorkStationKey& value) const {
- return nWSID < value.nWSID;
- }
- };
- struct cfgWorkStationData //SDC工作位结构体
- {
- std::string strWSNAme;
- int nWSNamber{ 0 };
- EnSYNMode nWSSYN{ EXPOSURE_SYNMODE_HARDWARE_SYNBOX };
- cfgWorkStationData()
- {
- strWSNAme = "";
- nWSNamber = 0;
- nWSSYN = EXPOSURE_SYNMODE_HARDWARE_SYNBOX;
- };
- cfgWorkStationData(std::string name, int number, EnSYNMode syn)
- {
- strWSNAme = name;
- nWSNamber = number;
- nWSSYN = syn;
- };
- };
- //##################################################################################################
- //定义具体设备属性
- #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_INT_withLimit(NAME, KEY, INIT, MIN, MAX, ACC) \
- class NAME :public IntMould\
- {\
- using super = IntMould;\
- public:\
- NAME(int initialvalue = INIT, int lower = MIN, int upper = MAX, int accuracy = ACC)\
- :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_FLOAT(KVMould, AttrKey::KV);
- UNIT_DATA_FLOAT(MAMould, AttrKey::MA);
- UNIT_DATA_FLOAT(MSMould, AttrKey::MS);
- UNIT_DATA_FLOAT(MASMould, AttrKey::MAS);
- UNIT_DATA_INT_withLimit(FOCUSMould, AttrKey::FOCUS,
- AttrKey::FOCUS_TYPE::FOCUS_AUTOMATIC,
- AttrKey::FOCUS_TYPE::FOCUS_SMALL,
- AttrKey::FOCUS_TYPE::FOCUS_AUTOMATIC,
- 1);
- 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);
- UNIT_DATA_INT(TUBEHEATMould, AttrKey::TUBEHEAT);
- UNIT_DATA_INT(GENHEATMould, AttrKey::DENHEAT);
- UNIT_DATA_FLOAT(POSTKVMould, AttrKey::POSTKV);
- UNIT_DATA_FLOAT(POSTMAMould, AttrKey::POSTMA);
- UNIT_DATA_FLOAT(POSTMSMould, AttrKey::POSTMS);
- UNIT_DATA_FLOAT(POSTMASMould, AttrKey::POSTMAS);
- UNIT_DATA_INT_withLimit(GENSYNSTATEMould, AttrKey::GENSYNSTATE,
- AttrKey::GENERATOR_SYNC::GENERATOR_RAD_OFF,
- AttrKey::GENERATOR_SYNC::GENERATOR_SYNC_ERR,
- AttrKey::GENERATOR_SYNC::GENERATOR_FLU_XRAYOFF,
- 1);
- UNIT_DATA_INT_withLimit(GENSTATEMould, AttrKey::GENSTATE,
- AttrKey::GENERATOR_STATUS::GENERATOR_STATUS_INIT,
- AttrKey::GENERATOR_STATUS::GENERATOR_STATUS_SHUTDOWN,
- AttrKey::GENERATOR_STATUS::GENERATOR_STATUS_MAX,
- 1);
- UNIT_DATA_INT(TOTALEXPNUMMould, AttrKey::TOTALEXPSURENUMBER);
- UNIT_DATA_INT(TOTALACQTIMESMould, AttrKey::TOTALACQTIMES);
- UNIT_DATA_INT(TUBECOOLTIMEMould, AttrKey::TUBECOOLWAITTIME);
- UNIT_DATA_INT(TUBEOVERLOADNUMMould, AttrKey::TUBEOVERLOADNUMBER);
- UNIT_DATA_INT(CUREXPNUMMould, AttrKey::CURRENTEXPOSUREBNUMBER);
- UNIT_DATA_STR(EXPMODEMould, AttrKey::EXPMODE);
- UNIT_DATA_STR(EXAMMODEMould, AttrKey::EXAMMODE);
- UNIT_DATA_STR(MODALITYMould, AttrKey::MODALITY);
- UNIT_DATA_FLOAT(FRAMERATEMould, AttrKey::FRAMERATE);
- UNIT_DATA_INT(BATTERYCHARGSTATEMould, AttrKey::BATTERYCHARGESTATE);
- UNIT_DATA_INT(BATTERYPOWERSTATEMould, AttrKey::BATTERYPOWERSTATE);
- UNIT_DATA_FLOAT(REFERENCEAIRKERMAMould, AttrKey::REFERENCEAIRKERMA);
- UNIT_DATA_STR(KVLISTMould, AttrKey::KVLIST);
- UNIT_DATA_STR(MASLISTMould, AttrKey::MASLIST);
- UNIT_DATA_INT(GENHANDSWITCHMould, AttrKey::BATTERYCHARGESTATE);
- UNIT_DATA_STR(TUBEINFOMould, AttrKey::TUBEINFO);
- UNIT_DATA_STR(TUBETARGETMATERIALMould, AttrKey::TUBETARGETMATERIAL);
- UNIT_DATA_FLOAT(TUBEANGLEMould, AttrKey::TUBEANGLE);
- UNIT_DATA_FLOAT(FLUKVMould, AttrKey::FLUKV);
- UNIT_DATA_FLOAT(FLUMAMould, AttrKey::FLUMA);
- UNIT_DATA_FLOAT(FLUMSMould, AttrKey::FLUMS);
- UNIT_DATA_FLOAT(FLUMASMould, AttrKey::FLUMAS);
- UNIT_DATA_FLOAT(FLAccTimeMould, AttrKey::FLUAccTime);
- UNIT_DATA_FLOAT(FLUIntTimeMould, AttrKey::FLUIntTime);
- UNIT_DATA_INT(PPSMould, AttrKey::FLUPPS);
- UNIT_DATA_INT_withLimit(FLUModeMould, AttrKey::FLUMode,
- AttrKey::GENERATOR_FLUMode::GENERATOR_FLMODE_NOTFLU,
- AttrKey::GENERATOR_FLUMode::GENERATOR_FLMODE_NOTFLU,
- AttrKey::GENERATOR_FLUMode::GENERATOR_FLMODE_HPF,
- 1);
- UNIT_DATA_INT_withLimit(FLUABSStatusMould, AttrKey::FLUABSStatus,
- AttrKey::GENERATOR_ABSStatus::GENERATOR_ABS_OFF,
- AttrKey::GENERATOR_ABSStatus::GENERATOR_ABS_OFF,
- AttrKey::GENERATOR_ABSStatus::GENERATOR_ABS_ON_KVMA,
- 1);
- UNIT_DATA_INT(FLUMagMould, AttrKey::FLUMag);
- UNIT_DATA_INT_withLimit(FLUDoseLevelMould, AttrKey::FLUDoseLevel,
- AttrKey::GENERATOR_DoseLevel::GENERATOR_DOSE_LOW,
- AttrKey::GENERATOR_DoseLevel::GENERATOR_DOSE_LOW,
- AttrKey::GENERATOR_DoseLevel::GENERATOR_DOSE_CineHIGH,
- 1);
- UNIT_DATA_INT(FLUCurveMould, AttrKey::FLUCurve);
- UNIT_DATA_FLOAT(FLUCineKVMould, AttrKey::FLUCineKV);
- UNIT_DATA_FLOAT(FLUCineMAMould, AttrKey::FLUMA);
- UNIT_DATA_FLOAT(FLUCineMSMould, AttrKey::FLUMS);
- }
- }
|