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
Labels
Merge Requests
139
Merge Requests
139
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
Jobs
Commits
Open sidebar
nexedi
erp5
Commits
3c307e6a
Commit
3c307e6a
authored
Feb 28, 2024
by
Léo-Paul Géneau
👾
Browse files
Options
Browse Files
Download
Plain Diff
Define speed and coordinates simultaneously
See merge request
nexedi/erp5!1870
parents
b2f7be44
0c42f440
Pipeline
#33112
failed with stage
in 0 seconds
Changes
18
Pipelines
1
Show whitespace changes
Inline
Side-by-side
Showing
18 changed files
with
90 additions
and
92 deletions
+90
-92
bt5/erp5_officejs_drone_capture_flag/PathTemplateItem/web_page_module/drone_capture_flag_fixedwingdrone_js.js
...m/web_page_module/drone_capture_flag_fixedwingdrone_js.js
+8
-2
bt5/erp5_officejs_drone_capture_flag/PathTemplateItem/web_page_module/drone_capture_flag_fixedwingdrone_js.xml
.../web_page_module/drone_capture_flag_fixedwingdrone_js.xml
+2
-2
bt5/erp5_officejs_drone_capture_flag/PathTemplateItem/web_page_module/drone_capture_flag_logic_js.js
...mplateItem/web_page_module/drone_capture_flag_logic_js.js
+14
-16
bt5/erp5_officejs_drone_capture_flag/PathTemplateItem/web_page_module/drone_capture_flag_logic_js.xml
...plateItem/web_page_module/drone_capture_flag_logic_js.xml
+2
-2
bt5/erp5_officejs_drone_capture_flag/PathTemplateItem/web_page_module/ojs_drone_capture_flag_API_page_html.html
...web_page_module/ojs_drone_capture_flag_API_page_html.html
+5
-24
bt5/erp5_officejs_drone_capture_flag/PathTemplateItem/web_page_module/ojs_drone_capture_flag_API_page_html.xml
.../web_page_module/ojs_drone_capture_flag_API_page_html.xml
+2
-2
bt5/erp5_officejs_drone_capture_flag/PathTemplateItem/web_page_module/ojs_drone_capture_flag_script_page_js.js
.../web_page_module/ojs_drone_capture_flag_script_page_js.js
+20
-10
bt5/erp5_officejs_drone_capture_flag/PathTemplateItem/web_page_module/ojs_drone_capture_flag_script_page_js.xml
...web_page_module/ojs_drone_capture_flag_script_page_js.xml
+2
-2
bt5/erp5_officejs_drone_capture_flag_test/PathTemplateItem/web_page_module/test_capture_drone_flight_js.js
...plateItem/web_page_module/test_capture_drone_flight_js.js
+6
-4
bt5/erp5_officejs_drone_capture_flag_test/PathTemplateItem/web_page_module/test_capture_drone_flight_js.xml
...lateItem/web_page_module/test_capture_drone_flight_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
+8
-2
bt5/erp5_officejs_drone_simulator/PathTemplateItem/web_page_module/drone_simulator_fixedwingdrone_js.xml
...tem/web_page_module/drone_simulator_fixedwingdrone_js.xml
+2
-2
bt5/erp5_officejs_drone_simulator/PathTemplateItem/web_page_module/drone_simulator_logic_js.js
...hTemplateItem/web_page_module/drone_simulator_logic_js.js
+6
-13
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
+2
-1
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
+2
-2
bt5/erp5_officejs_drone_simulator_test/PathTemplateItem/web_page_module/test_drone_simulator_flight_js.js
...ateItem/web_page_module/test_drone_simulator_flight_js.js
+3
-2
bt5/erp5_officejs_drone_simulator_test/PathTemplateItem/web_page_module/test_drone_simulator_flight_js.xml
...teItem/web_page_module/test_drone_simulator_flight_js.xml
+2
-2
No files found.
bt5/erp5_officejs_drone_capture_flag/PathTemplateItem/web_page_module/drone_capture_flag_fixedwingdrone_js.js
View file @
3c307e6a
...
@@ -345,7 +345,7 @@ var FixedWingDroneAPI = /** @class */ (function () {
...
@@ -345,7 +345,7 @@ var FixedWingDroneAPI = /** @class */ (function () {
};
};
FixedWingDroneAPI
.
prototype
.
internal_setTargetCoordinates
=
FixedWingDroneAPI
.
prototype
.
internal_setTargetCoordinates
=
function
(
drone
,
coordinates
,
radius
)
{
function
(
drone
,
coordinates
,
speed
,
radius
)
{
if
(
radius
)
{
if
(
radius
)
{
this
.
_loiter_mode
=
true
;
this
.
_loiter_mode
=
true
;
if
(
radius
>=
LOITER_LIMIT
)
{
if
(
radius
>=
LOITER_LIMIT
)
{
...
@@ -354,6 +354,7 @@ var FixedWingDroneAPI = /** @class */ (function () {
...
@@ -354,6 +354,7 @@ var FixedWingDroneAPI = /** @class */ (function () {
}
else
{
}
else
{
this
.
_loiter_mode
=
false
;
this
.
_loiter_mode
=
false
;
}
}
this
.
setSpeed
(
drone
,
speed
);
};
};
FixedWingDroneAPI
.
prototype
.
sendMsg
=
function
(
msg
,
to
)
{
FixedWingDroneAPI
.
prototype
.
sendMsg
=
function
(
msg
,
to
)
{
...
@@ -543,7 +544,12 @@ var FixedWingDroneAPI = /** @class */ (function () {
...
@@ -543,7 +544,12 @@ var FixedWingDroneAPI = /** @class */ (function () {
};
};
FixedWingDroneAPI
.
prototype
.
triggerParachute
=
function
(
drone
)
{
FixedWingDroneAPI
.
prototype
.
triggerParachute
=
function
(
drone
)
{
var
drone_pos
=
drone
.
getCurrentPosition
();
var
drone_pos
=
drone
.
getCurrentPosition
();
drone
.
setTargetCoordinates
(
drone_pos
.
latitude
,
drone_pos
.
longitude
,
5
);
drone
.
setTargetCoordinates
(
drone_pos
.
latitude
,
drone_pos
.
longitude
,
5
,
drone
.
getAirSpeed
()
);
};
};
FixedWingDroneAPI
.
prototype
.
landed
=
function
(
drone
)
{
FixedWingDroneAPI
.
prototype
.
landed
=
function
(
drone
)
{
var
drone_pos
=
drone
.
getCurrentPosition
();
var
drone_pos
=
drone
.
getCurrentPosition
();
...
...
bt5/erp5_officejs_drone_capture_flag/PathTemplateItem/web_page_module/drone_capture_flag_fixedwingdrone_js.xml
View file @
3c307e6a
...
@@ -246,7 +246,7 @@
...
@@ -246,7 +246,7 @@
</item>
</item>
<item>
<item>
<key>
<string>
serial
</string>
</key>
<key>
<string>
serial
</string>
</key>
<value>
<string>
101
1.46032.14056.1553
</string>
</value>
<value>
<string>
101
4.48041.44620.29337
</string>
</value>
</item>
</item>
<item>
<item>
<key>
<string>
state
</string>
</key>
<key>
<string>
state
</string>
</key>
...
@@ -266,7 +266,7 @@
...
@@ -266,7 +266,7 @@
</tuple>
</tuple>
<state>
<state>
<tuple>
<tuple>
<float>
1
696870145.24
</float>
<float>
1
709113157.81
</float>
<string>
UTC
</string>
<string>
UTC
</string>
</tuple>
</tuple>
</state>
</state>
...
...
bt5/erp5_officejs_drone_capture_flag/PathTemplateItem/web_page_module/drone_capture_flag_logic_js.js
View file @
3c307e6a
...
@@ -150,11 +150,11 @@ var DroneManager = /** @class */ (function () {
...
@@ -150,11 +150,11 @@ var DroneManager = /** @class */ (function () {
* Set a target point to move
* Set a target point to move
*/
*/
DroneManager
.
prototype
.
setTargetCoordinates
=
DroneManager
.
prototype
.
setTargetCoordinates
=
function
(
latitude
,
longitude
,
altitude
)
{
function
(
latitude
,
longitude
,
altitude
,
speed
)
{
this
.
_internal_setTargetCoordinates
(
latitude
,
longitude
,
altitude
);
this
.
_internal_setTargetCoordinates
(
latitude
,
longitude
,
altitude
,
speed
);
};
};
DroneManager
.
prototype
.
_internal_setTargetCoordinates
=
DroneManager
.
prototype
.
_internal_setTargetCoordinates
=
function
(
latitude
,
longitude
,
altitude
,
radius
)
{
function
(
latitude
,
longitude
,
altitude
,
speed
,
radius
)
{
if
(
!
this
.
_canPlay
)
{
if
(
!
this
.
_canPlay
)
{
return
;
return
;
}
}
...
@@ -165,6 +165,7 @@ var DroneManager = /** @class */ (function () {
...
@@ -165,6 +165,7 @@ var DroneManager = /** @class */ (function () {
return
this
.
_API
.
internal_setTargetCoordinates
(
return
this
.
_API
.
internal_setTargetCoordinates
(
this
,
this
,
this
.
_targetCoordinates
,
this
.
_targetCoordinates
,
speed
,
radius
radius
);
);
};
};
...
@@ -224,15 +225,6 @@ var DroneManager = /** @class */ (function () {
...
@@ -224,15 +225,6 @@ var DroneManager = /** @class */ (function () {
}
}
return
this
.
_API
.
setStartingPosition
(
this
,
x
,
y
,
z
);
return
this
.
_API
.
setStartingPosition
(
this
,
x
,
y
,
z
);
};
};
DroneManager
.
prototype
.
setAirSpeed
=
function
(
speed
)
{
if
(
!
this
.
_canPlay
)
{
return
;
}
if
(
isNaN
(
speed
))
{
throw
new
Error
(
'
Speed must be a number
'
);
}
return
this
.
_API
.
setSpeed
(
this
,
speed
);
};
DroneManager
.
prototype
.
setDirection
=
function
(
x
,
y
,
z
)
{
DroneManager
.
prototype
.
setDirection
=
function
(
x
,
y
,
z
)
{
if
(
!
this
.
_canPlay
)
{
if
(
!
this
.
_canPlay
)
{
return
;
return
;
...
@@ -334,8 +326,14 @@ var DroneManager = /** @class */ (function () {
...
@@ -334,8 +326,14 @@ var DroneManager = /** @class */ (function () {
* Make the drone loiter (circle with a set radius)
* Make the drone loiter (circle with a set radius)
*/
*/
DroneManager
.
prototype
.
loiter
=
DroneManager
.
prototype
.
loiter
=
function
(
latitude
,
longitude
,
altitude
,
radius
)
{
function
(
latitude
,
longitude
,
altitude
,
radius
,
speed
)
{
this
.
_internal_setTargetCoordinates
(
latitude
,
longitude
,
altitude
,
radius
);
this
.
_internal_setTargetCoordinates
(
latitude
,
longitude
,
altitude
,
speed
,
radius
);
};
};
DroneManager
.
prototype
.
getFlightParameters
=
function
()
{
DroneManager
.
prototype
.
getFlightParameters
=
function
()
{
if
(
this
.
_API
.
getFlightParameters
)
{
if
(
this
.
_API
.
getFlightParameters
)
{
...
...
bt5/erp5_officejs_drone_capture_flag/PathTemplateItem/web_page_module/drone_capture_flag_logic_js.xml
View file @
3c307e6a
...
@@ -246,7 +246,7 @@
...
@@ -246,7 +246,7 @@
</item>
</item>
<item>
<item>
<key>
<string>
serial
</string>
</key>
<key>
<string>
serial
</string>
</key>
<value>
<string>
101
1.57487.9176.36369
</string>
</value>
<value>
<string>
101
4.48183.45277.7697
</string>
</value>
</item>
</item>
<item>
<item>
<key>
<string>
state
</string>
</key>
<key>
<string>
state
</string>
</key>
...
@@ -266,7 +266,7 @@
...
@@ -266,7 +266,7 @@
</tuple>
</tuple>
<state>
<state>
<tuple>
<tuple>
<float>
1
697558075.3
8
</float>
<float>
1
709113192.2
8
</float>
<string>
UTC
</string>
<string>
UTC
</string>
</tuple>
</tuple>
</state>
</state>
...
...
bt5/erp5_officejs_drone_capture_flag/PathTemplateItem/web_page_module/ojs_drone_capture_flag_API_page_html.html
View file @
3c307e6a
...
@@ -363,39 +363,20 @@
...
@@ -363,39 +363,20 @@
<p
class=
"item-param-1"
>
altitude: Float
</p>
<p
class=
"item-param-1"
>
altitude: Float
</p>
<p
class=
"item-param-2"
>
altitude value (in meters).
</p>
<p
class=
"item-param-2"
>
altitude value (in meters).
</p>
</div>
</div>
<div>
<h5
class=
"item-param-1"
>
Example
</h5>
</div>
<div>
<p
class=
"item-example"
>
me.setTargetCoordinates(lat, lon, altitude);
<br>
</p>
</div>
<div
class=
"line"
></div>
<!-- setAirSpeed -->
<h4
class=
"item-name"
id=
"setAirSpeed"
><span>
setAirSpeed
</span><span>
: void
</span></h4>
<p
class=
"item-descr"
>
Set the drone speed in meters/second. The drone will move at the given value.
</p>
<div>
<h5
class=
"item-param-1"
>
Param
</h5>
<h5
class=
"item-param-2"
>
Description
</h5>
</div>
<div>
<div>
<p
class=
"item-param-1"
>
speed: Float
</p>
<p
class=
"item-param-1"
>
speed: Float
</p>
<p
class=
"item-param-2"
>
Speed value
</p>
<p
class=
"item-param-2"
>
speed value (in meters per second).
</p>
</div>
</div>
<div>
<div>
<h5
class=
"item-param-1"
>
Example
</h5>
<h5
class=
"item-param-1"
>
Example
</h5>
</div>
</div>
<p
class=
"item-param-1"
>
me.setAirSpeed(16);
<br>
<div>
<p
class=
"item-example"
>
me.setTargetCoordinates(lat, lon, altitude, speed);
<br>
</p>
</p>
</div>
<div
class=
"line"
></div>
<div
class=
"line"
></div>
...
...
bt5/erp5_officejs_drone_capture_flag/PathTemplateItem/web_page_module/ojs_drone_capture_flag_API_page_html.xml
View file @
3c307e6a
...
@@ -244,7 +244,7 @@
...
@@ -244,7 +244,7 @@
</item>
</item>
<item>
<item>
<key>
<string>
serial
</string>
</key>
<key>
<string>
serial
</string>
</key>
<value>
<string>
101
3.8667.7605.21589
</string>
</value>
<value>
<string>
101
4.45296.39536.30276
</string>
</value>
</item>
</item>
<item>
<item>
<key>
<string>
state
</string>
</key>
<key>
<string>
state
</string>
</key>
...
@@ -264,7 +264,7 @@
...
@@ -264,7 +264,7 @@
</tuple>
</tuple>
<state>
<state>
<tuple>
<tuple>
<float>
170
2410728.19
</float>
<float>
170
8536065.15
</float>
<string>
UTC
</string>
<string>
UTC
</string>
</tuple>
</tuple>
</state>
</state>
...
...
bt5/erp5_officejs_drone_capture_flag/PathTemplateItem/web_page_module/ojs_drone_capture_flag_script_page_js.js
View file @
3c307e6a
...
@@ -77,6 +77,7 @@ var OperatorAPI = /** @class */ (function () {
...
@@ -77,6 +77,7 @@ var OperatorAPI = /** @class */ (function () {
MAX_PITCH
=
25
,
MAX_PITCH
=
25
,
MAX_CLIMB_RATE
=
8
,
MAX_CLIMB_RATE
=
8
,
MAX_SINK_RATE
=
3
,
MAX_SINK_RATE
=
3
,
MAX_COMMAND_FREQUENCY
=
2
,
NUMBER_OF_DRONES
=
5
,
NUMBER_OF_DRONES
=
5
,
// Non-inputs parameters
// Non-inputs parameters
EPSILON
=
"
15
"
,
EPSILON
=
"
15
"
,
...
@@ -104,7 +105,7 @@ var OperatorAPI = /** @class */ (function () {
...
@@ -104,7 +105,7 @@ var OperatorAPI = /** @class */ (function () {
'
);
\n
'
+
'
);
\n
'
+
'
}
\n
'
+
'
}
\n
'
+
'
\n
'
+
'
\n
'
+
'
me.onStart = function () {
\n
'
+
'
me.onStart = function (
timestamp
) {
\n
'
+
'
me.direction_set = false;
\n
'
+
'
me.direction_set = false;
\n
'
+
'
me.dodging = false;
\n
'
+
'
me.dodging = false;
\n
'
+
'
me.ongoing_detection = false;
\n
'
+
'
me.ongoing_detection = false;
\n
'
+
...
@@ -136,7 +137,8 @@ var OperatorAPI = /** @class */ (function () {
...
@@ -136,7 +137,8 @@ var OperatorAPI = /** @class */ (function () {
'
me.setTargetCoordinates(
\n
'
+
'
me.setTargetCoordinates(
\n
'
+
'
me.flag_positions[me.next_checkpoint].position.latitude,
\n
'
+
'
me.flag_positions[me.next_checkpoint].position.latitude,
\n
'
+
'
me.flag_positions[me.next_checkpoint].position.longitude,
\n
'
+
'
me.flag_positions[me.next_checkpoint].position.longitude,
\n
'
+
'
me.flag_positions[me.next_checkpoint].position.altitude + me.id
\n
'
+
'
me.flag_positions[me.next_checkpoint].position.altitude + me.id,
\n
'
+
'
'
+
DEFAULT_SPEED
+
'
\n
'
+
'
);
\n
'
+
'
);
\n
'
+
//' console.log("[DEMO] Going to Checkpoint %d", me.next_checkpoint);\n' +
//' console.log("[DEMO] Going to Checkpoint %d", me.next_checkpoint);\n' +
'
}
\n
'
+
'
}
\n
'
+
...
@@ -162,12 +164,6 @@ var OperatorAPI = /** @class */ (function () {
...
@@ -162,12 +164,6 @@ var OperatorAPI = /** @class */ (function () {
'
}
\n
'
+
'
}
\n
'
+
'
return;
\n
'
+
'
return;
\n
'
+
'
}
\n
'
+
'
}
\n
'
+
'
if (me.next_checkpoint == me.flag_positions.length) {
\n
'
+
'
me.triggerParachute();
\n
'
+
'
}
\n
'
+
'
if (me.landed()) {
\n
'
+
'
me.exit();
\n
'
+
'
}
\n
'
+
'
};
\n
'
+
'
};
\n
'
+
'
\n
'
+
'
\n
'
+
'
me.onDroneViewInfo = function (drone_view) {
\n
'
+
'
me.onDroneViewInfo = function (drone_view) {
\n
'
+
...
@@ -182,7 +178,7 @@ var OperatorAPI = /** @class */ (function () {
...
@@ -182,7 +178,7 @@ var OperatorAPI = /** @class */ (function () {
'
} else {
\n
'
+
'
} else {
\n
'
+
'
dodge_point.longitude = dodge_point.longitude * -1;
\n
'
+
'
dodge_point.longitude = dodge_point.longitude * -1;
\n
'
+
'
}
\n
'
+
'
}
\n
'
+
'
me.setTargetCoordinates(dodge_point.latitude, dodge_point.longitude, me.getCurrentPosition().altitude);
\n
'
+
'
me.setTargetCoordinates(dodge_point.latitude, dodge_point.longitude, me.getCurrentPosition().altitude
,
'
+
DEFAULT_SPEED
+
'
);
\n
'
+
'
return;
\n
'
+
'
return;
\n
'
+
'
}
\n
'
+
'
}
\n
'
+
'
};
'
,
'
};
'
,
...
@@ -680,6 +676,17 @@ var OperatorAPI = /** @class */ (function () {
...
@@ -680,6 +676,17 @@ var OperatorAPI = /** @class */ (function () {
"
hidden
"
:
0
,
"
hidden
"
:
0
,
"
type
"
:
"
FloatField
"
"
type
"
:
"
FloatField
"
},
},
"
my_drone_max_command_frequency
"
:
{
"
description
"
:
""
,
"
title
"
:
"
Drone max command frequency
"
,
"
default
"
:
gadget
.
state
.
drone_max_command_frequency
,
"
css_class
"
:
""
,
"
required
"
:
1
,
"
editable
"
:
1
,
"
key
"
:
"
drone_max_command_frequency
"
,
"
hidden
"
:
0
,
"
type
"
:
"
FloatField
"
},
"
my_number_of_drones
"
:
{
"
my_number_of_drones
"
:
{
"
description
"
:
""
,
"
description
"
:
""
,
"
title
"
:
"
Number of drones
"
,
"
title
"
:
"
Number of drones
"
,
...
@@ -708,7 +715,8 @@ var OperatorAPI = /** @class */ (function () {
...
@@ -708,7 +715,8 @@ var OperatorAPI = /** @class */ (function () {
[[
"
my_drone_min_speed
"
],
[
"
my_drone_speed
"
],
[
"
my_drone_max_speed
"
],
[[
"
my_drone_min_speed
"
],
[
"
my_drone_speed
"
],
[
"
my_drone_max_speed
"
],
[
"
my_drone_max_acceleration
"
],
[
"
my_drone_max_deceleration
"
],
[
"
my_drone_max_acceleration
"
],
[
"
my_drone_max_deceleration
"
],
[
"
my_drone_max_roll
"
],
[
"
my_drone_min_pitch
"
],
[
"
my_drone_max_pitch
"
],
[
"
my_drone_max_roll
"
],
[
"
my_drone_min_pitch
"
],
[
"
my_drone_max_pitch
"
],
[
"
my_drone_max_sink_rate
"
],
[
"
my_drone_max_climb_rate
"
]]
[
"
my_drone_max_sink_rate
"
],
[
"
my_drone_max_climb_rate
"
],
[
"
my_drone_max_command_frequency
"
]]
]]
]]
}
}
});
});
...
@@ -836,6 +844,7 @@ var OperatorAPI = /** @class */ (function () {
...
@@ -836,6 +844,7 @@ var OperatorAPI = /** @class */ (function () {
"
maxPitchAngle
"
:
parseFloat
(
gadget
.
state
.
drone_max_pitch
),
"
maxPitchAngle
"
:
parseFloat
(
gadget
.
state
.
drone_max_pitch
),
"
maxSinkRate
"
:
parseFloat
(
gadget
.
state
.
drone_max_sink_rate
),
"
maxSinkRate
"
:
parseFloat
(
gadget
.
state
.
drone_max_sink_rate
),
"
maxClimbRate
"
:
parseFloat
(
gadget
.
state
.
drone_max_climb_rate
),
"
maxClimbRate
"
:
parseFloat
(
gadget
.
state
.
drone_max_climb_rate
),
"
maxCommandFrequency
"
:
parseFloat
(
gadget
.
state
.
drone_max_command_frequency
),
"
list
"
:
drone_list
"
list
"
:
drone_list
},
},
"
gameTime
"
:
parseInt
(
gadget
.
state
.
simulation_time
,
10
),
"
gameTime
"
:
parseInt
(
gadget
.
state
.
simulation_time
,
10
),
...
@@ -950,6 +959,7 @@ var OperatorAPI = /** @class */ (function () {
...
@@ -950,6 +959,7 @@ var OperatorAPI = /** @class */ (function () {
operator_script
:
DEFAULT_OPERATOR_SCRIPT
,
operator_script
:
DEFAULT_OPERATOR_SCRIPT
,
drone_script
:
DEFAULT_SCRIPT_CONTENT
,
drone_script
:
DEFAULT_SCRIPT_CONTENT
,
number_of_drones
:
NUMBER_OF_DRONES
,
number_of_drones
:
NUMBER_OF_DRONES
,
drone_max_command_frequency
:
MAX_COMMAND_FREQUENCY
,
drone_max_climb_rate
:
MAX_CLIMB_RATE
,
drone_max_climb_rate
:
MAX_CLIMB_RATE
,
drone_max_sink_rate
:
MAX_SINK_RATE
,
drone_max_sink_rate
:
MAX_SINK_RATE
,
drone_max_pitch
:
MAX_PITCH
,
drone_max_pitch
:
MAX_PITCH
,
...
...
bt5/erp5_officejs_drone_capture_flag/PathTemplateItem/web_page_module/ojs_drone_capture_flag_script_page_js.xml
View file @
3c307e6a
...
@@ -246,7 +246,7 @@
...
@@ -246,7 +246,7 @@
</item>
</item>
<item>
<item>
<key>
<string>
serial
</string>
</key>
<key>
<string>
serial
</string>
</key>
<value>
<string>
101
1.57494.145.60023
</string>
</value>
<value>
<string>
101
4.55204.2137.9676
</string>
</value>
</item>
</item>
<item>
<item>
<key>
<string>
state
</string>
</key>
<key>
<string>
state
</string>
</key>
...
@@ -266,7 +266,7 @@
...
@@ -266,7 +266,7 @@
</tuple>
</tuple>
<state>
<state>
<tuple>
<tuple>
<float>
1
697558059.95
</float>
<float>
1
709130500.2
</float>
<string>
UTC
</string>
<string>
UTC
</string>
</tuple>
</tuple>
</state>
</state>
...
...
bt5/erp5_officejs_drone_capture_flag_test/PathTemplateItem/web_page_module/test_capture_drone_flight_js.js
View file @
3c307e6a
...
@@ -53,13 +53,14 @@
...
@@ -53,13 +53,14 @@
'
}
\n
'
+
'
}
\n
'
+
'
\n
'
+
'
\n
'
+
'
me.onStart = function () {
\n
'
+
'
me.onStart = function () {
\n
'
+
'
assert(me.getAirSpeed(),
16
, "Initial speed");
\n
'
+
'
assert(me.getAirSpeed(),
'
+
DEFAULT_SPEED
+
'
, "Initial speed");
\n
'
+
'
assert(me.getYaw(), 0, "Yaw angle")
\n
'
+
'
assert(me.getYaw(), 0, "Yaw angle")
\n
'
+
'
me.initialPosition = me.getCurrentPosition();
\n
'
+
'
me.initialPosition = me.getCurrentPosition();
\n
'
+
'
me.setTargetCoordinates(
\n
'
+
'
me.setTargetCoordinates(
\n
'
+
'
me.initialPosition.latitude + 0.01,
\n
'
+
'
me.initialPosition.latitude + 0.01,
\n
'
+
'
me.initialPosition.longitude,
\n
'
+
'
me.initialPosition.longitude,
\n
'
+
'
me.getAltitudeAbs()
\n
'
+
'
me.getAltitudeAbs(),
\n
'
+
'
'
+
DEFAULT_SPEED
+
'
\n
'
+
'
);
\n
'
+
'
);
\n
'
+
'
};
\n
'
+
'
};
\n
'
+
'
\n
'
+
'
\n
'
+
...
@@ -71,8 +72,9 @@
...
@@ -71,8 +72,9 @@
'
me.getCurrentPosition().latitude,
\n
'
+
'
me.getCurrentPosition().latitude,
\n
'
+
'
me.getCurrentPosition().longitude
\n
'
+
'
me.getCurrentPosition().longitude
\n
'
+
'
).toFixed(8),
\n
'
+
'
).toFixed(8),
\n
'
+
'
expectedDistance = (me.getAirSpeed() * timestamp / 1000).toFixed(8);
\n
'
+
'
time_interval = 1000 / 60,
\n
'
+
'
assert(timestamp, 1000 / 60, "Timestamp");
\n
'
+
'
expectedDistance = (me.getAirSpeed() * time_interval / 1000).toFixed(8);
\n
'
+
'
assert(timestamp, Math.floor(time_interval), "Timestamp");
\n
'
+
'
assert(realDistance, expectedDistance, "Distance");
\n
'
+
'
assert(realDistance, expectedDistance, "Distance");
\n
'
+
'
current_position.latitude = current_position.latitude.toFixed(7);
\n
'
+
'
current_position.latitude = current_position.latitude.toFixed(7);
\n
'
+
'
compare(current_position, {
\n
'
+
'
compare(current_position, {
\n
'
+
...
...
bt5/erp5_officejs_drone_capture_flag_test/PathTemplateItem/web_page_module/test_capture_drone_flight_js.xml
View file @
3c307e6a
...
@@ -246,7 +246,7 @@
...
@@ -246,7 +246,7 @@
</item>
</item>
<item>
<item>
<key>
<string>
serial
</string>
</key>
<key>
<string>
serial
</string>
</key>
<value>
<string>
1014.5
3878.23823.32290
</string>
</value>
<value>
<string>
1014.5
5202.48917.18107
</string>
</value>
</item>
</item>
<item>
<item>
<key>
<string>
state
</string>
</key>
<key>
<string>
state
</string>
</key>
...
@@ -266,7 +266,7 @@
...
@@ -266,7 +266,7 @@
</tuple>
</tuple>
<state>
<state>
<tuple>
<tuple>
<float>
1709
057695.61
</float>
<float>
1709
130419.7
</float>
<string>
UTC
</string>
<string>
UTC
</string>
</tuple>
</tuple>
</state>
</state>
...
...
bt5/erp5_officejs_drone_simulator/PathTemplateItem/web_page_module/drone_simulator_fixedwingdrone_js.js
View file @
3c307e6a
...
@@ -349,7 +349,7 @@ var FixedWingDroneAPI = /** @class */ (function () {
...
@@ -349,7 +349,7 @@ var FixedWingDroneAPI = /** @class */ (function () {
};
};
FixedWingDroneAPI
.
prototype
.
internal_setTargetCoordinates
=
FixedWingDroneAPI
.
prototype
.
internal_setTargetCoordinates
=
function
(
drone
,
coordinates
,
radius
)
{
function
(
drone
,
coordinates
,
speed
,
radius
)
{
if
(
radius
)
{
if
(
radius
)
{
this
.
_loiter_mode
=
true
;
this
.
_loiter_mode
=
true
;
if
(
radius
>=
LOITER_LIMIT
)
{
if
(
radius
>=
LOITER_LIMIT
)
{
...
@@ -358,6 +358,7 @@ var FixedWingDroneAPI = /** @class */ (function () {
...
@@ -358,6 +358,7 @@ var FixedWingDroneAPI = /** @class */ (function () {
}
else
{
}
else
{
this
.
_loiter_mode
=
false
;
this
.
_loiter_mode
=
false
;
}
}
this
.
setSpeed
(
drone
,
speed
);
};
};
FixedWingDroneAPI
.
prototype
.
sendMsg
=
function
(
msg
,
to
)
{
FixedWingDroneAPI
.
prototype
.
sendMsg
=
function
(
msg
,
to
)
{
...
@@ -502,7 +503,12 @@ var FixedWingDroneAPI = /** @class */ (function () {
...
@@ -502,7 +503,12 @@ var FixedWingDroneAPI = /** @class */ (function () {
};
};
FixedWingDroneAPI
.
prototype
.
triggerParachute
=
function
(
drone
)
{
FixedWingDroneAPI
.
prototype
.
triggerParachute
=
function
(
drone
)
{
var
drone_pos
=
drone
.
getCurrentPosition
();
var
drone_pos
=
drone
.
getCurrentPosition
();
drone
.
setTargetCoordinates
(
drone_pos
.
latitude
,
drone_pos
.
longitude
,
5
);
drone
.
setTargetCoordinates
(
drone_pos
.
latitude
,
drone_pos
.
longitude
,
5
,
drone
.
getAirSpeed
()
);
};
};
FixedWingDroneAPI
.
prototype
.
landed
=
function
(
drone
)
{
FixedWingDroneAPI
.
prototype
.
landed
=
function
(
drone
)
{
var
drone_pos
=
drone
.
getCurrentPosition
();
var
drone_pos
=
drone
.
getCurrentPosition
();
...
...
bt5/erp5_officejs_drone_simulator/PathTemplateItem/web_page_module/drone_simulator_fixedwingdrone_js.xml
View file @
3c307e6a
...
@@ -240,7 +240,7 @@
...
@@ -240,7 +240,7 @@
</item>
</item>
<item>
<item>
<key>
<string>
serial
</string>
</key>
<key>
<string>
serial
</string>
</key>
<value>
<string>
101
1.48679.53693.47701
</string>
</value>
<value>
<string>
101
4.11751.44914.51968
</string>
</value>
</item>
</item>
<item>
<item>
<key>
<string>
state
</string>
</key>
<key>
<string>
state
</string>
</key>
...
@@ -260,7 +260,7 @@
...
@@ -260,7 +260,7 @@
</tuple>
</tuple>
<state>
<state>
<tuple>
<tuple>
<float>
1
697030763.04
</float>
<float>
1
706523358.41
</float>
<string>
UTC
</string>
<string>
UTC
</string>
</tuple>
</tuple>
</state>
</state>
...
...
bt5/erp5_officejs_drone_simulator/PathTemplateItem/web_page_module/drone_simulator_logic_js.js
View file @
3c307e6a
...
@@ -136,11 +136,11 @@ var DroneManager = /** @class */ (function () {
...
@@ -136,11 +136,11 @@ var DroneManager = /** @class */ (function () {
* Set a target point to move
* Set a target point to move
*/
*/
DroneManager
.
prototype
.
setTargetCoordinates
=
DroneManager
.
prototype
.
setTargetCoordinates
=
function
(
latitude
,
longitude
,
altitude
)
{
function
(
latitude
,
longitude
,
altitude
,
speed
)
{
this
.
_internal_setTargetCoordinates
(
latitude
,
longitude
,
altitude
);
this
.
_internal_setTargetCoordinates
(
latitude
,
longitude
,
altitude
,
speed
);
};
};
DroneManager
.
prototype
.
_internal_setTargetCoordinates
=
DroneManager
.
prototype
.
_internal_setTargetCoordinates
=
function
(
latitude
,
longitude
,
altitude
,
radius
)
{
function
(
latitude
,
longitude
,
altitude
,
speed
,
radius
)
{
if
(
!
this
.
_canPlay
)
{
if
(
!
this
.
_canPlay
)
{
return
;
return
;
}
}
...
@@ -150,6 +150,7 @@ var DroneManager = /** @class */ (function () {
...
@@ -150,6 +150,7 @@ var DroneManager = /** @class */ (function () {
return
this
.
_API
.
internal_setTargetCoordinates
(
return
this
.
_API
.
internal_setTargetCoordinates
(
this
,
this
,
this
.
_targetCoordinates
,
this
.
_targetCoordinates
,
speed
,
radius
radius
);
);
};
};
...
@@ -197,15 +198,6 @@ var DroneManager = /** @class */ (function () {
...
@@ -197,15 +198,6 @@ var DroneManager = /** @class */ (function () {
}
}
return
this
.
_API
.
setStartingPosition
(
this
,
x
,
y
,
z
);
return
this
.
_API
.
setStartingPosition
(
this
,
x
,
y
,
z
);
};
};
DroneManager
.
prototype
.
setAirSpeed
=
function
(
speed
)
{
if
(
!
this
.
_canPlay
)
{
return
;
}
if
(
isNaN
(
speed
))
{
throw
new
Error
(
'
Speed must be a number
'
);
}
return
this
.
_API
.
setSpeed
(
this
,
speed
);
};
DroneManager
.
prototype
.
setDirection
=
function
(
x
,
y
,
z
)
{
DroneManager
.
prototype
.
setDirection
=
function
(
x
,
y
,
z
)
{
if
(
!
this
.
_canPlay
)
{
if
(
!
this
.
_canPlay
)
{
return
;
return
;
...
@@ -299,11 +291,12 @@ var DroneManager = /** @class */ (function () {
...
@@ -299,11 +291,12 @@ var DroneManager = /** @class */ (function () {
* Make the drone loiter (circle with a set radius)
* Make the drone loiter (circle with a set radius)
*/
*/
DroneManager
.
prototype
.
loiter
=
DroneManager
.
prototype
.
loiter
=
function
(
latitude
,
longitude
,
altitude
,
radius
)
{
function
(
latitude
,
longitude
,
altitude
,
radius
,
speed
)
{
this
.
_internal_setTargetCoordinates
(
this
.
_internal_setTargetCoordinates
(
latitude
,
latitude
,
longitude
,
longitude
,
altitude
,
altitude
,
speed
,
radius
radius
);
);
};
};
...
...
bt5/erp5_officejs_drone_simulator/PathTemplateItem/web_page_module/drone_simulator_logic_js.xml
View file @
3c307e6a
...
@@ -240,7 +240,7 @@
...
@@ -240,7 +240,7 @@
</item>
</item>
<item>
<item>
<key>
<string>
serial
</string>
</key>
<key>
<string>
serial
</string>
</key>
<value>
<string>
101
1.48744.22696.33177
</string>
</value>
<value>
<string>
101
4.11746.34243.61149
</string>
</value>
</item>
</item>
<item>
<item>
<key>
<string>
state
</string>
</key>
<key>
<string>
state
</string>
</key>
...
@@ -260,7 +260,7 @@
...
@@ -260,7 +260,7 @@
</tuple>
</tuple>
<state>
<state>
<tuple>
<tuple>
<float>
1
697032866.09
</float>
<float>
1
706523386.8
</float>
<string>
UTC
</string>
<string>
UTC
</string>
</tuple>
</tuple>
</state>
</state>
...
...
bt5/erp5_officejs_drone_simulator/PathTemplateItem/web_page_module/ojs_drone_simulator_script_page_js.js
View file @
3c307e6a
...
@@ -98,7 +98,8 @@
...
@@ -98,7 +98,8 @@
'
me.setTargetCoordinates(
\n
'
+
'
me.setTargetCoordinates(
\n
'
+
'
CHECKPOINT_LIST[me.next_checkpoint].latitude,
\n
'
+
'
CHECKPOINT_LIST[me.next_checkpoint].latitude,
\n
'
+
'
CHECKPOINT_LIST[me.next_checkpoint].longitude,
\n
'
+
'
CHECKPOINT_LIST[me.next_checkpoint].longitude,
\n
'
+
'
CHECKPOINT_LIST[me.next_checkpoint].altitude + ALTITUDE + ALTITUDE * me.id
\n
'
+
'
CHECKPOINT_LIST[me.next_checkpoint].altitude + ALTITUDE + ALTITUDE * me.id,
\n
'
+
'
'
+
DEFAULT_SPEED
+
'
\n
'
+
'
);
\n
'
+
'
);
\n
'
+
'
console.log("[DEMO] Going to Checkpoint %d", me.next_checkpoint);
\n
'
+
'
console.log("[DEMO] Going to Checkpoint %d", me.next_checkpoint);
\n
'
+
'
}
\n
'
+
'
}
\n
'
+
...
...
bt5/erp5_officejs_drone_simulator/PathTemplateItem/web_page_module/ojs_drone_simulator_script_page_js.xml
View file @
3c307e6a
...
@@ -246,7 +246,7 @@
...
@@ -246,7 +246,7 @@
</item>
</item>
<item>
<item>
<key>
<string>
serial
</string>
</key>
<key>
<string>
serial
</string>
</key>
<value>
<string>
101
1.48716.48246.13943
</string>
</value>
<value>
<string>
101
4.54902.15254.29337
</string>
</value>
</item>
</item>
<item>
<item>
<key>
<string>
state
</string>
</key>
<key>
<string>
state
</string>
</key>
...
@@ -266,7 +266,7 @@
...
@@ -266,7 +266,7 @@
</tuple>
</tuple>
<state>
<state>
<tuple>
<tuple>
<float>
1
697031250.03
</float>
<float>
1
709130323.68
</float>
<string>
UTC
</string>
<string>
UTC
</string>
</tuple>
</tuple>
</state>
</state>
...
...
bt5/erp5_officejs_drone_simulator_test/PathTemplateItem/web_page_module/test_drone_simulator_flight_js.js
View file @
3c307e6a
...
@@ -57,13 +57,14 @@
...
@@ -57,13 +57,14 @@
'
}
\n
'
+
'
}
\n
'
+
'
\n
'
+
'
\n
'
+
'
me.onStart = function () {
\n
'
+
'
me.onStart = function () {
\n
'
+
'
assert(me.getAirSpeed(),
16
, "Initial speed");
\n
'
+
'
assert(me.getAirSpeed(),
'
+
DEFAULT_SPEED
+
'
, "Initial speed");
\n
'
+
'
assert(me.getYaw(), 0, "Yaw angle")
\n
'
+
'
assert(me.getYaw(), 0, "Yaw angle")
\n
'
+
'
me.initialPosition = me.getCurrentPosition();
\n
'
+
'
me.initialPosition = me.getCurrentPosition();
\n
'
+
'
me.setTargetCoordinates(
\n
'
+
'
me.setTargetCoordinates(
\n
'
+
'
me.initialPosition.latitude + 0.01,
\n
'
+
'
me.initialPosition.latitude + 0.01,
\n
'
+
'
me.initialPosition.longitude,
\n
'
+
'
me.initialPosition.longitude,
\n
'
+
'
me.getAltitudeAbs()
\n
'
+
'
me.getAltitudeAbs(),
\n
'
+
'
'
+
DEFAULT_SPEED
+
'
\n
'
+
'
);
\n
'
+
'
);
\n
'
+
'
};
\n
'
+
'
};
\n
'
+
'
\n
'
+
'
\n
'
+
...
...
bt5/erp5_officejs_drone_simulator_test/PathTemplateItem/web_page_module/test_drone_simulator_flight_js.xml
View file @
3c307e6a
...
@@ -246,7 +246,7 @@
...
@@ -246,7 +246,7 @@
</item>
</item>
<item>
<item>
<key>
<string>
serial
</string>
</key>
<key>
<string>
serial
</string>
</key>
<value>
<string>
101
2.50925.12802.42871
</string>
</value>
<value>
<string>
101
4.55202.15664.53026
</string>
</value>
</item>
</item>
<item>
<item>
<key>
<string>
state
</string>
</key>
<key>
<string>
state
</string>
</key>
...
@@ -266,7 +266,7 @@
...
@@ -266,7 +266,7 @@
</tuple>
</tuple>
<state>
<state>
<tuple>
<tuple>
<float>
170
1095838.64
</float>
<float>
170
9130383.65
</float>
<string>
UTC
</string>
<string>
UTC
</string>
</tuple>
</tuple>
</state>
</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