#include "stdafx.h" #include "ConfigurerMotion.h" #include "ConfigurationManager.h" using namespace DIOS::Dev::Detail::MachineryECOM; std::string ConfigurerMotion::GetPinDefineFileName() { return (const char *)ConfigurationManager::Instance()->GetMachineryConfig("PinDefineFilePath"); } BOOL ConfigurerMotion::GetUseTubeHeightADLandmark() { auto status = atoi((const char *)ConfigurationManager::Instance()->GetConfigTubeVertical("UseTubeHeightADLandmark")); return status != 0; } BOOL ConfigurerMotion::GetUseTubeAngleADLandmark() { auto status = atoi((const char *)ConfigurationManager::Instance()->GetConfigTubeRotation("UseTubeAngleADLandmark")); return status != 0; } BOOL ConfigurerMotion::GetUseHandSwitchControlReset() { auto status = atoi((const char *)ConfigurationManager::Instance()->GetMachineryConfig("UseHandSwitchControlReset")); return status != 0; } DWORD ConfigurerMotion::GetTubeHeightHighLandmarkAD() { return (DWORD)atoi((const char *)ConfigurationManager::Instance()->GetConfigTubeVertical("TubeHeightHighLandmarkAD")); } DWORD ConfigurerMotion::GetTubeHeightLowLandmarkAD() { return (DWORD)atoi((const char *)ConfigurationManager::Instance()->GetConfigTubeVertical("TubeHeightLowLandmarkAD")); } DWORD ConfigurerMotion::GetTubeAngleHighLandmarkAD() { return (DWORD)atoi((const char *)ConfigurationManager::Instance()->GetConfigTubeRotation("TubeAngleHighLandmarkAD")); } DWORD ConfigurerMotion::GetTubeAngleLowLandmarkAD() { return (DWORD)atoi((const char *)ConfigurationManager::Instance()->GetConfigTubeRotation("TubeAngleLowLandmarkAD")); } float ConfigurerMotion::GetTubeAngleLowLandmarkAngle() { return (float)atof((const char *)ConfigurationManager::Instance()->GetConfigTubeRotation("AbsoluteValueAtTubeAngleLowLandmark")); } float ConfigurerMotion::GetTubeAngleHighLandmarkAngle() { return (float)atof((const char *)ConfigurationManager::Instance()->GetConfigTubeRotation("AbsoluteValueAtTubeAngleHighLandmark")); } float ConfigurerMotion::GetTubeHeightLowLandmarkHeight() { return (float)atof((const char *)ConfigurationManager::Instance()->GetConfigTubeVertical("AbsoluteValueAtTubeHeightLowLandmark")); } float ConfigurerMotion::GetTubeHeightHighLandmarkHeight() { return (float)atof((const char *)ConfigurationManager::Instance()->GetConfigTubeVertical("AbsoluteValueAtTubeHeightHighLandmark")); } int ConfigurerMotion::GetFilterTimeHandSwitchDISignal() { int filterTime = (int)atoi((const char *)ConfigurationManager::Instance()->GetMachineryConfig("HandSwitchDISignalFilterTime")); return filterTime; } int ConfigurerMotion::GetFilterTimeLimitSwitchDISignal() { int filterTime = (int)atoi((const char *)ConfigurationManager::Instance()->GetMachineryConfig("LimitSwitchDISignalFilterTime")); return filterTime; } int ConfigurerMotion::GetFilterTimeMotorBrake() { int filterTime = (int)atoi((const char*)ConfigurationManager::Instance()->GetMachineryConfig("MotorBrakeFilterTime")); return filterTime; } BOOL ConfigurerMotion::GetSingleRADConfigs(ResDataObject &parms) { return TRUE; } //ALL IN STR FORMAT //TomoSID->TOMO 采集的SID // //TomoAcceleratingDistance->由静止到匀速的加速距离 // //TomoDeceleratingDistance->由匀速到静止的减速距离 // //TomoAlignmentDistance->对准阶段距离 // //TomoResetDistance->复位阶段距离 // //TomoRotateDirection->Tomo 运动球管旋转方向[=0 //逆时针,=1 //顺时针] //TomoGeometry-> Tomo 采集的几何模型 BOOL ConfigurerMotion::GetTomoConfigs(ResDataObject &parms) { parms.clear(); return ConfigurationManager::Instance()->GetAllTomoConfigs(parms); } BOOL ConfigurerMotion::GetModelConfigs(ResDataObject &parms) { parms.clear(); return ConfigurationManager::Instance()->GetAllTomoConfigs(parms); } //ALL IN STR FORMAT //滤波时间->SignalFilterTime //球管高度轴移动速度->MotionSpeed // //球管旋转速度-> // //TubeAnglePeriodP0->周期 // //TubeAnglePeriodP1->有效周期 // //球管高度轴上的正方向 // //TubeHeightAxisPositiveDirection[= 1 //向下为正][=0 //向上为正] // //球管角度轴上的正方向 // //TubeRotateAxisPositiveDirection[=1 //逆时针为正][=0 //顺时针为正] // //RAD 曝光角度 // //TubeAngleOfRAD // //ResetRotatePeriod->reset 时球管旋转的工作周期 // //ResetRotateEffectPeriod->reset 时球管旋转的有效工作周期 // //ResetHeightPeriod->reset 时球管高度移动的工作周期 // //ResetHeightEffectPeriod->reset 时球管高度移动的有效工作周期 // //复位定位点角度方向->TubeRotateLandmarkDirection[=1 //逆时针终点][=0 //顺时针终点] // //复位定位点高度方向->TubeHeightLandmarkDirection[=1 //下行终点][=0 //上行终点] // // // //球管复位角度->TubeRotateResetAngle // //启用高度编码器触发曝光同步->UseHeightTriggerSyncBox // //启用高度编码器触发旋转同步->UseHeightTriggerAngleRotation //探测器至床台的距离->DetectorToTableDistance //DistanceInOneCircleOfTubeAngleMotor->球管角度控制电机旋转一周对应的球管转过的角度数(°) // //DistanceInOneCircleOfTubeHeightMotor->球管高度控制电机旋转一周对应的球管移动的距离(m) // //PulseInOneCircleOfTubeAngleMotor->球管角度控制电机旋转一周对应的脉冲数 // //PulseInOneCircleOfTubeHeightMotor->球管高度控制电机旋转一周对应的脉冲数 //EncoderValueInOneCircleOfTubeAngleMotor->球管角度控制电机旋转一周对应的编码器读数的偏移量 // //EncoderValueInOneCircleOfTubeHeightMotor->球管角度控制电机旋转一周对应的编码器读数的偏移量 // //EncoderValueAtTubeAngleOrigin->球管角度处于系统原点时的编码器读数 // //EncoderValueAtTubeHeightOrigin->球管高度处于系统原点时的编码器读数 BOOL ConfigurerMotion::GetMachineryConfigs(ResDataObject &parms) { parms.clear(); return ConfigurationManager::Instance()->GetAllMachineryConfigs(parms); } float ConfigurerMotion::GetTomoSID() { return (float)atof((const char *)ConfigurationManager::Instance()->GetTomoConfig("TomoSID")); } float ConfigurerMotion::GetTomoTID() { return (float)atof((const char *)ConfigurationManager::Instance()->GetMachineryConfig("DetectorToTableDistance")); } float ConfigurerMotion::GetTomoSID_Wall() { return (float)atof((const char*)ConfigurationManager::Instance()->GetTomoConfig("TomoSID_Wall")); } float ConfigurerMotion::GetTomoTID_Wall() { return (float)atof((const char*)ConfigurationManager::Instance()->GetMachineryConfig("DetectorToTableDistance_Wall")); } float ConfigurerMotion::GetTomoSID_Table() { return (float)atof((const char*)ConfigurationManager::Instance()->GetTomoConfig("TomoSID_Table")); } float ConfigurerMotion::GetTomoTID_Table() { return (float)atof((const char*)ConfigurationManager::Instance()->GetMachineryConfig("DetectorToTableDistance_Table")); } float ConfigurerMotion::GetMotionToleranceLine() { float tolerance = (float)atof((const char*)ConfigurationManager::Instance()->GetMachineryConfig("MotionToleranceLine")); if (tolerance > 0.0001 && tolerance < 0.01)//误差设置在0.1mm到1cm之间 { return tolerance; } else { return 0.002;//误差默认为2mm } } std::string ConfigurerMotion::GetTomoGeometry() { return (const char *)ConfigurationManager::Instance()->GetTomoConfig("TomoGeometry"); } float ConfigurerMotion::GetEncoderValueInOneCircleOfTubeAngleMotor() { return (float)atof((const char *)ConfigurationManager::Instance()->GetConfigTubeRotation("EncoderValueInOneCircleOfTubeAngleMotor")); } float ConfigurerMotion::GetAbsoluteValueAtTubeAngleOrigin() { return (float)atof((const char *)ConfigurationManager::Instance()->GetConfigTubeRotation("AbsoluteValueAtTubeAngleOrigin")); } float ConfigurerMotion::GetDistanceInOneCircleOfTubeHeightMotor() { return (float)atof((const char *)ConfigurationManager::Instance()->GetConfigTubeVertical("DistanceInOneCircleOfTubeHeightMotor")); } float ConfigurerMotion::GetEncoderValueInOneCircleOfTubeHeightMotor() { return (float)atof((const char *)ConfigurationManager::Instance()->GetConfigTubeVertical("EncoderValueInOneCircleOfTubeHeightMotor")); } float ConfigurerMotion::GetAbsoluteValueAtTubeHeightOrigin() { return (float)atof((const char *)ConfigurationManager::Instance()->GetConfigTubeVertical("AbsoluteValueAtTubeHeightOrigin")); } DWORD ConfigurerMotion::GetPulseInOneCircleOfTubeHeightMotor() { return (DWORD)atoi((const char *)ConfigurationManager::Instance()->GetConfigTubeVertical("PulseInOneCircleOfTubeHeightMotor")); } float ConfigurerMotion::GetDistanceInOneCircleOfTubeAngleMotor() { return (float)atof((const char *)ConfigurationManager::Instance()->GetConfigTubeRotation("DistanceInOneCircleOfTubeAngleMotor")); } DWORD ConfigurerMotion::GetPulseInOneCircleOfTubeAngleMotor() { return (DWORD)atoi((const char *)ConfigurationManager::Instance()->GetConfigTubeRotation("PulseInOneCircleOfTubeAngleMotor")); } int ConfigurerMotion::GetSoftwareChainInterfaceATriggerLevel() { return atoi((const char *)ConfigurationManager::Instance()->GetMachineryConfig("SoftwareChainInterfaceATriggerLevel")); } int ConfigurerMotion::GetSoftwareChainInterfaceBTriggerLevel() { return atoi((const char *)ConfigurationManager::Instance()->GetMachineryConfig("SoftwareChainInterfaceBTriggerLevel")); } float ConfigurerMotion::GetPulseDutyCycleOfTubeHeightMotor() { return (float)atof((const char *)ConfigurationManager::Instance()->GetConfigTubeVertical("PulseDutyCycleOfTubeHeightMotor")); } float ConfigurerMotion::GetPulseDutyCycleOfTubeAngleMoror() { return (float)atof((const char *)ConfigurationManager::Instance()->GetConfigTubeRotation("PulseDutyCycleOfTubeAngleMotor")); } BOOL ConfigurerMotion::GetUseSwingScanning() { auto status = atoi((const char *)ConfigurationManager::Instance()->GetMachineryConfig("UseCArmRotationScanning")); return status != 0; } DWORD ConfigurerMotion::GetPulseInOneCircleOfTubeHorizontalMotor() { return (DWORD)atoi((const char*)ConfigurationManager::Instance()->GetConfigTubeHorizontal("PulseInOneCircleOfTubeHorizontalMotor")); } float ConfigurerMotion::GetPulseDutyCycleOfTubeHorizontalMoror() { return (float)atof((const char*)ConfigurationManager::Instance()->GetConfigTubeHorizontal("PulseDutyCycleOfTubeHorizontalMotor")); } float ConfigurerMotion::GetDistanceInOneCircleOfTubeHorizontalMotor() { return (float)atof((const char*)ConfigurationManager::Instance()->GetConfigTubeHorizontal("DistanceInOneCircleOfTubeHorizontalMotor")); } float ConfigurerMotion::GetEncoderValueInOneCircleOfTubeHorizontalMotor() { return (float)atof((const char*)ConfigurationManager::Instance()->GetConfigTubeHorizontal("EncoderValueInOneCircleOfTubeHorizontalMotor")); } float ConfigurerMotion::GetAbsoluteValueAtTubeHorizontalOrigin() { return (float)atof((const char*)ConfigurationManager::Instance()->GetConfigTubeHorizontal("AbsoluteValueAtTubeHorizontalOrigin")); } float ConfigurerMotion::GetTubeHorizontalLeftLandmark() { return (float)atof((const char*)ConfigurationManager::Instance()->GetConfigTubeHorizontal("AbsoluteValueAtTubeHorizontalLeftLandmark")); } float ConfigurerMotion::GetTubeHorizontalRightLandmark() { return (float)atof((const char*)ConfigurationManager::Instance()->GetConfigTubeHorizontal("AbsoluteValueAtTubeHorizontalRightLandmark")); } float ConfigurerMotion::GetTubeHeightLowPositionofReset() { return (float)atof((const char*)ConfigurationManager::Instance()->GetConfigTubeHorizontal("AbsoluteValueAtTubeHeightLowPositionofReset")); } BOOL ConfigurerMotion::GetUseTubeHorizontalADLandmark() { auto status = atoi((const char*)ConfigurationManager::Instance()->GetConfigTubeHorizontal("UseTubeHorizontalADLandmark")); return status != 0; } int ConfigurerMotion::GetTubeRotateResetPeriod() { return atoi((const char*)ConfigurationManager::Instance()->GetConfigTubeRotation("ResetRotatePeriod")); } int ConfigurerMotion::GetTubeRotateNormalPeriod() { return atoi((const char*)ConfigurationManager::Instance()->GetConfigTubeRotation("TubeAnglePeriodP0")); } int ConfigurerMotion::GetTubeRotateLandmarkDirection() { return atoi((const char*)ConfigurationManager::Instance()->GetConfigTubeRotation("TubeRotateLandmarkDirection")); } int ConfigurerMotion::GetTubeRotateAxisPositiveDirection() { return atoi((const char*)ConfigurationManager::Instance()->GetConfigTubeRotation("TubeRotateAxisPositiveDirection")); } float ConfigurerMotion::GetTubeRotateResetAngle() { return atof((const char*)ConfigurationManager::Instance()->GetConfigTubeRotation("TubeRotateResetAngle")); } int ConfigurerMotion::GetTubeHeightResetPeriod() { return atoi((const char*)ConfigurationManager::Instance()->GetConfigTubeVertical("ResetHeightPeriod")); } int ConfigurerMotion::GetTubeHeightNormalPeriod() { return atoi((const char*)ConfigurationManager::Instance()->GetConfigTubeVertical("NormalHeightPeriod")); } int ConfigurerMotion::GetTubeHeightLandmarkDirection() { return atoi((const char*)ConfigurationManager::Instance()->GetConfigTubeVertical("TubeHeightLandmarkDirection")); } int ConfigurerMotion::GetTubeHeightAxisPositiveDirection() { return atoi((const char*)ConfigurationManager::Instance()->GetConfigTubeVertical("TubeHeightAxisPositiveDirection")); } int ConfigurerMotion::GetTubeHorizontalResetPeriod() { return atoi((const char*)ConfigurationManager::Instance()->GetConfigTubeHorizontal("ResetHorizontalPeriod")); } int ConfigurerMotion::GetTubeHorizontalLandmarkDirection() { return atoi((const char*)ConfigurationManager::Instance()->GetConfigTubeHorizontal("TubeHorizontalLandmarkDirection")); } int ConfigurerMotion::GetTubeHorizontalAxisPositiveDirection() { return atoi((const char*)ConfigurationManager::Instance()->GetConfigTubeHorizontal("TubeHorizontalAxisPositiveDirection")); } int ConfigurerMotion::GetTubeHorizontalNormalPeriod() { return atoi((const char*)ConfigurationManager::Instance()->GetConfigTubeHorizontal("NormalHorizontalPeriod")); } float ConfigurerMotion::GetTubeHeightLowLandmarkPos() { return atof((const char*)ConfigurationManager::Instance()->GetConfigTubeVertical("TubeHeightLowLandmarkPos")); } float ConfigurerMotion::GetTubeAngleLowLandmarkPos() { return atof((const char*)ConfigurationManager::Instance()->GetConfigTubeRotation("TubeAngleLowLandmarkPos")); } float ConfigurerMotion::GetTubeHorizontalLowLandmarkPos() { return atof((const char*)ConfigurationManager::Instance()->GetConfigTubeHorizontal("TubeHorizontalLeftLandmarkPos")); } void ConfigurerMotion::UpdateResetLowPositionTubleAngle(string lowposition) { ResDataObject param; param.add("TubeAngleLowLandmarkPos", lowposition.c_str()); ConfigurationManager::Instance()->UpdateMotionConfigTubeAngle("TubeAngleLowLandmarkPos", param); } void ConfigurerMotion::UpdateResetEncoderZeroPositionTubeAngle(string encoderzeroposition) { ResDataObject param; param.add("AbsoluteValueAtTubeAngleOrigin", encoderzeroposition.c_str()); ConfigurationManager::Instance()->UpdateMotionConfigTubeAngle("AbsoluteValueAtTubeAngleOrigin", param); } void ConfigurerMotion::UpdateResetLowPositionTubleHeight(string lowposition) { ResDataObject param; param.add("TubeHeightLowLandmarkPos", lowposition.c_str()); ConfigurationManager::Instance()->UpdateMotionConfigTubeHeight("TubeHeightLowLandmarkPos", param); } void ConfigurerMotion::UpdateResetEncoderZeroPositionTubeHeight(string encoderzeroposition) { ResDataObject param; param.add("AbsoluteValueAtTubeHeightOrigin", encoderzeroposition.c_str()); ConfigurationManager::Instance()->UpdateMotionConfigTubeHeight("AbsoluteValueAtTubeHeightOrigin", param); } void ConfigurerMotion::UpdateResetLowPositionTubleHorizontal(string lowposition) { ResDataObject param; param.add("TubeHorizontalLeftLandmarkPos", lowposition.c_str()); ConfigurationManager::Instance()->UpdateMotionConfigTubeHorizontal("TubeHorizontalLeftLandmarkPos", param); } void ConfigurerMotion::UpdateResetEncoderZeroPositionTubeHorizontal(string encoderzeroposition) { ResDataObject param; param.add("AbsoluteValueAtTubeHorizontalOrigin", encoderzeroposition.c_str()); ConfigurationManager::Instance()->UpdateMotionConfigTubeHorizontal("AbsoluteValueAtTubeHorizontalOrigin", param); }