add setDownwardShootingMode

This commit is contained in:
Eason Yi 2024-07-11 17:20:40 +08:00
parent 2bd20331d5
commit a63faacdbe
10 changed files with 42 additions and 3 deletions

View File

@ -58,6 +58,7 @@ public:
void *extenData);
uint32_t setGNSSInfo(float lng, float lat, float alt, uint32_t nState, float relAlt);
uint32_t setDownwardShootingMode();
uint32_t extensionFuntions(void *cmd);
static amovGimbal::amovGimbalBase *creat(amovGimbal::IOStreamBase *_IO)
{

View File

@ -249,3 +249,8 @@ uint32_t GX40GimbalDriver::setGNSSInfo(float lng, float lat, float alt, uint32_t
carrierStateMutex.unlock();
return sizeof(GX40::GIMBAL_SECONDARY_MASTER_FRAME_T);
}
uint32_t GX40GimbalDriver::setDownwardShootingMode()
{
return pack(GX40::GIMBAL_CMD_MODE_OVERLOCK,nullptr,0);
}

View File

@ -87,6 +87,7 @@ namespace amovGimbal
const AMOV_GIMBAL_VELOCITY_T &seppd,
const AMOV_GIMBAL_VELOCITY_T &acc, void *extenData);
uint32_t setGNSSInfo(float lng, float lat, float alt, uint32_t nState, float relAlt);
uint32_t setDownwardShootingMode();
uint32_t extensionFuntions(void *cmd);
// block functions

View File

@ -40,6 +40,7 @@ extern "C"
AMOV_GIMBAL_VELOCITY_T *speed,
AMOV_GIMBAL_VELOCITY_T *acc, void *extenData, void *handle);
uint32_t amovGimbalSetGNSSInfo(float lng, float lat, float alt, uint32_t nState, float relAlt, void *handle);
uint32_t amovGimbalSetDownwardShootingMode(void* handle);
uint32_t amovGimbalExtensionFuntions(void *cmd, void *handle);
void getGimabalState(AMOV_GIMBAL_STATE_T *state, void *handle);
void getGimbalType(char *type, void *handle);

View File

@ -168,6 +168,17 @@ uint32_t amovGimbal::IamovGimbalBase::setGNSSInfo(float lng, float lat, float al
return 0;
}
uint32_t amovGimbal::gimbal::setDownwardShootingMode()
{
return ((amovGimbalBase*)(this->devHandle))->setDownwardShootingMode();
}
uint32_t amovGimbal::IamovGimbalBase::setDownwardShootingMode()
{
return 0;
}
uint32_t amovGimbal::gimbal::extensionFuntions(void *cmd)
{
return ((amovGimbalBase *)(this->devHandle))->extensionFuntions(cmd);

View File

@ -110,6 +110,12 @@ uint32_t amovGimbalSetGNSSInfo(float lng, float lat, float alt, uint32_t nState,
return ((amovGimbal::gimbal *)handle)->setGNSSInfo(lng, lat, alt, nState, relAlt);
}
uint32_t amovGimbalSetDownwardShootingMode(void* handle)
{
return ((amovGimbal::gimbal*)handle)->setDownwardShootingMode();
}
uint32_t amovGimbalExtensionFuntions(void *cmd, void *handle)
{
return ((amovGimbal::gimbal *)handle)->extensionFuntions(cmd);

View File

@ -92,8 +92,10 @@ namespace amovGimbal
virtual uint32_t attitudeCorrection(const AMOV_GIMBAL_QUATERNION_T &quaterion, const AMOV_GIMBAL_VELOCITY_T &speed, const AMOV_GIMBAL_VELOCITY_T &acc, void *extenData);
virtual uint32_t attitudeCorrection(const AMOV_GIMBAL_POS_T &pos, const AMOV_GIMBAL_VELOCITY_T &seppd, const AMOV_GIMBAL_VELOCITY_T &acc, void *extenData);
virtual uint32_t setGNSSInfo(float lng, float lat, float alt, uint32_t nState, float relAlt);
virtual uint32_t setDownwardShootingMode();
virtual uint32_t extensionFuntions(void *cmd);
// block functions
virtual bool setGimbalPosBlock(const AMOV_GIMBAL_POS_T &pos);
virtual bool setGimabalHomeBlock(void);

View File

@ -554,6 +554,13 @@ void sv::Gimbal::attitudeCorrection(const GimbalPosT &pos,
pdevTemp->attitudeCorrection(temp_p, temp_v1, temp_v2, extenData);
}
void sv::Gimbal::setDownwardShootingMode()
{
amovGimbal::gimbal* pdevTemp = (amovGimbal::gimbal*)this->dev;
pdevTemp->setDownwardShootingMode();
}
sv::Gimbal::~Gimbal()
{
removeIO(this);

View File

@ -194,6 +194,8 @@ namespace sv
const GimbalVelocityT &speed,
const GimbalVelocityT &acc, void *extenData);
void setDownwardShootingMode();
//! Set gimbal angles
/*!
\param roll: eular roll angle (-60, 60) degree

View File

@ -35,21 +35,24 @@ void gimbalNoTrack(void)
int main(int argc, char *argv[])
{
// 实例化吊舱
gimbal = new sv::Gimbal(sv::GimbalType::G1, sv::GimbalLink::SERIAL);
gimbal = new sv::Gimbal(sv::GimbalType::GX40, sv::GimbalLink::SERIAL);
// 使用 /dev/ttyUSB0 作为控制串口
gimbal->setSerialPort("/dev/ttyUSB0");
// 以GimableCallback作为状态回调函数启用吊舱控制
gimbal->open(GimableCallback);
gimbal->setDownwardShootingMode();
// 定义相机
sv::Camera cap;
// 设置相机流媒体地址为 192.168.2.64
cap.setIp("192.168.2.64");
cap.setIp("192.168.144.108");
// 设置获取画面分辨率为720P
cap.setWH(1280, 720);
// 设置视频帧率为30帧
cap.setFps(30);
// 开启相机
cap.open(sv::CameraType::G1);
cap.open(sv::CameraType::GX40);
// 定义一个新的窗口,可在上面进行框选操作
cv::namedWindow(RGB_WINDOW);