mirror of
https://bitbucket.org/librepilot/librepilot.git
synced 2025-02-21 11:54:15 +01:00
LP-29 move common uav related functions to uav.js
This commit is contained in:
parent
9b100bea4a
commit
12bfee2df3
@ -6,6 +6,8 @@ import UAVTalk.AttitudeState 1.0
|
|||||||
import UAVTalk.HomeLocation 1.0
|
import UAVTalk.HomeLocation 1.0
|
||||||
import UAVTalk.GPSPositionSensor 1.0
|
import UAVTalk.GPSPositionSensor 1.0
|
||||||
|
|
||||||
|
import "../uav.js" as UAV
|
||||||
|
|
||||||
OSGViewport {
|
OSGViewport {
|
||||||
anchors.fill: parent
|
anchors.fill: parent
|
||||||
focus: true
|
focus: true
|
||||||
@ -46,43 +48,8 @@ OSGViewport {
|
|||||||
modelData: modelTransformNode
|
modelData: modelTransformNode
|
||||||
sceneData: terrainNode
|
sceneData: terrainNode
|
||||||
|
|
||||||
attitude: uavAttitude()
|
attitude: UAV.attitude()
|
||||||
position: uavPosition()
|
position: UAV.position()
|
||||||
|
|
||||||
function uavAttitude() {
|
|
||||||
return Qt.vector3d(attitudeState.pitch, attitudeState.roll, -attitudeState.yaw);
|
|
||||||
}
|
|
||||||
|
|
||||||
function uavPosition() {
|
|
||||||
switch(gpsPositionSensor.status) {
|
|
||||||
case Status.Fix2D:
|
|
||||||
case Status.Fix3D:
|
|
||||||
return uavGPSPosition();
|
|
||||||
case Status.NoFix:
|
|
||||||
case Status.NoGPS:
|
|
||||||
default:
|
|
||||||
return (homeLocation.set == Set.True) ? uavHomePosition() : uavDefaultPosition();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
function uavGPSPosition() {
|
|
||||||
return Qt.vector3d(
|
|
||||||
gpsPositionSensor.longitude / 10000000.0,
|
|
||||||
gpsPositionSensor.latitude / 10000000.0,
|
|
||||||
gpsPositionSensor.altitude);
|
|
||||||
}
|
|
||||||
|
|
||||||
function uavHomePosition() {
|
|
||||||
return Qt.vector3d(
|
|
||||||
homeLocation.longitude / 10000000.0,
|
|
||||||
homeLocation.latitude / 10000000.0,
|
|
||||||
homeLocation.altitude);
|
|
||||||
}
|
|
||||||
|
|
||||||
function uavDefaultPosition() {
|
|
||||||
return Qt.vector3d(qmlWidget.longitude, qmlWidget.latitude, qmlWidget.altitude);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
OSGTransformNode {
|
OSGTransformNode {
|
||||||
|
@ -6,6 +6,8 @@ import UAVTalk.AttitudeState 1.0
|
|||||||
import UAVTalk.HomeLocation 1.0
|
import UAVTalk.HomeLocation 1.0
|
||||||
import UAVTalk.GPSPositionSensor 1.0
|
import UAVTalk.GPSPositionSensor 1.0
|
||||||
|
|
||||||
|
import "../uav.js" as UAV
|
||||||
|
|
||||||
OSGViewport {
|
OSGViewport {
|
||||||
id: fullview
|
id: fullview
|
||||||
//anchors.fill: parent
|
//anchors.fill: parent
|
||||||
@ -28,6 +30,7 @@ OSGViewport {
|
|||||||
dateTime: getDateTime()
|
dateTime: getDateTime()
|
||||||
minimumAmbientLight: qmlWidget.minimumAmbientLight
|
minimumAmbientLight: qmlWidget.minimumAmbientLight
|
||||||
|
|
||||||
|
// MOVE...
|
||||||
function getDateTime() {
|
function getDateTime() {
|
||||||
switch(qmlWidget.timeMode) {
|
switch(qmlWidget.timeMode) {
|
||||||
case TimeMode.Local:
|
case TimeMode.Local:
|
||||||
@ -53,43 +56,8 @@ OSGViewport {
|
|||||||
clampToTerrain: true
|
clampToTerrain: true
|
||||||
manipulatorMode: ManipulatorMode.User
|
manipulatorMode: ManipulatorMode.User
|
||||||
|
|
||||||
attitude: uavAttitude()
|
attitude: UAV.attitude()
|
||||||
position: uavPosition()
|
position: UAV.position()
|
||||||
|
|
||||||
function uavAttitude() {
|
|
||||||
return Qt.vector3d(attitudeState.pitch, attitudeState.roll, -attitudeState.yaw);
|
|
||||||
}
|
|
||||||
|
|
||||||
function uavPosition() {
|
|
||||||
switch(gpsPositionSensor.status) {
|
|
||||||
case Status.Fix2D:
|
|
||||||
case Status.Fix3D:
|
|
||||||
return uavGPSPosition();
|
|
||||||
case Status.NoFix:
|
|
||||||
case Status.NoGPS:
|
|
||||||
default:
|
|
||||||
return (homeLocation.set == Set.True) ? uavHomePosition() : uavDefaultPosition();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
function uavGPSPosition() {
|
|
||||||
return Qt.vector3d(
|
|
||||||
gpsPositionSensor.longitude / 10000000.0,
|
|
||||||
gpsPositionSensor.latitude / 10000000.0,
|
|
||||||
gpsPositionSensor.altitude);
|
|
||||||
}
|
|
||||||
|
|
||||||
function uavHomePosition() {
|
|
||||||
return Qt.vector3d(
|
|
||||||
homeLocation.longitude / 10000000.0,
|
|
||||||
homeLocation.latitude / 10000000.0,
|
|
||||||
homeLocation.altitude);
|
|
||||||
}
|
|
||||||
|
|
||||||
function uavDefaultPosition() {
|
|
||||||
return Qt.vector3d(qmlWidget.longitude, qmlWidget.latitude, qmlWidget.altitude);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
Rectangle {
|
Rectangle {
|
||||||
|
41
ground/gcs/src/share/qml/uav.js
Normal file
41
ground/gcs/src/share/qml/uav.js
Normal file
@ -0,0 +1,41 @@
|
|||||||
|
// ***********************
|
||||||
|
// common.js
|
||||||
|
//
|
||||||
|
// Common javascript uav utils
|
||||||
|
//
|
||||||
|
// Librepilot
|
||||||
|
// ***********************
|
||||||
|
|
||||||
|
function attitude() {
|
||||||
|
return Qt.vector3d(attitudeState.pitch, attitudeState.roll, -attitudeState.yaw);
|
||||||
|
}
|
||||||
|
|
||||||
|
function position() {
|
||||||
|
switch(gpsPositionSensor.status) {
|
||||||
|
case Status.Fix2D:
|
||||||
|
case Status.Fix3D:
|
||||||
|
return gpsPosition();
|
||||||
|
case Status.NoFix:
|
||||||
|
case Status.NoGPS:
|
||||||
|
default:
|
||||||
|
return (homeLocation.set == Set.True) ? homePosition() : defaultPosition();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function gpsPosition() {
|
||||||
|
return Qt.vector3d(
|
||||||
|
gpsPositionSensor.longitude / 10000000.0,
|
||||||
|
gpsPositionSensor.latitude / 10000000.0,
|
||||||
|
gpsPositionSensor.altitude);
|
||||||
|
}
|
||||||
|
|
||||||
|
function homePosition() {
|
||||||
|
return Qt.vector3d(
|
||||||
|
homeLocation.longitude / 10000000.0,
|
||||||
|
homeLocation.latitude / 10000000.0,
|
||||||
|
homeLocation.altitude);
|
||||||
|
}
|
||||||
|
|
||||||
|
function defaultPosition() {
|
||||||
|
return Qt.vector3d(qmlWidget.longitude, qmlWidget.latitude, qmlWidget.altitude);
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user