123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472 |
- #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);
- }
|