-
Notifications
You must be signed in to change notification settings - Fork 14
/
common.xml
1605 lines (1603 loc) · 54 KB
/
common.xml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
<?xml version="1.0" encoding="UTF-8"?>
<!--
Copyright (C) 2014 Parrot SA
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
are met:
* Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in
the documentation and/or other materials provided with the
distribution.
* Neither the name of Parrot nor the names
of its contributors may be used to endorse or promote products
derived from this software without specific prior written
permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
SUCH DAMAGE.
-->
<project name="common" id="0">
All common commands shared between all projects
<myclass name="Network" id="0">
Network related commands
<cmd name="Disconnect" id="0" deprecated="true">
<comment
title="Signals the remote that the host will disconnect"
desc="Signals the remote that the host will disconnect.\n"
support="none"
result="None"/>
</cmd>
</myclass>
<myclass name="NetworkEvent" id="1">
Network Event from product
<cmd name="Disconnection" id="0" content="NOTIFICATION">
<comment
title="Drone will disconnect"
desc="Drone will disconnect.\n
This event is mainly triggered when the user presses on the power button of the product.\n\n
**This event is a notification, you can't retrieve it in the cache of the device controller.**"
support="0901;090c"
triggered="mainly when the user presses the power button of the drone."/>
<arg name="cause" type="enum">
Cause of the disconnection of the product
<enum name="off_button">
The button off has been pressed
</enum>
<enum name="unknown">
Unknown generic cause
</enum>
</arg>
</cmd>
</myclass>
<myclass name="Settings" id="2">
Settings commands
<cmd name="AllSettings" id="0" timeout="RETRY">
<comment
title="Ask for all settings"
desc="Ask for all settings.\n\n
**Please note that you should not send this command if you are using the\n
libARController API as this library is handling the connection process for you.**"
support="drones"
result="The product will trigger all settings events (such as [CameraSettings](#0-15-0), or product specific settings as the [MaxAltitude](#1-6-0) for the Bebop).\n
Then, it will trigger [AllSettingsEnd](#0-3-0)."/>
</cmd>
<cmd name="Reset" id="1">
<comment
title="Reset all settings"
desc="Reset all settings."
support="drones"
result="It will trigger [ResetChanged](#0-3-1).\n
Then, the product will trigger all settings events (such as [CameraSettings](#0-15-0), or product specific settings as the [MaxAltitude](#1-6-0) for the Bebop) with factory values."/>
</cmd>
<cmd name="ProductName" id="2">
<comment
title="Set product name"
desc="Set the product name.\n
It also sets the name of the SSID for Wifi products and advertisement name for BLE products (changed after a reboot of the product)."
support="drones"
result="Name is changed.\n
Then, it will trigger [NameChanged](#0-3-2)."/>
<arg name="name" type="string">
Product name
</arg>
</cmd>
<cmd name="Country" id="3">
<comment
title="Set the country"
desc="Set the country for Wifi products.\n
This can modify Wifi band and/or channel.\n
**Please note that you might be disconnected from the product after changing the country as it changes Wifi parameters.**"
support="0901;0902;0905;0906;090c;090e"
result="The country is set.\n
Then, it will trigger [CountryChanged](#0-3-6)."/>
<arg name="code" type="string">
Country code with ISO 3166 format
</arg>
</cmd>
<cmd name="AutoCountry" id="4">
<comment
title="Enable auto-country"
desc="Enable auto-country.\n
If auto-country is set, the drone will guess its Wifi country by itself by checking other Wifi country around it.\n
**Please note that you might be disconnected from the product after changing the country as it changes Wifi parameters.**"
support="0901;0902;0905;0906;090c;090e"
result="The auto-country of the product is changed.\n
Then, it will trigger [AutoCountryChanged](#0-3-7) and [CountryChanged](#0-3-6)."/>
<arg name="automatic" type="u8">
Boolean : 0 : Manual / 1 : Auto
</arg>
</cmd>
</myclass>
<myclass name="SettingsState" id="3">
Settings state from product
<cmd name="AllSettingsChanged" id="0" timeout="RETRY">
<comment
title="All settings have been sent"
desc="All settings have been sent.\n\n
**Please note that you should not care about this event if you are using the libARController API as this library is handling the connection process for you.**"
support="drones"
triggered="when all settings values have been sent."/>
</cmd>
<cmd name="ResetChanged" id="1">
<comment
title="All settings have been reset"
desc="All settings have been reset."
support="drones"
triggered="by [ResetSettings](#0-2-1)."/>
</cmd>
<cmd name="ProductNameChanged" id="2">
<comment
title="Product name changed"
desc="Product name changed."
support="drones"
triggered="by [SetProductName](#0-2-2)."/>
<arg name="name" type="string">
Product name
</arg>
</cmd>
<cmd name="ProductVersionChanged" id="3">
<comment
title="Product version"
desc="Product version."
support="drones"
triggered="during the connection process."/>
<arg name="software" type="string">
Product software version
</arg>
<arg name="hardware" type="string">
Product hardware version
</arg>
</cmd>
<cmd name="ProductSerialHighChanged" id="4">
<comment
title="Product serial (1st part)"
desc="Product serial (1st part)."
support="drones"
triggered="during the connection process."/>
<arg name="high" type="string">
Serial high number (hexadecimal value)
</arg>
</cmd>
<cmd name="ProductSerialLowChanged" id="5">
<comment
title="Product serial (2nd part)"
desc="Product serial (2nd part)."
support="drones"
triggered="during the connection process."/>
<arg name="low" type="string">
Serial low number (hexadecimal value)
</arg>
</cmd>
<cmd name="CountryChanged" id="6" timeout="RETRY">
<comment
title="Country changed"
desc="Country changed."
support="drones"
triggered="by [SetCountry](#0-2-3)."/>
<arg name="code" type="string">
Country code with ISO 3166 format, empty string means unknown country.
</arg>
</cmd>
<cmd name="AutoCountryChanged" id="7">
<comment
title="Auto-country changed"
desc="Auto-country changed."
support="drones"
triggered="by [SetAutoCountry](#0-2-4)."/>
<arg name="automatic" type="u8">
Boolean : 0 : Manual / 1 : Auto
</arg>
</cmd>
</myclass>
<myclass name="Common" id="4">
Common commands
<cmd name="AllStates" id="0" timeout="RETRY">
<comment
title="Ask for all states"
desc="Ask for all states.\n\n
**Please note that you should not send this command if you are using the\n
libARController API as this library is handling the connection process for you.**"
support="drones"
result="The product will trigger all states events (such as [FlyingState](#1-4-1) for the Bebop).\n
Then, it will trigger [AllStatesEnd](#0-5-0)."/>
</cmd>
<cmd name="CurrentDate" id="1">
<comment
title="Set the date"
desc="Set the date.\n
This date is taken by the drone as its own date.\n
So medias and other files will be dated from this date\n\n
**Please note that you should not send this command if you are using the\n
libARController API as this library is handling the connection process for you.**"
support="drones"
result="The date of the product is set.\n
Then, it will trigger [DateChanged](#0-5-4)."/>
<arg name="date" type="string">
Date with ISO-8601 format
</arg>
</cmd>
<cmd name="CurrentTime" id="2">
<comment
title="Set the time"
desc="Set the time.\n
This time is taken by the drone as its own time.\n
So medias and other files will be dated from this time\n\n
**Please note that you should not send this command if you are using the\n
libARController API as this library is handling the connection process for you.**"
support="drones"
result="The time of the product is set.\n
Then, it will trigger [TimeChanged](#0-5-5)."/>
<arg name="time" type="string">
Time with ISO-8601 format
</arg>
</cmd>
<cmd name="Reboot" id="3">
<comment
title="Reboot"
desc="Reboot the product.\n
The product will accept this command only if is not flying."
support="drones"
result="The product will reboot if it can."/>
</cmd>
</myclass>
<myclass name="CommonState" id="5">
Common state from product
<cmd name="AllStatesChanged" id="0" timeout="RETRY">
<comment
title="All states have been sent"
desc="All states have been sent.\n\n
**Please note that you should not care about this event if you are using the libARController API as this library is handling the connection process for you.**"
support="drones"
triggered="when all states values have been sent."/>
</cmd>
<cmd name="BatteryStateChanged" id="1" buffer="NON_ACK">
<comment
title="Battery state"
desc="Battery state."
support="drones"
triggered="when the battery level changes."/>
<arg name="battery_percent" type="u8">
Battery percentage
</arg>
</cmd>
<cmd name="MassStorageStateListChanged" id="2" type="MAP_ITEM">
<comment
title="Mass storage state list"
desc="Mass storage state list."
support="drones"
triggered="when a mass storage is inserted or ejected."/>
<arg name="mass_storage_id" type="u8">
Mass storage id (unique)
</arg>
<arg name="name" type="string">
Mass storage name
</arg>
</cmd>
<cmd name="MassStorageInfoStateListChanged" id="3" type="MAP_ITEM">
<comment
title="Mass storage info state list"
desc="Mass storage info state list."
support="drones"
triggered="when a mass storage info changes."/>
<arg name="mass_storage_id" type="u8">
Mass storage state id (unique)
</arg>
<arg name="size" type="u32">
Mass storage size in MBytes
</arg>
<arg name="used_size" type="u32">
Mass storage used size in MBytes
</arg>
<arg name="plugged" type="u8">
Mass storage plugged (1 if mass storage is plugged, otherwise 0)
</arg>
<arg name="full" type="u8">
Mass storage full information state (1 if mass storage full, 0 otherwise).
</arg>
<arg name="internal" type="u8">
Mass storage internal type state (1 if mass storage is internal, 0 otherwise)
</arg>
</cmd>
<cmd name="CurrentDateChanged" id="4">
<comment
title="Date changed"
desc="Date changed.\n
Corresponds to the latest date set on the drone.\n\n
**Please note that you should not care about this event if you are using the libARController API as this library is handling the connection process for you.**"
support="drones"
triggered="by [SetDate](#0-4-1)."/>
<arg name="date" type="string">
Date with ISO-8601 format
</arg>
</cmd>
<cmd name="CurrentTimeChanged" id="5">
<comment
title="Time changed"
desc="Time changed.\n
Corresponds to the latest time set on the drone.\n\n
**Please note that you should not care about this event if you are using the libARController API as this library is handling the connection process for you.**"
support="drones"
triggered="by [SetTime](#0-4-2)."/>
<arg name="time" type="string">
Time with ISO-8601 format
</arg>
</cmd>
<cmd name="MassStorageInfoRemainingListChanged" id="6" type="LIST_ITEM" deprecated="true">
<comment
title="Mass storage remaining data list"
desc="Mass storage remaining data list."/>
<arg name="free_space" type="u32">
Mass storage free space in MBytes
</arg>
<arg name="rec_time" type="u16">
Mass storage record time reamining in minute
</arg>
<arg name="photo_remaining" type="u32">
Mass storage photo remaining
</arg>
</cmd>
<cmd name="WifiSignalChanged" id="7" buffer="NON_ACK">
<comment
title="Rssi changed"
desc="Rssi (Wifi Signal between controller and product) changed."
support="0901;0902;0905;0906;090c;090e"
triggered="regularly."/>
<arg name="rssi" type="i16">
RSSI of the signal between controller and the product (in dbm)
</arg>
</cmd>
<cmd name="SensorsStatesListChanged" id="8" type="MAP_ITEM">
<comment
title="Sensors state list"
desc="Sensors state list."
support="0901:2.0.3;0902;0905;0906;0907;0909;090a;090c;090e"
triggered="at connection and when a sensor state changes."/>
<arg name="sensorName" type="enum">
Sensor name
<enum name="IMU">
Inertial Measurement Unit sensor
</enum>
<enum name="barometer">
Barometer sensor
</enum>
<enum name="ultrasound">
Ultrasonic sensor
</enum>
<enum name="GPS">
GPS sensor
</enum>
<enum name="magnetometer">
Magnetometer sensor
</enum>
<enum name="vertical_camera">
Vertical Camera sensor
</enum>
</arg>
<arg name="sensorState" type="u8">
Sensor state (1 if the sensor is OK, 0 if the sensor is NOT OK)
</arg>
</cmd>
<cmd name="ProductModel" id="9">
<comment
title="Product sub-model"
desc="Product sub-model.\n
This can be used to customize the UI depending on the product."
support="0905;0906;0907;0909"
triggered="at connection."/>
<arg name="model" type="enum">
The Model of the product.
<enum name="RS_TRAVIS">
Travis (RS taxi) model.
</enum>
<enum name="RS_MARS">
Mars (RS space) model
</enum>
<enum name="RS_SWAT">
SWAT (RS SWAT) model
</enum>
<enum name="RS_MCLANE">
Mc Lane (RS police) model
</enum>
<enum name="RS_BLAZE">
Blaze (RS fire) model
</enum>
<enum name="RS_ORAK">
Orak (RS carbon hydrofoil) model
</enum>
<enum name="RS_NEWZ">
New Z (RS wooden hydrofoil) model
</enum>
<enum name="JS_MARSHALL">
Marshall (JS fire) model
</enum>
<enum name="JS_DIESEL">
Diesel (JS SWAT) model
</enum>
<enum name="JS_BUZZ">
Buzz (JS space) model
</enum>
<enum name="JS_MAX">
Max (JS F1) model
</enum>
<enum name="JS_JETT">
Jett (JS flames) model
</enum>
<enum name="JS_TUKTUK">
Tuk-Tuk (JS taxi) model
</enum>
<enum name="SW_BLACK">
Swing black model
</enum>
<enum name="SW_WHITE">
Swing white model
</enum>
</arg>
</cmd>
<cmd name="CountryListKnown" id="10" type="LIST_ITEM" deprecated="true">
<comment
title="Country list"
desc="List of countries known by the drone."/>
<arg name="listFlags" type="u8">
List entry attribute Bitfield.
0x01: First: indicate it's the first element of the list.
0x02: Last: indicate it's the last element of the list.
0x04: Empty: indicate the list is empty (implies First/Last). All other arguments should be ignored.
</arg>
<arg name="countryCodes" type="string">
Following of country code with ISO 3166 format, separated by ";". Be careful of the command size allowed by the network used. If necessary, split the list in several commands.
</arg>
</cmd>
<cmd name="DeprecatedMassStorageContentChanged" id="11" type="MAP_ITEM" deprecated="true">
<comment
title="Mass storage content changed"
desc="Mass storage content changed."/>
<arg name="mass_storage_id" type="u8">
Mass storage id (unique)
</arg>
<arg name="nbPhotos" type="u16">
Number of photos (does not include raw photos)
</arg>
<arg name="nbVideos" type="u16">
Number of videos
</arg>
<arg name="nbPuds" type="u16">
Number of puds
</arg>
<arg name="nbCrashLogs" type="u16">
Number of crash logs
</arg>
</cmd>
<cmd name="MassStorageContent" id="12" type="MAP_ITEM">
<comment
title="Mass storage content"
desc="Mass storage content."
support="090c:4.0.0;090e:4.0.0"
triggered="when the content of the mass storage changes."/>
<arg name="mass_storage_id" type="u8">
Mass storage id (unique)
</arg>
<arg name="nbPhotos" type="u16">
Number of photos (does not include raw photos)
</arg>
<arg name="nbVideos" type="u16">
Number of videos
</arg>
<arg name="nbPuds" type="u16">
Number of puds
</arg>
<arg name="nbCrashLogs" type="u16">
Number of crash logs
</arg>
<arg name="nbRawPhotos" type="u16">
Number of raw photos
</arg>
</cmd>
<cmd name="MassStorageContentForCurrentRun" id="13" type="MAP_ITEM">
<comment
title="Mass storage content for current run"
desc="Mass storage content for current run.\n
Only counts the files related to the current run (see [RunId](#0-30-0))"
support="090c:4.0.0;090e:4.0.0"
triggered="when the content of the mass storage changes and this content is related to the current run."/>
<arg name="mass_storage_id" type="u8">
Mass storage id (unique)
</arg>
<arg name="nbPhotos" type="u16">
Number of photos (does not include raw photos)
</arg>
<arg name="nbVideos" type="u16">
Number of videos
</arg>
<arg name="nbRawPhotos" type="u16">
Number of raw photos
</arg>
</cmd>
<cmd name="VideoRecordingTimestamp" id="14">
<comment
title="Video recording timestamp"
desc="Current or last video recording timestamp.\n
Timestamp in milliseconds since 00:00:00 UTC on 1 January 1970.\n
**Please note that values don't persist after drone reboot**"
triggered="on video recording start and video recording stop or \n
after that the date/time of the drone changed."/>
<arg name="startTimestamp" type="u64">
Timestamp in milliseconds since 00:00:00 UTC on 1 January 1970.
</arg>
<arg name="stopTimestamp" type="u64">
Timestamp in milliseconds since 00:00:00 UTC on 1 January 1970. 0 mean that video is still recording.
</arg>
</cmd>
</myclass>
<myclass name="OverHeat" id="6">
Over heat commands
<cmd name="SwitchOff" id="0" deprecated="true">
<comment
title="Switch off after an overheat"
desc="Switch off after an overheat."
support="none"
result="None"/>
</cmd>
<cmd name="Ventilate" id="1" deprecated="true">
<comment
title="Ventilate after an overheat"
desc="Ventilate after an overheat."
support="none"
result="None"/>
</cmd>
</myclass>
<myclass name="OverHeatState" id="7">
Overheat state from product
<cmd name="OverHeatChanged" id="0" deprecated="true">
<comment
title="Overheat"
desc="Overheat temperature reached."/>
</cmd>
<cmd name="OverHeatRegulationChanged" id="1">
<comment
title="Overheat regulation type"
desc="Overheat regulation type."/>
<arg name="regulationType" type="u8">
Type of overheat regulation : 0 for ventilation, 1 for switch off
</arg>
</cmd>
</myclass>
<myclass name="Controller" id="8">
Notify the device about the state of the controller application.
<cmd name="isPiloting" id="0">
<comment
title="Inform about hud entering"
desc="Inform about hud entering.\n
Tell the drone that the controller enters/leaves the piloting hud.\n
On a non-flying products it is used to know when a run begins."
support="drones"
result="If yes, the product will begin a new session (so it should send a new [runId](#0-30-0)).\n
Also, on the JumpingSumos, if the video is in autorecord mode, it will start recording."/>
<arg name="piloting" type="u8">
0 when the application is not in the piloting HUD, 1 when it enters the HUD.
</arg>
</cmd>
</myclass>
<myclass name="WifiSettings" id="9">
Wifi settings commands
<cmd name="OutdoorSetting" id="0">
<comment
title="Set wifi outdoor mode"
desc="Set wifi indoor/outdoor mode.\n
**Please note that you might be disconnected from the product after changing the indoor/outdoor setting as it changes Wifi parameters.**"
support="0901;0902;0905;0906;090c;090e"
result="The product change its indoor/outdoor wifi settings.\n
Then, it will trigger [WifiOutdoorMode](#0-10-0)."/>
<arg name="outdoor" type="u8">
1 if it should use outdoor wifi settings, 0 otherwise
</arg>
</cmd>
</myclass>
<myclass name="WifiSettingsState" id="10">
Wifi settings state from product
<cmd name="outdoorSettingsChanged" id="0">
<comment
title="Wifi outdoor mode"
desc="Wifi outdoor mode."
support="0901;0902;0905;0906;090c;090e"
triggered="by [SetWifiOutdoorMode](#0-9-0)."/>
<arg name="outdoor" type="u8">
1 if it should use outdoor wifi settings, 0 otherwise
</arg>
</cmd>
</myclass>
<myclass name="Mavlink" id="11">
Mavlink flight plans commands
<cmd name="Start" id="0">
<comment
title="Start a FlightPlan"
desc="Start a FlightPlan based on a mavlink file existing on the drone.\n\n
Requirements are:\n
* Product is calibrated\n
* Product should be in outdoor mode\n
* Product has fixed its GPS\n"
support="0901:2.0.29;090c;090e"
result="If the FlightPlan has been started, event [FlightPlanPlayingStateChanged](#0-12-0) is triggered with param state set to *playing*.\n
Otherwise, event [FlightPlanPlayingStateChanged](#0-12-0) is triggered with param state set to stopped and event [MavlinkPlayErrorStateChanged](#0-12-1) is triggered with an explanation of the error."/>
<arg name="filepath" type="string">
flight plan file path from the mavlink ftp root
</arg>
<arg name="type" type="enum">
type of the played mavlink file
<enum name="flightPlan">
Mavlink file for FlightPlan
</enum>
<enum name="mapMyHouse">
Mavlink file for MapMyHouse
</enum>
</arg>
</cmd>
<cmd name="Pause" id="1">
<comment
title="Pause a FlightPlan"
desc="Pause a FlightPlan that was playing.\n
To unpause a FlightPlan, see [StartFlightPlan](#0-11-0)\n"
support="0901:2.0.29;090c;090e"
result="The currently playing FlightPlan will be paused. Then, event [FlightPlanPlayingStateChanged](#0-12-0) is triggered with param state set to the current state of the FlightPlan (should be *paused* if everything went well)."/>
</cmd>
<cmd name="Stop" id="2">
<comment
title="Stop a FlightPlan"
desc="Stop a FlightPlan that was playing.\n"
support="0901:2.0.29;090c;090e"
result="The currently playing FlightPlan will be stopped. Then, event [FlightPlanPlayingStateChanged](#0-12-0) is triggered with param state set to the current state of the FlightPlan (should be *stopped* if everything went well)."/>
</cmd>
</myclass>
<myclass name="MavlinkState" id="12">
Mavlink flight plans states commands
<cmd name="MavlinkFilePlayingStateChanged" id="0">
<comment
title="Playing state of a FlightPlan"
desc="Playing state of a FlightPlan."
support="0901:2.0.29;090c;090e"
triggered="by [StartFlightPlan](#0-11-0), [PauseFlightPlan](#0-11-1) or [StopFlightPlan](#0-11-2)."/>
<arg name="state" type="enum">
State of the mavlink
<enum name="playing">
Mavlink file is playing
</enum>
<enum name="stopped">
Mavlink file is stopped (arg filepath and type are useless in this state)
</enum>
<enum name="paused">
Mavlink file is paused
</enum>
<enum name="loaded">
Mavlink file is loaded (it will be played at take-off)
</enum>
</arg>
<arg name="filepath" type="string">
flight plan file path from the mavlink ftp root
</arg>
<arg name="type" type="enum">
type of the played mavlink file
<enum name="flightPlan">
Mavlink file for FlightPlan
</enum>
<enum name="mapMyHouse">
Mavlink file for MapMyHouse
</enum>
</arg>
</cmd>
<cmd name="MavlinkPlayErrorStateChanged" id="1" deprecated="true">
<comment
title="FlightPlan error"
desc="FlightPlan error."
support="0901:2.0.29;090c;090e"
triggered="by [StartFlightPlan](#0-11-0) if an error occurs."/>
<arg name="error" type="enum">
State of play error
<enum name="none">
There is no error
</enum>
<enum name="notInOutDoorMode">
The drone is not in outdoor mode
</enum>
<enum name="gpsNotFixed">
The gps is not fixed
</enum>
<enum name="notCalibrated">
The magnetometer of the drone is not calibrated
</enum>
</arg>
</cmd>
<cmd name="MissionItemExecuted" id="2" content="NOTIFICATION">
<comment
title="Mission item executed"
desc="Mission item has been executed."
support="090c:4.2.0;090e:1.4.0"
triggered="when a mission item has been executed during a flight plan."/>
<arg name="idx" type="u32">
Index of the mission item. This is the place of the mission item in the list of the items of the mission.
Begins at 0.
</arg>
</cmd>
</myclass>
<myclass name="FlightPlanSettings" id="32">
<cmd name="ReturnHomeOnDisconnect" id="0">
<comment
title="Set ReturnHome behavior during FlightPlan"
desc="Set ReturnHome behavior during FlightPlan\n
When set, drone will return home, after return home delay, if a disconnection occurs during execution of FlightPlan"
support="0901:4.1.0;090c:4.1.0;090e:1.4.0"
result="The return home mode is enabled or disabled.\n
Then, event [ReturnHomeOnDisconnectionChanged](#0-33-0) is triggered."/>
<arg name="value" type="u8">
1 to enable, 0 to disable
</arg>
</cmd>
</myclass>
<myclass name="FlightPlanSettingsState" id="33">
<cmd name="ReturnHomeOnDisconnectChanged" id="0">
<comment
title="ReturnHome behavior during FlightPlan"
desc="Define behavior of drone when disconnection occurs during a flight plan"
support="0901:4.1.0;090c:4.1.0;090e:1.4.0"
triggered="by [setReturnHomeOnDisconnectMode](#0-32-0)."/>
<arg name="state" type="u8">
1 if enabled, 0 if disabled
</arg>
<arg name="isReadOnly" type="u8">
1 if readOnly, 0 if writable
</arg>
</cmd>
</myclass>
<myclass name="Calibration" id="13">
Calibration commands
<cmd name="MagnetoCalibration" id="0">
<comment
title="Start/Abort magnetometer calibration"
desc="Start or abort magnetometer calibration process.\n"
support="0901;090c;090e"
result="The magnetometer calibration process is started or aborted. Then, event [MagnetoCalibrationStartedChanged](#0-14-3) is triggered.\n
If started, event [MagnetoCalibrationStateChanged](#0-14-3) is triggered with the current calibration state: a list of all axis and their calibration states.\n
It will also trigger [MagnetoCalibrationAxisToCalibrateChanged](#0-14-2), that will inform the controller about the current axis to calibrate."/>
<arg name="calibrate" type="u8">
1 if the calibration should be started, 0 if it should be aborted
</arg>
</cmd>
<cmd name="PitotCalibration" id="1">
<comment
title="Start/Abort Pitot calibration"
desc="Start or abort Pitot tube calibration process.\n"
support="090e:1.1.0"
result="The pitot calibration process is started or aborted. Then, event [PitotCalibrationStateChanged](#0-14-4) is triggered with the current calibration state."/>
<arg name="calibrate" type="u8">
1 if the calibration should be started, 0 if it should be aborted
</arg>
</cmd>
</myclass>
<myclass name="CalibrationState" id="14">
Status of the calibration
<cmd name="MagnetoCalibrationStateChanged" id="0">
<comment
title="Magneto calib process axis state"
desc="Magneto calib process axis state."
support="0901;090c;090e"
triggered="when the calibration process is started with [StartOrAbortMagnetoCalib](#0-13-0) and each time an axis calibration state changes."/>
<arg name="xAxisCalibration" type="u8">
State of the x axis (roll) calibration : 1 if calibration is done, 0 otherwise
</arg>
<arg name="yAxisCalibration" type="u8">
State of the y axis (pitch) calibration : 1 if calibration is done, 0 otherwise
</arg>
<arg name="zAxisCalibration" type="u8">
State of the z axis (yaw) calibration : 1 if calibration is done, 0 otherwise
</arg>
<arg name="calibrationFailed" type="u8">
1 if calibration has failed, 0 otherwise. If this arg is 1, consider all previous arg as 0
</arg>
</cmd>
<cmd name="MagnetoCalibrationRequiredState" id="1">
<comment
title="Calibration required"
desc="Calibration required."
support="0901;090c;090e"
triggered="when the calibration requirement changes."/>
<arg name="required" type="u8">
1 if calibration is required, 0 if current calibration is still valid
</arg>
</cmd>
<cmd name="MagnetoCalibrationAxisToCalibrateChanged" id="2">
<comment
title="Axis to calibrate during calibration process"
desc="Axis to calibrate during calibration process."
support="0901;090c;090e"
triggered="during the calibration process when the axis to calibrate changes."/>
<arg name="axis" type="enum">
The axis to calibrate
<enum name="xAxis">
If the current calibration axis should be the x axis
</enum>
<enum name="yAxis">
If the current calibration axis should be the y axis
</enum>
<enum name="zAxis">
If the current calibration axis should be the z axis
</enum>
<enum name="none">
If none of the axis should be calibrated
</enum>
</arg>
</cmd>
<cmd name="MagnetoCalibrationStartedChanged" id="3">
<comment
title="Calibration process state"
desc="Calibration process state."
support="0901;090c;090e"
triggered="by [StartOrAbortMagnetoCalib](#0-13-0) or when the process ends because it succeeded."/>
Status of the calibration process
<arg name="started" type="u8">
1 if calibration has started, 0 otherwise
</arg>
</cmd>
<cmd name="PitotCalibrationStateChanged" id="4">
Sent when the state of the pitot calibration has changed
<arg name="state" type="enum">
State of pitot calibration
<enum name="done">
Calibration is ok
</enum>
<enum name="ready">
Calibration is started, waiting user action
</enum>
<enum name="in_progress">
Calibration is in progress
</enum>
<enum name="required">
Calibration is required
</enum>
</arg>
<arg name="lastError" type="u8">
lastError : 1 if an error occured and 0 if not
</arg>
</cmd>
</myclass>
<myclass name="CameraSettingsState" id="15">
Status of the camera settings
<cmd name="CameraSettingsChanged" id="0">
<comment
title="Camera info"
desc="Camera info."
support="0901;090c;090e"
triggered="at connection."/>
<arg name="fov" type="float">
Value of the camera horizontal fov (in degree)
</arg>
<arg name="panMax" type="float">
Value of max pan (right pan) (in degree)
</arg>
<arg name="panMin" type="float">
Value of min pan (left pan) (in degree)
</arg>
<arg name="tiltMax" type="float">
Value of max tilt (top tilt) (in degree)
</arg>
<arg name="tiltMin" type="float">
Value of min tilt (bottom tilt) (in degree)
</arg>
</cmd>
</myclass>
<myclass name="GPS" id="16">
GPS related commands
<cmd name="ControllerPositionForRun" id="0">
<comment
title="Set the position of a run"
desc="Set the position of a run.\n
This will let the product know the controller location for the flight/run. The location is typically used to geotag medias.\n
Only used on products that have no gps.\n
Watch out, this command is not used by BLE products."
support="0902;0905;0906"
result="The position is set."/>
<arg name="latitude" type="double">
Controller latitude in decimal degrees
</arg>
<arg name="longitude" type="double">
Controller longitude in decimal degrees
</arg>
</cmd>
</myclass>
<myclass name="FlightPlanState" id="17">
FlightPlan state commands
<cmd name="AvailabilityStateChanged" id="0">
<comment
title="FlightPlan availability"
desc="FlightPlan availability.\n
Availability is linked to GPS fix, magnetometer calibration, sensor states..."
support="0901:2.0.29;090c;090e"
triggered="on change."/>
<arg name="AvailabilityState" type="u8">
Running a flightPlan file is available (1 running a flightPlan file is available, otherwise 0)
</arg>
</cmd>
<cmd name="ComponentStateListChanged" id="1" type="MAP_ITEM">
<comment
title="FlightPlan components state list"
desc="FlightPlan components state list."
support="0901:2.0.29;090c;090e"
triggered="when the state of required components changes. \n
GPS component is triggered when the availability of the GPS of the drone changes. \n
Calibration component is triggered when the calibration state of the drone sensors changes \n
Mavlink_File component is triggered when the command [StartFlightPlan](#0-11-0) is received. \n
Takeoff component is triggered when the drone needs to take-off to continue the FlightPlan. \n
WaypointsBeyondGeofence component is triggered when the command [StartFlightPlan](#0-11-0) is received."/>
<arg name="component" type="enum">
Drone FlightPlan component id (unique)
<enum name="GPS">
Drone GPS component.
State is 0 when the drone needs a GPS fix.
</enum>
<enum name="Calibration">
Drone Calibration component.
State is 0 when the sensors of the drone needs to be calibrated.
</enum>
<enum name="Mavlink_File">
Mavlink file component.
State is 0 when the mavlink file is missing or contains error.
</enum>
<enum name="TakeOff">
Drone Take off component.
State is 0 when the drone cannot take-off.
</enum>
<enum name="WaypointsBeyondGeofence">
Component for waypoints beyond the geofence.
State is 0 when one or more waypoints are beyond the geofence.
</enum>
</arg>
<arg name="State" type="u8">
State of the FlightPlan component (1 FlightPlan component OK, otherwise 0)
</arg>
</cmd>
<cmd name="LockStateChanged" id="2">
<comment
title="FlightPlan lock state"
desc="FlightPlan lock state.\n
Represents the fact that the controller is able or not to stop or pause a playing FlightPlan"
support="0901:2.0.29;090c;090e"
triggered="when the lock changes."/>
<arg name="LockState" type="u8">
1 if FlightPlan is locked: can't pause or stop FlightPlan.
0 if FlightPlan is unlocked: pause or stop available.
</arg>
</cmd>
</myclass>
<myclass name="FlightPlanEvent" id="19">
FlightPlan Event commands
<cmd name="StartingErrorEvent" id="0" content="NOTIFICATION">
<comment
title="FlightPlan start error"
desc="FlightPlan start error.\n\n
**This event is a notification, you can't retrieve it in the cache of the device controller.**"
support="0901:2.0.29;090c;090e"
triggered="on an error after a [StartFlightPlan](#0-11-0)."/>
</cmd>
<cmd name="SpeedBridleEvent" id="1" content="NOTIFICATION">
<comment
title="FlightPlan speed clamping"
desc="FlightPlan speed clamping.\n
Sent when a speed specified in the FlightPlan file is considered too high by the drone.\n\n
**This event is a notification, you can't retrieve it in the cache of the device controller.**"
support="none"
triggered="on an speed related clamping after a [StartFlightPlan](#0-11-0)."/>
</cmd>
</myclass>