49 lines
1.2 KiB
C++
49 lines
1.2 KiB
C++
|
|
#include "GDUHolderManager.h"
|
||
|
|
#include "GDUDroneManager.h"
|
||
|
|
GDUHolderManager::GDUHolderManager(GDUDroneManager* gduDroneManager)
|
||
|
|
{
|
||
|
|
cmdGenerator = new GDUCmdGenerator();
|
||
|
|
_gduDroneManager = gduDroneManager;
|
||
|
|
}
|
||
|
|
|
||
|
|
|
||
|
|
void GDUHolderManager::beginControlHolder(int roll, int pitch, int orientation)
|
||
|
|
{
|
||
|
|
if(control == nullptr){
|
||
|
|
control = new GDUHolderControl();
|
||
|
|
moveToThread(control);
|
||
|
|
control->start();
|
||
|
|
}
|
||
|
|
control->update(roll,pitch,orientation);
|
||
|
|
}
|
||
|
|
|
||
|
|
void GDUHolderManager::stopControlHolder()
|
||
|
|
{
|
||
|
|
if(control != nullptr){
|
||
|
|
control->stop();
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
void GDUHolderManager::holderBack2Center(cmdComplete_t block)
|
||
|
|
{
|
||
|
|
GeneratoredData_t cmdData
|
||
|
|
= cmdGenerator->cmdHolderAdjustment(0x10,0,0);
|
||
|
|
_gduDroneManager->sendMessage(cmdData.data,block,cmdData.fullMsgID);
|
||
|
|
}
|
||
|
|
|
||
|
|
void GDUHolderManager::setHolderPitchAngle(int angle, cmdComplete_t block)
|
||
|
|
{
|
||
|
|
GeneratoredData_t cmdData = cmdGenerator->cmdHolderAngleControl(0,angle);
|
||
|
|
_gduDroneManager->sendMessage(cmdData.data,block,cmdData.fullMsgID);
|
||
|
|
}
|
||
|
|
|
||
|
|
void GDUHolderManager::setHolderRoll(int roll,cmdComplete_t block)
|
||
|
|
{
|
||
|
|
GeneratoredData_t cmdData = cmdGenerator->cmdHolderRollControl(roll);
|
||
|
|
_gduDroneManager->sendMessage(cmdData.data,block,cmdData.fullMsgID);
|
||
|
|
}
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
|