1
0
mirror of https://bitbucket.org/librepilot/librepilot.git synced 2025-02-20 10:54:14 +01:00

LP-29 move common uav related functions to uav.js

This commit is contained in:
Philippe Renon 2015-11-29 20:13:32 +01:00
parent 9b100bea4a
commit 12bfee2df3
3 changed files with 50 additions and 74 deletions

View File

@ -6,6 +6,8 @@ import UAVTalk.AttitudeState 1.0
import UAVTalk.HomeLocation 1.0
import UAVTalk.GPSPositionSensor 1.0
import "../uav.js" as UAV
OSGViewport {
anchors.fill: parent
focus: true
@ -46,43 +48,8 @@ OSGViewport {
modelData: modelTransformNode
sceneData: terrainNode
attitude: uavAttitude()
position: uavPosition()
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);
}
attitude: UAV.attitude()
position: UAV.position()
}
OSGTransformNode {

View File

@ -6,6 +6,8 @@ import UAVTalk.AttitudeState 1.0
import UAVTalk.HomeLocation 1.0
import UAVTalk.GPSPositionSensor 1.0
import "../uav.js" as UAV
OSGViewport {
id: fullview
//anchors.fill: parent
@ -28,6 +30,7 @@ OSGViewport {
dateTime: getDateTime()
minimumAmbientLight: qmlWidget.minimumAmbientLight
// MOVE...
function getDateTime() {
switch(qmlWidget.timeMode) {
case TimeMode.Local:
@ -53,43 +56,8 @@ OSGViewport {
clampToTerrain: true
manipulatorMode: ManipulatorMode.User
attitude: uavAttitude()
position: uavPosition()
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);
}
attitude: UAV.attitude()
position: UAV.position()
}
Rectangle {

View 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);
}