Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
erp5
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Léo-Paul Géneau
erp5
Commits
4174385c
Commit
4174385c
authored
Jul 27, 2023
by
Roque
Browse files
Options
Browse Files
Download
Plain Diff
Drone simulator API refactoring
See merge request
nexedi/erp5!1803
parents
720d86ee
0b781233
Changes
8
Hide whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
91 additions
and
160 deletions
+91
-160
bt5/erp5_officejs_drone_simulator/PathTemplateItem/web_page_module/drone_simulator_dronelogfollower_js.js
...em/web_page_module/drone_simulator_dronelogfollower_js.js
+4
-2
bt5/erp5_officejs_drone_simulator/PathTemplateItem/web_page_module/drone_simulator_dronelogfollower_js.xml
...m/web_page_module/drone_simulator_dronelogfollower_js.xml
+2
-2
bt5/erp5_officejs_drone_simulator/PathTemplateItem/web_page_module/drone_simulator_fixedwingdrone_js.js
...Item/web_page_module/drone_simulator_fixedwingdrone_js.js
+48
-109
bt5/erp5_officejs_drone_simulator/PathTemplateItem/web_page_module/drone_simulator_fixedwingdrone_js.xml
...tem/web_page_module/drone_simulator_fixedwingdrone_js.xml
+3
-3
bt5/erp5_officejs_drone_simulator/PathTemplateItem/web_page_module/drone_simulator_logic_js.js
...hTemplateItem/web_page_module/drone_simulator_logic_js.js
+25
-35
bt5/erp5_officejs_drone_simulator/PathTemplateItem/web_page_module/drone_simulator_logic_js.xml
...TemplateItem/web_page_module/drone_simulator_logic_js.xml
+2
-2
bt5/erp5_officejs_drone_simulator/PathTemplateItem/web_page_module/ojs_drone_simulator_script_page_js.js
...tem/web_page_module/ojs_drone_simulator_script_page_js.js
+4
-4
bt5/erp5_officejs_drone_simulator/PathTemplateItem/web_page_module/ojs_drone_simulator_script_page_js.xml
...em/web_page_module/ojs_drone_simulator_script_page_js.xml
+3
-3
No files found.
bt5/erp5_officejs_drone_simulator/PathTemplateItem/web_page_module/drone_simulator_dronelogfollower_js.js
View file @
4174385c
...
...
@@ -43,9 +43,8 @@ var DroneLogAPI = /** @class */ (function () {
return
log_entry_list
;
}
var
log
=
this
.
_drone_info
.
log_content
,
entry_1
,
entry_2
,
interval
,
map_dict
=
this
.
_mapManager
.
getMapInfo
(),
min_height
=
15
,
converted_log_point_list
=
[],
i
,
splitted_log_entry
,
x
,
y
,
position
,
lat
,
lon
,
height
,
timestamp
,
i
,
splitted_log_entry
,
position
,
lat
,
lon
,
height
,
timestamp
,
time_offset
=
1
,
log_entry_list
=
getLogEntries
(
log
);
//XXX: Patch to determine log time format (if this is standarized, drop it)
if
(
log_entry_list
[
0
]
&&
log_entry_list
[
1
])
{
...
...
@@ -208,6 +207,9 @@ var DroneLogAPI = /** @class */ (function () {
DroneLogAPI
.
prototype
.
exit
=
function
(
drone
)
{
return
;
};
DroneLogAPI
.
prototype
.
set_loiter_mode
=
function
(
loiter
)
{
return
;
};
return
DroneLogAPI
;
}());
\ No newline at end of file
bt5/erp5_officejs_drone_simulator/PathTemplateItem/web_page_module/drone_simulator_dronelogfollower_js.xml
View file @
4174385c
...
...
@@ -246,7 +246,7 @@
</item>
<item>
<key>
<string>
serial
</string>
</key>
<value>
<string>
100
6.43901.65103.9898
</string>
</value>
<value>
<string>
100
9.38419.20212.62293
</string>
</value>
</item>
<item>
<key>
<string>
state
</string>
</key>
...
...
@@ -266,7 +266,7 @@
</tuple>
<state>
<tuple>
<float>
16
77599947.8
</float>
<float>
16
88635412.87
</float>
<string>
UTC
</string>
</tuple>
</state>
...
...
bt5/erp5_officejs_drone_simulator/PathTemplateItem/web_page_module/drone_simulator_fixedwingdrone_js.js
View file @
4174385c
...
...
@@ -9,8 +9,6 @@ var FixedWingDroneAPI = /** @class */ (function () {
var
DEFAULT_SPEED
=
16
,
EARTH_GRAVITY
=
9.81
,
LOITER_LIMIT
=
30
,
LOITER_RADIUS_FACTOR
=
0.60
,
LOITER_SPEED_FACTOR
=
1.5
,
MAX_ACCELERATION
=
6
,
MAX_DECELERATION
=
1
,
MIN_SPEED
=
12
,
...
...
@@ -29,10 +27,8 @@ var FixedWingDroneAPI = /** @class */ (function () {
this
.
_flight_parameters
=
flight_parameters
;
this
.
_id
=
id
;
this
.
_drone_info
=
drone_info
;
this
.
_loiter_radius
=
0
;
this
.
_last_loiter_point_reached
=
-
1
;
this
.
_loiter_radius
=
100
;
//this._start_altitude = 0;
//this._last_altitude_point_reached = -1;
this
.
_loiter_mode
=
false
;
this
.
_drone_dict_list
=
[];
}
...
...
@@ -146,9 +142,6 @@ var FixedWingDroneAPI = /** @class */ (function () {
*/
FixedWingDroneAPI
.
prototype
.
internal_post_update
=
function
(
drone
)
{
var
_this
=
this
,
drone_position
=
drone
.
getCurrentPosition
(),
drone_info
;
if
(
_this
.
_loiter_mode
)
{
_this
.
loiter
(
drone
);
}
/*if (_this._start_altitude > 0) { //TODO move start_altitude here
_this.reachAltitude(drone);
}*/
...
...
@@ -158,7 +151,10 @@ var FixedWingDroneAPI = /** @class */ (function () {
'
altitudeAbs
'
:
_this
.
_mapManager
.
getMapInfo
().
start_AMSL
+
drone_position
.
z
,
'
latitude
'
:
drone_position
.
x
,
'
longitude
'
:
drone_position
.
y
'
longitude
'
:
drone_position
.
y
,
'
yaw
'
:
drone
.
getYaw
(),
'
speed
'
:
drone
.
getAirSpeed
(),
'
climbRate
'
:
drone
.
getClimbRate
()
};
_this
.
_drone_dict_list
[
_this
.
_id
]
=
drone_info
;
//broadcast drone info using internal msg
...
...
@@ -171,7 +167,7 @@ var FixedWingDroneAPI = /** @class */ (function () {
};
FixedWingDroneAPI
.
prototype
.
_updateSpeed
=
function
(
drone
,
delta_time
)
{
var
speed
=
drone
.
getSpeed
(),
speedDiff
,
speedUpdate
;
var
speed
=
drone
.
get
Air
Speed
(),
speedDiff
,
speedUpdate
;
if
(
speed
!==
this
.
_targetSpeed
)
{
speedDiff
=
this
.
_targetSpeed
-
speed
;
speedUpdate
=
drone
.
_acceleration
*
delta_time
/
1000
;
...
...
@@ -185,13 +181,31 @@ var FixedWingDroneAPI = /** @class */ (function () {
};
FixedWingDroneAPI
.
prototype
.
_updateDirection
=
function
(
drone
,
delta_time
)
{
var
horizontalCoeff
,
newX
,
newY
,
newZ
;
[
newX
,
newZ
]
=
this
.
_getNewYaw
(
drone
,
delta_time
);
var
horizontalCoeff
,
newX
,
newY
,
newZ
,
tangentYaw
;
if
(
this
.
_loiter_mode
&&
Math
.
sqrt
(
Math
.
pow
(
drone
.
_targetCoordinates
.
x
-
drone
.
position
.
x
,
2
)
+
Math
.
pow
(
drone
.
_targetCoordinates
.
y
-
drone
.
position
.
y
,
2
)
)
<=
this
.
_loiter_radius
)
{
tangentYaw
=
this
.
_computeBearing
(
drone
.
position
.
x
,
drone
.
position
.
y
,
drone
.
_targetCoordinates
.
x
,
drone
.
_targetCoordinates
.
y
)
-
90
;
// trigonometric circle is east oriented, yaw angle is clockwise
tangentYaw
=
this
.
_toRad
(
-
tangentYaw
+
90
);
newX
=
Math
.
cos
(
tangentYaw
);
newZ
=
Math
.
sin
(
tangentYaw
);
}
else
{
[
newX
,
newZ
]
=
this
.
_getNewYaw
(
drone
,
delta_time
);
}
newY
=
this
.
_getNewAltitude
(
drone
);
horizontalCoeff
=
Math
.
sqrt
(
(
Math
.
pow
(
drone
.
getSpeed
(),
2
)
-
Math
.
pow
(
newY
,
2
)
Math
.
pow
(
drone
.
get
Air
Speed
(),
2
)
-
Math
.
pow
(
newY
,
2
)
)
/
(
Math
.
pow
(
newX
,
2
)
+
Math
.
pow
(
newZ
,
2
)
)
...
...
@@ -235,14 +249,14 @@ var FixedWingDroneAPI = /** @class */ (function () {
verticalSpeed
=
this
.
_computeVerticalSpeed
(
altitudeDiff
,
this
.
getMaxClimbRate
(),
drone
.
getSpeed
(),
drone
.
get
Air
Speed
(),
this
.
getMaxPitchAngle
()
);
}
else
{
verticalSpeed
=
-
this
.
_computeVerticalSpeed
(
Math
.
abs
(
altitudeDiff
),
this
.
getMaxSinkRate
(),
drone
.
getSpeed
(),
drone
.
get
Air
Speed
(),
-
this
.
getMinPitchAngle
()
);
}
...
...
@@ -261,17 +275,13 @@ var FixedWingDroneAPI = /** @class */ (function () {
drone
.
rotation
.
z
+
y
);
};
FixedWingDroneAPI
.
prototype
.
setAltitude
=
function
(
drone
,
altitude
)
{
drone
.
_targetCoordinates
.
z
=
altitude
;
};
FixedWingDroneAPI
.
prototype
.
setSpeed
=
function
(
drone
,
speed
)
{
this
.
_targetSpeed
=
Math
.
max
(
Math
.
min
(
speed
,
this
.
getMaxSpeed
()),
this
.
getMinSpeed
()
);
drone
.
_acceleration
=
(
this
.
_targetSpeed
>
drone
.
getSpeed
())
drone
.
_acceleration
=
(
this
.
_targetSpeed
>
drone
.
get
Air
Speed
())
?
this
.
getMaxAcceleration
()
:
-
this
.
getMaxDeceleration
();
};
...
...
@@ -290,34 +300,18 @@ var FixedWingDroneAPI = /** @class */ (function () {
this
.
_drone_dict_list
[
id
]
=
msg
;
};
FixedWingDroneAPI
.
prototype
.
set_loiter_mode
=
function
(
radius
)
{
this
.
_loiter_mode
=
true
;
if
(
radius
&&
radius
>
LOITER_LIMIT
)
{
this
.
_loiter_radius
=
radius
*
LOITER_RADIUS_FACTOR
;
this
.
_loiter_center
=
this
.
_last_target
;
this
.
_loiter_coordinates
=
[];
this
.
_last_loiter_point_reached
=
-
1
;
var
x1
,
y1
,
angle
;
//for (var angle = 0; angle <360; angle+=8){ //counter-clockwise
for
(
angle
=
360
;
angle
>
0
;
angle
-=
8
)
{
//clockwise
x1
=
this
.
_loiter_radius
*
Math
.
cos
(
this
.
_toRad
(
angle
))
+
this
.
_loiter_center
.
x
;
y1
=
this
.
_loiter_radius
*
Math
.
sin
(
this
.
_toRad
(
angle
))
+
this
.
_loiter_center
.
y
;
this
.
_loiter_coordinates
.
push
(
this
.
getCurrentPosition
(
x1
,
y1
,
this
.
_loiter_center
.
z
)
);
}
}
};
FixedWingDroneAPI
.
prototype
.
internal_setTargetCoordinates
=
function
(
drone
,
coordinates
,
loiter
)
{
if
(
!
loiter
)
{
function
(
drone
,
coordinates
,
radius
)
{
if
(
radius
)
{
this
.
_loiter_mode
=
true
;
if
(
radius
>=
LOITER_LIMIT
)
{
this
.
_loiter_radius
=
radius
;
}
}
else
{
this
.
_loiter_mode
=
false
;
//save last target point to use as next loiter center
this
.
_last_target
=
coordinates
;
}
};
FixedWingDroneAPI
.
prototype
.
sendMsg
=
function
(
msg
,
to
)
{
var
_this
=
this
,
droneList
=
_this
.
_gameManager
.
_droneList
;
...
...
@@ -362,8 +356,8 @@ var FixedWingDroneAPI = /** @class */ (function () {
if
(
isNaN
(
lat
)
||
isNaN
(
lon
)
||
isNaN
(
z
))
{
throw
new
Error
(
'
Target coordinates must be numbers
'
);
}
var
x
=
this
.
_mapManager
.
longitudToX
(
lon
,
this
.
_map_dict
.
width
),
y
=
this
.
_mapManager
.
latitudeToY
(
lat
,
this
.
_map_dict
.
depth
),
var
x
=
this
.
_mapManager
.
longitudToX
(
lon
,
this
.
_map_dict
.
map_size
),
y
=
this
.
_mapManager
.
latitudeToY
(
lat
,
this
.
_map_dict
.
map_size
),
position
=
this
.
_mapManager
.
normalize
(
x
,
y
,
this
.
_map_dict
),
processed_coordinates
;
if
(
z
>
this
.
_map_dict
.
start_AMSL
)
{
...
...
@@ -381,62 +375,6 @@ var FixedWingDroneAPI = /** @class */ (function () {
FixedWingDroneAPI
.
prototype
.
getCurrentPosition
=
function
(
x
,
y
,
z
)
{
return
this
.
_mapManager
.
convertToGeoCoordinates
(
x
,
y
,
z
,
this
.
_map_dict
);
};
FixedWingDroneAPI
.
prototype
.
loiter
=
function
(
drone
)
{
if
(
this
.
_loiter_radius
>
LOITER_LIMIT
)
{
var
drone_pos
=
drone
.
getCurrentPosition
(),
min
=
9999
,
min_i
,
i
,
d
,
next_point
;
//shift loiter circle to nearest point
if
(
this
.
_last_loiter_point_reached
===
-
1
)
{
if
(
!
this
.
shifted
)
{
drone
.
_maxSpeed
=
drone
.
_maxSpeed
*
LOITER_SPEED_FACTOR
;
for
(
i
=
0
;
i
<
this
.
_loiter_coordinates
.
length
;
i
+=
1
)
{
d
=
this
.
_mapManager
.
latLonDistance
([
drone_pos
.
x
,
drone_pos
.
y
],
[
this
.
_loiter_coordinates
[
i
].
x
,
this
.
_loiter_coordinates
[
i
].
y
]);
if
(
d
<
min
)
{
min
=
d
;
min_i
=
i
;
}
}
this
.
_loiter_coordinates
=
this
.
_loiter_coordinates
.
concat
(
this
.
_loiter_coordinates
.
splice
(
0
,
min_i
)
);
this
.
shifted
=
true
;
}
}
else
{
this
.
shifted
=
false
;
}
//stop
if
(
this
.
_last_loiter_point_reached
===
this
.
_loiter_coordinates
.
length
-
1
)
{
if
(
drone
.
_maxSpeed
!==
this
.
getMaxSpeed
())
{
drone
.
_maxSpeed
=
this
.
getMaxSpeed
();
}
drone
.
setDirection
(
0
,
0
,
0
);
return
;
}
//loiter
next_point
=
this
.
_loiter_coordinates
[
this
.
_last_loiter_point_reached
+
1
];
this
.
internal_setTargetCoordinates
(
drone
,
next_point
,
true
);
if
(
this
.
_mapManager
.
latLonDistance
([
drone_pos
.
x
,
drone_pos
.
y
],
[
next_point
.
x
,
next_point
.
y
])
<
1
)
{
this
.
_last_loiter_point_reached
+=
1
;
if
(
this
.
_last_loiter_point_reached
===
this
.
_loiter_coordinates
.
length
-
1
)
{
return
;
}
next_point
=
this
.
_loiter_coordinates
[
this
.
_last_loiter_point_reached
+
1
];
this
.
internal_setTargetCoordinates
(
drone
,
next_point
,
true
);
}
}
};
FixedWingDroneAPI
.
prototype
.
getDroneAI
=
function
()
{
return
null
;
};
...
...
@@ -477,7 +415,7 @@ var FixedWingDroneAPI = /** @class */ (function () {
FixedWingDroneAPI
.
prototype
.
getYawVelocity
=
function
(
drone
)
{
return
360
*
EARTH_GRAVITY
*
Math
.
tan
(
this
.
_toRad
(
this
.
getMaxRollAngle
()))
/
(
2
*
Math
.
PI
*
drone
.
getSpeed
());
/
(
2
*
Math
.
PI
*
drone
.
get
Air
Speed
());
};
FixedWingDroneAPI
.
prototype
.
getYaw
=
function
(
drone
)
{
var
direction
=
drone
.
worldDirection
;
...
...
@@ -493,7 +431,8 @@ var FixedWingDroneAPI = /** @class */ (function () {
};
FixedWingDroneAPI
.
prototype
.
_computeVerticalSpeed
=
function
(
altitude_diff
,
max_climb_rate
,
speed
,
max_pitch
)
{
var
maxVerticalSpeed
=
Math
.
min
(
altitude_diff
,
Math
.
min
(
max_climb_rate
,
speed
));
var
maxVerticalSpeed
=
Math
.
min
(
altitude_diff
,
Math
.
min
(
max_climb_rate
,
speed
));
return
(
this
.
_toDeg
(
Math
.
asin
(
maxVerticalSpeed
/
speed
))
>
max_pitch
)
?
speed
*
Math
.
sin
(
this
.
_toRad
(
max_pitch
))
:
maxVerticalSpeed
;
...
...
@@ -505,13 +444,13 @@ var FixedWingDroneAPI = /** @class */ (function () {
return
angle
*
180
/
Math
.
PI
;
};
FixedWingDroneAPI
.
prototype
.
getClimbRate
=
function
(
drone
)
{
return
drone
.
worldDirection
.
y
*
drone
.
getSpeed
();
return
drone
.
worldDirection
.
y
*
drone
.
get
Air
Speed
();
};
FixedWingDroneAPI
.
prototype
.
getGroundSpeed
=
function
(
drone
)
{
var
direction
=
drone
.
worldDirection
;
return
Math
.
sqrt
(
Math
.
pow
(
direction
.
x
*
drone
.
getSpeed
(),
2
)
+
Math
.
pow
(
direction
.
z
*
drone
.
getSpeed
(),
2
)
Math
.
pow
(
direction
.
x
*
drone
.
get
Air
Speed
(),
2
)
+
Math
.
pow
(
direction
.
z
*
drone
.
get
Air
Speed
(),
2
)
);
};
FixedWingDroneAPI
.
prototype
.
triggerParachute
=
function
(
drone
)
{
...
...
@@ -526,10 +465,10 @@ var FixedWingDroneAPI = /** @class */ (function () {
return
;
};
FixedWingDroneAPI
.
prototype
.
getInitialAltitude
=
function
()
{
return
0
;
return
this
.
_map_dict
.
start_AMSL
;
};
FixedWingDroneAPI
.
prototype
.
getAltitudeAbs
=
function
(
altitude
)
{
return
altitude
;
return
altitude
+
this
.
_map_dict
.
start_AMSL
;
};
FixedWingDroneAPI
.
prototype
.
getMinHeight
=
function
()
{
return
0
;
...
...
bt5/erp5_officejs_drone_simulator/PathTemplateItem/web_page_module/drone_simulator_fixedwingdrone_js.xml
View file @
4174385c
...
...
@@ -226,7 +226,7 @@
</item>
<item>
<key>
<string>
actor
</string>
</key>
<value>
<
string>
zope
</string
>
</value>
<value>
<
unicode>
zope
</unicode
>
</value>
</item>
<item>
<key>
<string>
comment
</string>
</key>
...
...
@@ -240,7 +240,7 @@
</item>
<item>
<key>
<string>
serial
</string>
</key>
<value>
<string>
100
6.36731.10993.50739
</string>
</value>
<value>
<string>
100
9.59163.16294.47701
</string>
</value>
</item>
<item>
<key>
<string>
state
</string>
</key>
...
...
@@ -260,7 +260,7 @@
</tuple>
<state>
<tuple>
<float>
16
77169724.0
</float>
<float>
16
90395852.2
</float>
<string>
UTC
</string>
</tuple>
</state>
...
...
bt5/erp5_officejs_drone_simulator/PathTemplateItem/web_page_module/drone_simulator_logic_js.js
View file @
4174385c
...
...
@@ -31,7 +31,6 @@ var DroneManager = /** @class */ (function () {
this
.
_scene
=
scene
;
this
.
_canUpdate
=
true
;
this
.
_id
=
id
;
this
.
_leader_id
=
0
;
this
.
_API
=
API
;
// var API created on AI evel
// Create the control mesh
this
.
_controlMesh
=
BABYLON
.
Mesh
.
CreateBox
(
...
...
@@ -61,11 +60,6 @@ var DroneManager = /** @class */ (function () {
// swap y and z axis so z axis represents altitude
return
new
BABYLON
.
Vector3
(
vector
.
x
,
vector
.
z
,
vector
.
y
);
};
Object
.
defineProperty
(
DroneManager
.
prototype
,
"
leader_id
"
,
{
get
:
function
()
{
return
this
.
_leader_id
;
},
enumerable
:
true
,
configurable
:
true
});
Object
.
defineProperty
(
DroneManager
.
prototype
,
"
drone_dict
"
,
{
get
:
function
()
{
return
this
.
_API
.
_drone_dict_list
;
},
enumerable
:
true
,
...
...
@@ -140,16 +134,21 @@ var DroneManager = /** @class */ (function () {
* Set a target point to move
*/
DroneManager
.
prototype
.
setTargetCoordinates
=
function
(
x
,
y
,
z
)
{
if
(
!
this
.
_canPlay
)
{
return
;
}
//convert real geo-coordinates to virtual x-y coordinates
this
.
_targetCoordinates
=
this
.
_API
.
processCoordinates
(
x
,
y
,
z
);
return
this
.
_API
.
internal_setTargetCoordinates
(
this
,
this
.
_targetCoordinates
);
this
.
_internal_setTargetCoordinates
(
x
,
y
,
z
);
};
DroneManager
.
prototype
.
_internal_setTargetCoordinates
=
function
(
x
,
y
,
z
,
radius
)
{
if
(
!
this
.
_canPlay
)
{
return
;
}
//convert real geo-coordinates to virtual x-y coordinates
this
.
_targetCoordinates
=
this
.
_API
.
processCoordinates
(
x
,
y
,
z
);
return
this
.
_API
.
internal_setTargetCoordinates
(
this
,
this
.
_targetCoordinates
,
radius
);
};
DroneManager
.
prototype
.
internal_update
=
function
(
delta_time
)
{
var
context
=
this
;
if
(
this
.
_controlMesh
)
{
...
...
@@ -194,7 +193,7 @@ var DroneManager = /** @class */ (function () {
}
return
this
.
_API
.
setStartingPosition
(
this
,
x
,
y
,
z
);
};
DroneManager
.
prototype
.
setSpeed
=
function
(
speed
)
{
DroneManager
.
prototype
.
set
Air
Speed
=
function
(
speed
)
{
if
(
!
this
.
_canPlay
)
{
return
;
}
...
...
@@ -292,20 +291,11 @@ var DroneManager = /** @class */ (function () {
}
return
null
;
};
DroneManager
.
prototype
.
setAltitude
=
function
(
altitude
)
{
if
(
!
this
.
_canPlay
)
{
return
;
}
return
this
.
_API
.
setAltitude
(
this
,
altitude
);
};
/**
* Make the drone loiter (circle with a set radius)
*/
DroneManager
.
prototype
.
loiter
=
function
(
radius
)
{
if
(
!
this
.
_canPlay
)
{
return
;
}
this
.
_API
.
set_loiter_mode
(
radius
);
DroneManager
.
prototype
.
loiter
=
function
(
x
,
y
,
z
,
radius
)
{
this
.
_internal_setTargetCoordinates
(
x
,
y
,
z
,
radius
);
};
DroneManager
.
prototype
.
getFlightParameters
=
function
()
{
if
(
this
.
_API
.
getFlightParameters
)
{
...
...
@@ -316,7 +306,7 @@ var DroneManager = /** @class */ (function () {
DroneManager
.
prototype
.
getYaw
=
function
()
{
return
this
.
_API
.
getYaw
(
this
);
};
DroneManager
.
prototype
.
getSpeed
=
function
()
{
DroneManager
.
prototype
.
get
Air
Speed
=
function
()
{
return
this
.
_speed
;
};
DroneManager
.
prototype
.
getGroundSpeed
=
function
()
{
...
...
@@ -591,13 +581,13 @@ var GameManager = /** @class */ (function () {
(
0
<
_this
.
waiting_update_count
))
{
_this
.
ongoing_update_promise
=
_this
.
_update
(
TIME_DELTA
,
fullscreen
)
.
push
(
function
()
{
_this
.
waiting_update_count
-=
1
;
_this
.
ongoing_update_promise
=
null
;
triggerUpdateIfPossible
();
}).
push
(
undefined
,
function
(
error
)
{
console
.
log
(
"
ERROR on Game Manager update:
"
,
error
);
_this
.
finish_deferred
.
reject
.
bind
(
_this
.
finish_deferred
);
});
_this
.
waiting_update_count
-=
1
;
_this
.
ongoing_update_promise
=
null
;
triggerUpdateIfPossible
();
}).
push
(
undefined
,
function
(
error
)
{
console
.
log
(
"
ERROR on Game Manager update:
"
,
error
);
_this
.
finish_deferred
.
reject
.
bind
(
_this
.
finish_deferred
);
});
}
}
try
{
...
...
bt5/erp5_officejs_drone_simulator/PathTemplateItem/web_page_module/drone_simulator_logic_js.xml
View file @
4174385c
...
...
@@ -240,7 +240,7 @@
</item>
<item>
<key>
<string>
serial
</string>
</key>
<value>
<string>
1009.
7345.31305.44339
</string>
</value>
<value>
<string>
1009.
36979.45339.6075
</string>
</value>
</item>
<item>
<key>
<string>
state
</string>
</key>
...
...
@@ -260,7 +260,7 @@
</tuple>
<state>
<tuple>
<float>
168
7455790.77
</float>
<float>
168
8635184.98
</float>
<string>
UTC
</string>
</tuple>
</state>
...
...
bt5/erp5_officejs_drone_simulator/PathTemplateItem/web_page_module/ojs_drone_simulator_script_page_js.js
View file @
4174385c
...
...
@@ -438,10 +438,10 @@
[
"
my_map_height
"
]]
],
[
"
right
"
,
[[
"
my_start_AMSL
"
],
[
"
my_drone_min_speed
"
],
[
"
my_drone_speed
"
],
[
"
my_drone_max_speed
"
],
[
"
my_drone_max_
acceleration
"
],
[
"
my_drone_max_de
celeration
"
],
[
"
my_drone_max_
roll
"
],
[
"
my_drone_min_pitch
"
],
[
"
my_drone_max
_pitch
"
],
[
"
my_drone_max_sink_rate
"
],
[
"
my_drone_max_climb_rate
"
]]
[[
"
my_start_AMSL
"
],
[
"
my_drone_min_speed
"
],
[
"
my_drone_speed
"
],
[
"
my_drone_max_
speed
"
],
[
"
my_drone_max_ac
celeration
"
],
[
"
my_drone_max_
deceleration
"
],
[
"
my_drone_max_roll
"
],
[
"
my_drone_min
_pitch
"
],
[
"
my_drone_max_
pitch
"
],
[
"
my_drone_max_
sink_rate
"
],
[
"
my_drone_max_climb_rate
"
]]
],
[
"
bottom
"
,
[[
"
my_script
"
]]
...
...
bt5/erp5_officejs_drone_simulator/PathTemplateItem/web_page_module/ojs_drone_simulator_script_page_js.xml
View file @
4174385c
...
...
@@ -232,7 +232,7 @@
</item>
<item>
<key>
<string>
actor
</string>
</key>
<value>
<
string>
zope
</string
>
</value>
<value>
<
unicode>
zope
</unicode
>
</value>
</item>
<item>
<key>
<string>
comment
</string>
</key>
...
...
@@ -246,7 +246,7 @@
</item>
<item>
<key>
<string>
serial
</string>
</key>
<value>
<string>
100
6.23748.49086.523
09
</string>
</value>
<value>
<string>
100
9.22574.47206.139
09
</string>
</value>
</item>
<item>
<key>
<string>
state
</string>
</key>
...
...
@@ -266,7 +266,7 @@
</tuple>
<state>
<tuple>
<float>
16
77179158.33
</float>
<float>
16
87785962.67
</float>
<string>
UTC
</string>
</tuple>
</state>
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment