资讯详情

QGC GuidedActionController.qml模式和toolBarIndicators 解锁和构型切 控制流程解析

解析GuidedActionController实现模式控制过程

总结模式

actionRTL actionLand actionTakeoff actionResumeMission、actionResumeMissionUploadFail actionResumeMissionUploadFail、actionContinueMission actionMVStartMission actionArm actionDisarm actionEmergencyStop actionChangeAlt actionGoto actionSetWaypoint actionOrbit actionLandAbort actionPause actionMVPause actionVtolTransitionToFwdFlight actionVtolTransitionToFwdFlight actionROI

模式解析

通过不同的不同的方式进行控制MAVLINK协议进行上传到机载端

1.MAVLINK_MSG_ID_SET_MODE

2.MAVLINK_MSG_ID_COMMAND_INT

3.MAVLINK_MSG_ID_COMMAND_LONG

4.MAVLINK_MSG_ID_MISSION_COUNT

根据协议对所有模式切换进行分类

1.使用MAVLINK_MSG_ID_SET_MODE:

actionRTLactionLandactionStartMission、actionContinueMission、actionMVStartMission

以RTL为例:

CuideActionController-->executeAction()-->vehicle.cc.guideModeAction()-->firmwarePlugin->guideModeAction()-->_setFlightModeAndValidate()-->setFlightMode();

2.MAVLINK_MSG_ID_COMMAND_INT:

actionGoto、actionOrbit、actionROI

以actionChangeAlt为例:

CuideActionController-->executeAction()-->vehicle.cc.guidedModeChangeAltitude()-->firmwarePlugin->guidedModeChangeAltitude()-->vehicle->sendMavCommand

3.MAVLINK_MSG_ID_COMMAND_LONG:

actionEmergencyStop、actionChangeAlt、actionTakeoff、actionArm、actionDisarm、actionVtolTransitionToFwdFlight、actionVtolTransitionToFwdFlight、actionLandAbort、actionPause、actionMVPause、

其中arm和Disarm流程一致,直接变化vehicle.armed属性值,属性值Q_PROPERTY绑定,然后触发setArmed和armedChanged;

其他模式流程相同,因此Takeoff为例:

 

4.MAVLINK_MSG_ID_MISSION_COUNT:

actionResumeMission、actionResumeMissionUploadFail

5.MAVLINK_MSG_ID_MISSION_SET_CURRENT:actionSetWaypoint

qml->ArmedIndicator.qml

构型切换->VtolModeIndicator.qml

以解锁过程为例:

实现以singal方式实现:

在MainRootWindow.qml中创建singal;

在FlightDisplayView.qml中使用Connnections与guideController进行连接;

跳转confirmAction;

再跳转到executeAction(),以后和GuideActionController中相同;

标签: 轮辐式传感器构型

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台