| 
						
						
						
					 | 
					@ -1,6 +1,5 @@ | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					#include "ServoController.h" | 
					 | 
					 | 
					#include "ServoController.h" | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					ServoController::ServoController() | 
					 | 
					 | 
					ServoController::ServoController() | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					{ | 
					 | 
					 | 
					{ | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					} | 
					 | 
					 | 
					} | 
				
			
			
		
	
	
		
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
					@ -15,7 +14,6 @@ ModbusConfig ServoController::initiateConfig() | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					    _config.stopBits = QSerialPort::OneStop; | 
					 | 
					 | 
					    _config.stopBits = QSerialPort::OneStop; | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					    _config.responseTime = 2000; | 
					 | 
					 | 
					    _config.responseTime = 2000; | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					    return _config; | 
					 | 
					 | 
					    return _config; | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					} | 
					 | 
					 | 
					} | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					/*************************************************************************************************/ | 
					 | 
					 | 
					/*************************************************************************************************/ | 
				
			
			
		
	
	
		
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
					@ -31,6 +29,7 @@ void ServoController::enableDrive() | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					    apply(); | 
					 | 
					 | 
					    apply(); | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					} | 
					 | 
					 | 
					} | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					/*************************************************************************************************/ | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					void ServoController::setStartStop(bool start) | 
					 | 
					 | 
					void ServoController::setStartStop(bool start) | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					{ | 
					 | 
					 | 
					{ | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					    if(start) | 
					 | 
					 | 
					    if(start) | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
					@ -76,7 +75,6 @@ void ServoController::init() | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					{ | 
					 | 
					 | 
					{ | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					    _modbusWrapper.init(); | 
					 | 
					 | 
					    _modbusWrapper.init(); | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					    _modbusWrapper.connectToDevice(initiateConfig()); | 
					 | 
					 | 
					    _modbusWrapper.connectToDevice(initiateConfig()); | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					} | 
					 | 
					 | 
					} | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					/*************************************************************************************************/ | 
					 | 
					 | 
					/*************************************************************************************************/ | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
					@ -112,44 +110,31 @@ void ServoController::sector(double startAngle, double stopAngle, double speed) | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					/*************************************************************************************************/ | 
					 | 
					 | 
					/*************************************************************************************************/ | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					double ServoController::getSpeed() | 
					 | 
					 | 
					double ServoController::getSpeed() | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					{ | 
					 | 
					 | 
					{ | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					    double speed; | 
					 | 
					 | 
					    auto speedVector = _modbusWrapper.getHoldingRegister(SRV_AZIMUTH_SPEED_REG, 1); | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					    QVector<quint16> speedVector; | 
					 | 
					 | 
					    return (speedVector[0] / SRV_SPEED_FACTOR); | 
				
			
			
				
				
			
		
	
		
		
			
				
					 | 
					 | 
					    speedVector = _modbusWrapper.getHoldingRegister(SRV_AZIMUTH_SPEED_REG,1); | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					    speed  = speedVector[0] / SRV_SPEED_FACTOR; | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					    return speed; | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
	
		
		
	
		
		
			
				
					 | 
					 | 
					} | 
					 | 
					 | 
					} | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					/*************************************************************************************************/ | 
					 | 
					 | 
					/*************************************************************************************************/ | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					double ServoController::getStopAngle() | 
					 | 
					 | 
					double ServoController::getStopAngle() | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					{ | 
					 | 
					 | 
					{ | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					    double speed; | 
					 | 
					 | 
					    auto speedVector1 = _modbusWrapper.getHoldingRegister(SRV_STOP_ANGLE_INT_PART_REG, 1); | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					    QVector<quint16> speedVector1, speedVector2; | 
					 | 
					 | 
					    auto speedVector2 = _modbusWrapper.getHoldingRegister(SRV_STOP_ANGLE_FRAC_PART_REG, 1); | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					    speedVector1 = _modbusWrapper.getHoldingRegister(SRV_STOP_ANGLE_INT_PART_REG,1); | 
					 | 
					 | 
					    return ((speedVector1[0] + speedVector2[0]) / SRV_ANGLE_FACTOR); | 
				
			
			
				
				
			
		
	
		
		
			
				
					 | 
					 | 
					    speedVector2 = _modbusWrapper.getHoldingRegister(SRV_STOP_ANGLE_FRAC_PART_REG,1); | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					    speed  = (speedVector1[0] + speedVector2[0]) / SRV_ANGLE_FACTOR; | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					    return speed; | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
	
		
		
	
		
		
	
		
		
			
				
					 | 
					 | 
					} | 
					 | 
					 | 
					} | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					/*************************************************************************************************/ | 
					 | 
					 | 
					/*************************************************************************************************/ | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					double ServoController::getStartAngle() | 
					 | 
					 | 
					double ServoController::getStartAngle() | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					{ | 
					 | 
					 | 
					{ | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					    double speed; | 
					 | 
					 | 
					    auto speedVector1 = _modbusWrapper.getHoldingRegister(SRV_START_ANGLE_INT_PART_REG, 1); | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					    QVector<quint16> speedVector1, speedVector2; | 
					 | 
					 | 
					    auto speedVector2 = _modbusWrapper.getHoldingRegister(SRV_START_ANGLE_FRAC_PART_REG, 1); | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					    speedVector1 = _modbusWrapper.getHoldingRegister(SRV_START_ANGLE_INT_PART_REG,1); | 
					 | 
					 | 
					    return ((speedVector1[0] + speedVector2[0]) / SRV_ANGLE_FACTOR); | 
				
			
			
				
				
			
		
	
		
		
			
				
					 | 
					 | 
					    speedVector2 = _modbusWrapper.getHoldingRegister(SRV_START_ANGLE_FRAC_PART_REG,1); | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					    speed  = (speedVector1[0] + speedVector2[0]) / SRV_ANGLE_FACTOR; | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					    return speed; | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
	
		
		
	
		
		
	
		
		
			
				
					 | 
					 | 
					} | 
					 | 
					 | 
					} | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					/*************************************************************************************************/ | 
					 | 
					 | 
					/*************************************************************************************************/ | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					double ServoController::getAngleOffset() | 
					 | 
					 | 
					double ServoController::getAngleOffset() | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					{ | 
					 | 
					 | 
					{ | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					    double angleOffset; | 
					 | 
					 | 
					    auto angleOffsetVector = _modbusWrapper.getHoldingRegister(SRV_ZERO_OFFSET_ANGLE, 1); | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					    QVector<quint16> angleOffsetVector; | 
					 | 
					 | 
					    return (angleOffsetVector[0] / SRV_ANGLE_FACTOR); | 
				
			
			
				
				
			
		
	
		
		
			
				
					 | 
					 | 
					    angleOffsetVector = _modbusWrapper.getHoldingRegister(SRV_ZERO_OFFSET_ANGLE,1); | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					    angleOffset  = angleOffsetVector[0] / SRV_ANGLE_FACTOR; | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					    return angleOffset; | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
	
		
		
	
		
		
			
				
					 | 
					 | 
					} | 
					 | 
					 | 
					} | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					/*************************************************************************************************/ | 
					 | 
					 | 
					/*************************************************************************************************/ | 
				
			
			
		
	
	
		
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
					@ -161,13 +146,8 @@ void ServoController::setAngleOffset(double offset) | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					/*************************************************************************************************/ | 
					 | 
					 | 
					/*************************************************************************************************/ | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					double ServoController::getAzimuth() | 
					 | 
					 | 
					double ServoController::getAzimuth() | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					{ | 
					 | 
					 | 
					{ | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					    double azimuth; | 
					 | 
					 | 
					    auto azimuthVector = _modbusWrapper.getHoldingRegister(SRV_AZIMUTH_REG,1); | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					    QVector<quint16> azimuthVector; | 
					 | 
					 | 
					    return (azimuthVector[0] / SRV_ANGLE_FACTOR); | 
				
			
			
				
				
			
		
	
		
		
			
				
					 | 
					 | 
					    azimuthVector = _modbusWrapper.getHoldingRegister(SRV_AZIMUTH_REG,1); | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					    azimuth  = azimuthVector[0] / SRV_ANGLE_FACTOR; | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					    return azimuth; | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
	
		
		
	
		
		
			
				
					 | 
					 | 
					} | 
					 | 
					 | 
					} | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
						
					 | 
					
  |