|
We calculate a Status Message length for a well equipped Unmanned Aircraft with:
-
three engines
-
three battery units
-
one generator
-
five Power Supply Units
-
four altimeters (3 ultrasonic + 1 LIDAR)
-
five communication systems (3 VHF + 1 satellite modem + 1 GSM modem)
-
a Sense and Avoid system
-
four cameras
|
BLOCK 0
|
|
section
|
Bytes
|
|
Preamble =
55:55:55:55:55:55:0F:0F
consisting of:
6 x NULL_0101
NULL_0101 = 01010101 = HEX 55
2 x Preamble_0
Preamble_0 = 00001111 = HEX 0F
|
8
|
|
padding with n x NULL_0101
|
34
|
|
Payload
|
44
|
|
BLOCK 0 checksum
|
4
|
|
BLOCK 1
|
|
section
|
Bytes
|
|
padding with
NULL_0101
NULL_0101
= HEX 55 = 0101 0101
|
0
|
|
Header
|
28
|
|
Power
|
54
|
|
GPS
|
67
|
|
Warnings
|
15
|
|
Communications systems
|
59
|
|
BLOCK 2
|
|
|
section
|
Bytes
|
|
padding with
NULL_0101
NULL_0101 = HEX 55 = 0101 0101
|
2
|
|
IMU
|
52
|
|
FCU
|
105
|
|
Sense and Avoid system
|
58
|
|
End_Of_String
|
1
|
-
BLOCK 0 has a 4 Byte unsigned integer checksum, but is not FEC encoded since the
Payload Status is not considered to be "mission critical" from a command and
control perspective
-
BLOCK 1 is FEC encoded to 255 Bytes, as is BLOCK 2, using Reed Solomon
RS(255,223) coding.
-
If the data in BLOCK 1 or in BLOCK 2 is less than 233 Bytes,
then the data is padded with
NULL_0101
to 233 Bytes.
NULL_0101
= 0101 0101, i.e. an alternating sequence of ONEs and ZEROs.
-
BLOCK 0, 1 and 2 data may be encrypted using an algorithm that does not increase
the message size. Any encryption of BLOCK 1 and BLOCK 2 data is performed prior
to FEC encoding.
-
The Payload BLOCK 0 + FEC encoded BLOCK 1 + FEC encoded BLOCK 2 = 600 Bytes =
4,800 bits.
-
This Status Message is BYTE multiplexed with the 4,800 bps digitised voice
channel to end up with a 9,600 bps digital data signal that can be transmitted
via a satellite phone modem.
return to top
Status Message keywords
|
B0 HEX
Item_ID
|
name
|
Value
Bytes
|
comments on B1:B2:B3:B4
|
|
00
|
End_Of_String
|
0
|
Reserved for use at the end of the BLOCK 2 section.
|
|
01
|
BEGIN
|
1
|
beginning of section; B1 = section ID (shown next)
|
|
00 = HEADER (message header data: message_ID,...)
01 = IMU (Inertial Measurement Unit)
02 = FCU (Flight Control Unit)
03 = POWER (electrical power supplies monitoring)
04 = WARNINGS (warning flags: ON, OFF)
05 = COMMS (status of comms systems; BER, RSSI)
06 = PAYLOAD (any warnings from payload)
07 = GPS (GPS data, received each second)
08 = SENSE (from Sense and Avoid system, if fitted)
09 = engine
0A = flaps
0B = altimeter
0C = FCU_general
0D = battery
0E = PSU
0F = comms_system
10 = GPS_satellite
11 = air_object
12 = camera
13 = generator
|
|
02
|
END
|
0
|
end of section
|
|
03
|
ID_msg
|
3
|
16,777,216 unique message IDs
sufficient for 194 day (each 24 hours) UA flight
|
|
04
|
ID_UA_source
|
4
|
B1:B2 = country code = the International Telephone Dialling Code, where the
largest number = 1929 (the North American Numbering Plan) for Puerto Rico.
B3:B4 =
65,536
unique IDs
|
|
05
|
time_UTC
|
3
|
hhmmss with hh using 24 hour UTC GPS clock
eg: 231205 = 23h:12:05 = 5 seconds past 11:12 pm
|
|
06
|
date_UTC
|
3
|
Format is yymmdd
example 080117 = 17 JAN 2008
|
|
07
|
ID_BLK12_format
|
2
|
B1 = BLOCK 1 format ID from 0 to 255
B2 = BLOCK 2 format ID from 0 to 255
|
|
08
|
ID_GCS_destination
|
4
|
B1:B2 = country code = the International Telephone Dialling Code, where the
largest number = 1929 (the North American Numbering Plan) for Puerto Rico.
B3:B4 =
65,536
unique IDs
|
|
09
|
ID_GCS_backup
|
4
|
B1:B2 = country code = the International Telephone Dialling Code, where the
largest number = 1929 (the North American Numbering Plan) for Puerto Rico.
B3:B4 =
65,536
unique IDs
|
|
0A - 0E
|
unused
|
|
5 Item_ID Bytes reserved for future use.
|
|
0F
|
Preamble_0
|
0
|
Used in the Preamble
HEX 0F = BIN 0000 1111
|
Example
|
text format
|
binary format
|
|
BEGIN HEADER
|
01:00 (not included)
|
|
ID_msg
|
ID_msg 133
|
03:00:00:85
|
|
ID_UA_source
|
ID_UA_source
GB_133
|
04:2C:00:00:85
|
|
time_UTC
|
time_UTC 16:35:23
|
05:02:7E:C3
|
|
date_UTC
|
date_UTC 071114
|
06:01:15:CA
|
|
ID_BLK12_format
|
ID_BLK12_format 5 15
|
07:05:0F
|
|
ID_GCS_destination
|
ID_GCS_destination
|
08:2C:76:12:46
|
|
ID_GCS_backup
|
ID_GCS_backup
|
09:2C:A1:23:77
|
|
END
|
02 (not included)
|
Note that the BEGIN HEADER and the END Item_IDs are not included to save message
length.
-
HEADER binary message section length = 28 Bytes
return to top
IMU section
|
B0 HEX
Item_ID
|
name
|
Value
Bytes
|
comments on B1:B2:B3
|
|
10
|
IMU_gyro_x
|
3
|
0 to +/- 8,388,607 millidegrees / sec in B1:B2:B3 format
|
|
11
|
IMU_gyro_y
|
3
|
0 to +/- 8,388,607 millidegrees / sec in B1:B2:B3 format
|
|
12
|
IMU_gyro_z
|
3
|
0 to +/- 8,388,607 millidegrees / sec in B1:B2:B3 format
|
|
13
|
IMU_accel_AVG_x
|
3
|
0 to +/- 8,388,607 ug in B1:B2:B3 format (g = 9.8m/s
2
)
|
|
14
|
IMU_accel_AVG_y
|
3
|
0 to +/- 8,388,607 ug in B1:B2:B3 format (g = 9.8m/s
2
)
|
|
15
|
IMU_accel_AVG_z
|
3
|
0 to +/- 8,388,607 ug in B1:B2:B3 format (g = 9.8m/s
2
)
|
|
16
|
IMU_mag_x
|
3
|
0 +/- 8,388,607 nT in B1:B2:B3 format
Earth's magnetic field strength = 48,489 nT
|
|
17
|
IMU_mag_y
|
3
|
0 to +/- 8,388,607 nT in B1:B2:B3 frmat
|
|
18
|
IMU_mag_z
|
3
|
0 to +/- 8,388,607 nT in B1:B2:B3 format
|
|
19
|
IMU_inclin_x
|
2
|
0 to +/- 32,767 millidegrees in B1:B2 format
This is the "angle-of-attack".
|
|
1A
|
IMU_inclin_y
|
2
|
0 to +/- 32,767 millidegrees in B1:B2 format
This is the "horizontal situation indicator".
|
|
1B
|
IMU_temp
|
2
|
IMU_temp = B1:B2 / 100 in degrees Centigrade
B1B2 / 100 = 0 to 655.35 degrees Centigrade
|
|
1C
|
IMU_AMP_vib_x
|
3
|
0 to 16,777,215 ug in B1:B2:B3 format (g = 9.8m/s
2
)
vibration amplitude of largest peak in spectrum (not f=0)
|
|
1D
|
IMU_FREQ_vib_x
|
3
|
0 to 16,777,215 milliHz in B1:B2:B3 format
vibration frequency of largest peak in spectrum (not f=0)
suitable for engine related vibrations to 1,006,632 rpm
|
|
1E
|
IMU_AMP_vib_y
|
3
|
0 to 16,777,215 ug in B1:B2:B3 format (g = 9.8m/s
2
)
|
|
1F
|
IMU_FREQ_vib_y
|
3
|
0 to 16,777,215 milliHz in B1:B2:B3 format
|
|
20
|
IMU_AMP_vib_z
|
3
|
0 to 16,777,215 ug in B1:B2:B3 format (g = 9.8m/s
2
)
|
|
21
|
IMU_FREQ_vib_z
|
3
|
0 to 16,777,215 milliHz in B1:B2:B3 format
|
|
22 - 2E
|
unused
|
|
13 Item_ID Bytes reserved for future use.
|
|
2F
|
IMU_fault
|
1
|
B1 = 0 to 255
if B1 = 0 no fault is reported from the IMU
if B1 = 1 to 255, fault number B1 was reported by IMU
|
Example
|
text format
|
binary format
|
|
BEGIN IMU
|
01:01 (not included)
|
|
IMU Item_IDs
|
52 Bytes
|
|
END
|
02 (not included)
|
-
IMU binary message section length = 52 Bytes
return to top
FCU section
FCU section: engine
|
B0 HEX
Item_ID
|
name
|
Value
Bytes
|
comments on B1:B2:B3:B4
|
|
30
|
eng_ID
|
1
|
0 to 255
|
|
31
|
eng_prop_pitch
|
2
|
0 to 255
0 = one extreme
255 = the other extreme
|
|
32
|
eng_speed_ACT
|
2
|
engine_speed = B1:B2 * 10
B1:B2 * 10 = 0 to 655,350 rpm
|
|
33
|
eng_carb_SET
|
1
|
0 to 255 where 255 = max setting
|
|
34
|
eng_TEMP
|
2
|
temp = B1:B2 / 100 degrees Centigrade
B1:B2 / 100 = 0 to 655.35 degrees Centigrade
|
|
35
|
eng_TEMP_exhaust
|
2
|
temp = B1:B2 / 100 degrees Centigrade
B1:B2 / 100 = 0 to 655.35 degrees Centigrade
|
|
36
|
eng_flow_rate_fuel
|
2
|
16 bit value from ADC in arbitrary units
|
|
37
|
eng_AMP_vib
|
3
|
0 to 16,777,215 ug in B1:B2:B3 format (g = 9.8m/s
2
)
vibration amplitude of largest peak in spectrum (not f=0)
|
|
38 - 3F
|
unused
|
|
8 Item_ID Bytes reserved for future use
|
FCU engine binary message section length = 15 Bytes per engine
FCU section: flaps
|
B0 HEX
Item_ID
|
name
|
Value
Bytes
|
comments on B1
|
|
40
|
F_aileron_LHS_set
|
1
|
0 to +/- 127 degrees
|
|
41
|
F_aileron_LHS_act
|
1
|
0 to +/- 127 degrees
|
|
42
|
F_aileron_RHS_set
|
1
|
0 to +/- 127 degrees
|
|
43
|
F_aileron_RHS_act
|
1
|
0 to +/- 127 degrees
|
|
44
|
F_lift_LHS_set
|
1
|
0 to +/- 127 degrees
|
|
45
|
F_lift_LHS_actual
|
1
|
0 to +/- 127 degrees
|
|
46
|
F_lift_RHS_set
|
1
|
0 to +/- 127 degrees
|
|
47
|
F_lift_RHS_actual
|
1
|
0 to +/- 127 degrees
|
|
48
|
F_rudder_set
|
1
|
0 to +/- 127 degrees
|
|
49
|
F_rudder_actual
|
1
|
0 to +/- 127 degrees
|
|
4A
|
F_elev_LHS_set
|
1
|
0 to +/- 127 degrees
|
|
4B
|
F_elev_LHS_actual
|
1
|
0 to +/- 127 degrees
|
|
4C
|
F_elev_RHS_set
|
1
|
0 to +/- 127 degrees
|
|
4D
|
3_elev_RHS_actual
|
1
|
0 to +/- 127 degrees
|
|
4E
|
F_airbrake_LHS_set
|
1
|
0 to +/- 127 degrees
|
|
4F
|
F_airbrake_LHS_act
|
1
|
0 to +/- 127 degrees
|
|
50
|
F_airbrake_RHS_set
|
1
|
0 to +/- 127 degrees
|
|
51
|
F_airbrake_RHS_act
|
1
|
0 to +/- 127 degrees
|
|
52 - 54
|
reserved
|
|
2 Item_ID Bytes reserved for future use
|
|
55
|
NULL_0101
|
0
|
This is a NULL command used to pad out BLOCKs
HEX 55 = BIN 0101 0101
The complimentary command is AA = NULL_1010
|
|
56 - 5F
|
unused
|
|
10 Item_ID Bytes reserved for future use
|
FCU flaps binary message section length = 18 Bytes
FCU section: general
|
B0 HEX
Item_ID
|
name
|
Value
Bytes
|
comments on B1:B2:B3:B4:B5
|
|
60
|
FCU_pressure_BARO
|
3
|
0 to 16,777,215 Pa
zero altitude = 101,325 Pa
|
|
61
|
FCU_speed_air_pitot
|
2
|
0 to 65,535 cm/s (= 2,359 kph = 1,466 mph)
|
|
62
|
FCU_fuel_1
|
2
|
0 to 65,535 millilitres (cc)
|
|
63
|
FCU_fuel_2
|
2
|
0 to 65,535 millilitres (cc)
|
|
64
|
FCU_fuel_3
|
2
|
0 to 65,535 millilitres (cc)
|
|
65
|
FCU_direction_wind
|
2
|
0 to 359 degrees: NORTH is 0 degrees
|
|
66
|
FCU_speed_wind
|
1
|
0 to 255 kph (= 158 mph)
|
|
67
|
FCU_height_AGL_ALT
|
4
|
B1 = altimeter_type
where U = ultrasonic; L = LIDAR; M = microwave
B2 = altimeter_ID from 0 to 255
B3:B4:B5 = 0 to 16,777,215 mm (16.7 km = FL550)
|
|
68
|
FCU_dx_OpFlow
|
2
|
0 to 65,535 cm (655 m/s = 2,359 kph = 1,465 mph)
|
|
69
|
FCU_dy_OpFlow
|
2
|
0 to 65,535 cm (655 m/s = 2,359 kph = 1,465 mph)
|
|
6A
|
FCU_dPITCH_OpFlow
|
2
|
0 to +/- 32,767 millidegrees
|
|
6B
|
FCU_dROLL_OpFlow
|
2
|
0 to +/- 32,767 millidegrees
|
|
6C
|
FCU_light_ambient
|
3
|
ambient_light = B1:B2:B3 / 100
ambient_light = 0 to 167,772.15 LUX
sunlight = 100,000 LUX; moonlight = 0.1 LUX
|
|
6D - 6E
|
unused
|
|
2 Item_ID Bytes reserved for future use
|
|
6F
|
FCU_fault
|
1
|
B1 = 0 to 255
if B1 = 0 no fault is reported from the FCU
if B1 = 1 to 255, fault number B1 was reported by FCU
|
FCU general binary message section length = 26 + n * 4 Bytes where n = number of
altimeters
FCU general binary message section length = 42 Bytes for 4 altimeters: 3
ultrasonic + 1 LIDAR
Example
|
text format
|
binary format
|
|
BEGIN FCU
|
01:02 (not included)
|
|
BEGIN engine
|
01:09 (not included)
|
15 Bytes per engine
|
|
FCU engine Item_IDs
|
15 Bytes per engine
|
|
END
|
02 (not included)
|
|
BEGIN flaps
|
01:0A (not included)
|
18 Bytes
|
|
FCU flaps Item_IDs
|
18 Bytes
|
|
END
|
02 (not included)
|
|
BEGIN FCU_general
|
01:0C (not included)
|
|
FCU general Item_IDs
|
42 Bytes for a four altimeter system
|
|
END
|
02 (not included)
|
|
END
|
02 (not included)
|
-
FCU binary message section length = 105 Bytes for 3 engines, 4 altimeters,
Unmanned Aircraft
return to top
Power
|
B0 HEX
Item_ID
|
name
|
Value
Bytes
|
comments B1:B2:B3
|
|
70
|
batt_ID
|
1
|
0 to 255
|
|
71
|
batt_voltage
|
2
|
0 to 65,535 mV
|
|
72
|
batt_current
|
2
|
0 to 65,535 mA
|
|
73
|
batt_TEMP
|
1
|
0 to 255 degrees Centigrade
|
|
74
|
gen_ID
|
1
|
0 to 255
|
|
75
|
gen_RMS_voltage
|
2
|
0 to 65,535 mV
|
|
76
|
gen_RMS_current
|
2
|
0 to 65,535 mA
|
|
77
|
gen_TEMP
|
1
|
0 to 255
|
|
78
|
PSU_ID
|
1
|
0 to 255
|
|
79
|
PSU_voltage
|
2
|
0 to 65,535 mV with referece to GROUND
|
|
7A
|
PSU_current
|
2
|
0 to 65,535 mA
|
|
7B
|
PSU_TEMP
|
1
|
0 to 255 degrees Centigrade
|
|
7C - 7F
|
unused
|
|
4 Item_ID Bytes reserved for future use
|
Example
|
text format
|
binary format
|
|
BEGIN POWER
|
01:03 (not included)
|
|
BEGIN battery
|
01:0D (not included)
|
6 Bytes per battery
|
|
battery Item_IDs
|
6 Bytes
|
|
END battery
|
02 (not included)
|
|
BEGIN generator
|
01:1D (not included)
|
6 Bytes per generator
|
|
generator Item_IDs
|
6 Bytes
|
|
END_generator
|
02 (not included)
|
|
BEGIN PSU
|
01:1E (not included)
|
6 Bytes per PSU
|
|
PSU Item_IDs
|
6 Bytes
|
|
END PSU
|
02 (not included)
|
|
END POWER
|
02 (not included)
|
Typical battery and PSU configuration on a small Unmanned Aircraft:
-
battery 1 at -7.4 volts (two LiPo cells in series) for -5V PSU
-
battery 2 at 7.4 volts (two LiPo cells in series) for 3.3V and 5.0V PSU
-
battery 3 at 14.8 V (three LiPo cells in series) for 12 V and 28 V PSU
-
generator 1 at 6 V RMS
-
PSU 1 at -5.0 V
-
PSU 2 at +3.3 V
-
PSU 3 at +5.0 V
-
PSU 4 at +12 V
-
PSU 5 at +28 V for the payload
Binary message length = j * 6 + k * 6 + n * 6 Bytes
where j = number of batteries; k = number of generators; n = number of PSUs
-
POWER binary message section length = 54 Bytes for 3 batteries + 1 generator + 5
PSUs
return to top
Warnings
|
B0 HEX
Item_ID
|
name
|
Value
Bytes
|
comments B2:B3:B4
|
|
80
|
warning_lights
|
4
|
B1
|
|
B2
|
|
B3
|
|
B4
|
warning_bitmap_format_ID = 01
|
name
|
|
W_land_wheels_LHS
|
|
W_land_wheels_RHS
|
|
W_land_wheels_TAIL
|
|
W_fault_light_wing_RHS
|
|
W_fault_light_wing_LHS
|
|
W_fault_light_TAIL
|
|
W_fault_VHF_1
|
|
W_fault_VHF_2
|
|
W_fault_VHF_3
|
|
W_batt_1_low
|
|
W_batt_2_low
|
|
W_batt_3_low
|
warning_bitmap_format_ID = 02
|
name
|
|
W_fuel_leak
|
|
W_low_fuel
|
|
W_stall
|
|
W_overspeed
|
|
W_rain
|
|
W_fault_S+A
|
|
W_collision_imminent
|
|
W_ice_on_LHS wing
|
|
W_ice_on_RHS_wing
|
|
W_fire_in_eng_1
|
|
W_fire_in_eng_2
|
|
W_fire_in_eng_3
|
warning_bitmap_format_ID = 03
|
name
|
|
W_wheel_brake_ON
|
|
W_VHF_1_voice_ON
|
|
W_VHF_2_voice_ON
|
|
W_VHF_3_voice_ON
|
|
W_not_used
|
|
W_not_used
|
|
W_not_used
|
|
W_not_used
|
|
W_not_used
|
|
W_not_used
|
|
W_not_used
|
|
W_not_used
|
Example
|
Syntax
|
comments
|
|
BEGIN WARNINGS
|
01:04 (not included)
|
|
warning_lights 01:B2:B3:B4
|
80:01:24:54:63
|
|
warning_lights 02:B2:B3B4
|
80:02:37:24:00
|
|
warning_lights 03:B2:B3B4
|
80:03:2A:AA:AA
|
|
END
|
02 (not included)
|
-
WARNINGS binary message section length = 15 Bytes
80:00:24:54:63:80:01:37:24:00:80:03:2A:AA:AA
return to top
Communication systems
|
B0 HEX
Item_ID
|
name
|
Value
Bytes
|
comments B1:B2:B3:B4
|
|
80
|
comm_system_ID
|
1
|
0 to 255
|
|
81
|
comm_Rx_freq
|
4
|
0 to 4,294,967,295 kHz
for VHF and sat comms
|
|
82
|
comm_RSSI
|
1
|
-255 dBm to 0 dBm
|
|
83
|
comm_errors_msg
|
1
|
0 to 255; errors reported from the FEC decoder
for GSM and sat comms
|
|
84
|
comm_Tx_freq
|
4
|
0 to 4,294,967,295 kHz
for VHF and sat comms
|
|
85
|
comm_Tx_OP_power
|
1
|
0 to 255 dBm
for VHF and sat comms
|
|
86
|
comm_ANT_azim
|
3
|
0 to 16,777,215 millidegrees
only 0 to 359,999 millidegrees is sensible
for sat comms
|
|
87
|
comm_ANT_elev
|
3
|
0 to 16,777,215 millidegrees
only 0 to 89,999 millidegrees is sensible
for sat comms
|
|
88 - 8E
|
unused
|
|
9 Item_ID Bytes reserved for future use
|
|
8F
|
comm_fault
|
1
|
B1 = 0 to 255
if B1 = 0 no fault is reported from the Comms Unit
if B1 = 1 to 255, fault number B1 was reported by Comms
|
Example
|
text format
|
binary format
|
|
BEGIN COMMS
|
01:05 (not included)
|
|
BEGIN comms_system
|
01:0F (not included)
|
12 Bytes / VHF comms
4 Bytes / GSM comms
19 Bytes / sat comms
|
|
comms_system Item_IDs
|
12 Bytes = VHF comms
4 Bytes = GSM comms
19 Bytes = sat comms
|
|
END
|
02 (not included)
|
|
END
|
02 (not included)
|
Typically, one would have five communications links on a small Unmanned
Aircraft:
-
3 comms VHF communications systems: TWR, ATC1 and ATC2 = 36 Bytes
-
1 sat comms BLOS duplex link = 19 Bytes
-
1 GSM BLOS duplex link as back-up to sat comms link = 4 Bytes
-
Five comms systems would require 36 + 19 + 4 Bytes = 59 Bytes
return to top
GPS
|
B0 HEX
Item_ID
|
name
|
Value
Bytes
|
comments B1:B2:B3
|
|
90
|
GPS_time_UTC
|
3
|
hhmmss format: example
143903
0 to 8,388,607
|
|
91
|
GPS_latitude
|
4
|
ddmm.sssss format: example
5112.31099
latitude = B1:B2:B3:B4 / 1E5
B1:B2:B3:B4 / 1E5
= 0 to 42,949.67295
|
|
92
|
GPS_NS
|
1
|
B1 = 0000 1111 for S
B1 = 1111 0000 for N
|
|
93
|
GPS_longitude
|
4
|
ddmm.sssss format: example
00158.66984
longitude = B1:B2:B3:B4 / 1E5
B1:B2:B3:B4 / 1E5 = 0 to 42,949.67295
|
|
94
|
GPS_EW
|
1
|
B1 = 0000 1111 for E
B1 = 1111 0000 for W
|
|
95
|
GPS_speed_ground
|
3
|
speed = B1:B2:B3 / 1000 in knots: example
0.004
B1:B2:B3 / 1000 = 0 to 16,777.215
|
|
96
|
GPS_date_fix_UTC
|
3
|
ddmmyy format: example
151007
0 to 16,777,215
|
|
97
|
GPS_Num_Satellites
|
1
|
B1 = 0 to 255
|
|
98
|
GPS_HDOP
|
2
|
horizontal dilution of position = HDOP = B1:B2 / 1000
B1:B2 / 1000 = 0 to 65.535: example 1.21
|
|
99
|
GPS_PDOP
|
2
|
position dilution of precision = PDOP = B1:B2 / 1000
B1:B2 / 1000 = 0 to 65.535: example 1.93
|
|
9A
|
GPS_altitude_MSL
|
2
|
0 to 65,535 m: example 136.0
|
|
9B
|
GPS_sat_PRN
|
1
|
0 to 255
|
|
9C
|
GPS_sat_PRN_elev
|
1
|
0 to 255
only 0 to 90 actually used
|
|
9D
|
GPS_sat_PRN_azim
|
2
|
0 to 65,535
only 0 to 360 actually used
|
|
9E
|
GPS_sat_PRN_SNR
|
1
|
0 to 255 dB
= signal-to-noise ratio in dB
|
|
9F
|
unused
|
|
1 Item_ID Bytes reserved for future use
|
|
A0 - A9
|
unused
|
|
10 Item_ID Bytes reserved for future use
|
|
AA
|
NULL_1010
|
0
|
This is a NULL command used to pad out BLOCKs
HEX AA = BIN 1010 1010
The complimentary command is Item_ID 55 = NULL_0101
|
|
AB - AE
|
unused
|
|
4 Item_ID Bytes reserved for future use
|
|
AF
|
GPS_fault
|
1
|
B1 = 0 to 255
if B1 = 0 no fault is reported from the GPS unit
if B1 = 1 to 255, fault number B1 was reported by GPS unit
|
Example
|
text format
|
binary format
|
|
BEGIN GPS
|
01:07 (not included)
|
|
GPS Item_IDs
|
27 Bytes
|
|
BEGIN GPS_satellite
|
01:1E (not included)
|
5 Bytes for each of 8 most powerful satellites
|
|
GPS Item_IDs
|
5 Bytes
|
|
END
|
02 (not included)
|
|
END
|
02 (not included)
|
-
GPS binary message section length = 67 Bytes
return to top
S+A System
|
B0 HEX
Item_ID
|
name
|
Value
Bytes
|
comments B1:B2:B3:B4
|
|
B0
|
SA_air_object_ID
|
1
|
0 to 255
|
|
B1
|
SA_latitude
|
4
|
ddmm.sssss format: example
5112.31099
latitude = B1:B2:B3:B4 / 1E5
B1:B2:B3:B4 / 1E5
= 0 to 42,949.67295
|
|
B2
|
SA_NS
|
1
|
B1 = 0000 1111 for S
B1 = 1111 0000 for N
|
|
B3
|
SA_longitude
|
2
|
ddmm.sssss format: example
00158.66984
longitude = B1:B2:B3:B4 / 1E5
B1:B2:B3:B4 / 1E5 = 0 to 42,949.67295
|
|
B4
|
SA_EW
|
1
|
B1 = 0000 1111 for E
B1 = 1111 0000 for W
|
|
B5
|
SA_bearing
|
2
|
0 to 65,535
only 0 to 360 actually used
|
|
B6
|
SA_climb rate
|
2
|
0 to +/- 32,767 mm / second
|
|
B7
|
SA_speed
|
2
|
0 to 65,535 cm/s (= 2,359 kph = 1,466 mph)
|
|
B8
|
SA_zoom_LHS_cam
|
1
|
0 - 255
0 = minimum zoom
255 = maximum zoom
|
|
B9
|
SA_zoom_FWD_cam
|
1
|
0 - 255
0 = minimum zoom
255 = maximum zoom
|
|
BA
|
SA_zoom_RHS_cam
|
1
|
0 - 255
0 = minimum zoom
255 = maximum zoom
|
|
BB - BE
|
unused
|
|
4 Item_ID Bytes reserved for future use
|
|
BF
|
SA_fault
|
1
|
B1 = 0 to 255
if B1 = 0 no fault is reported from the S+A unit
if B1 = 1 to 255, fault number B1 was reported by S+A unit
|
Example
|
text format
|
binary format
|
|
BEGIN SENSE
|
01:08 (not included)
|
|
BEGIN air_object
|
01:1D (not included)
|
11 Bytes
|
|
air_object Item_IDs
|
11 Bytes
|
|
END
|
02 (not included)
|
|
END
|
02 (not included)
|
-
1 camera looking to the left of centre
-
1 camera looking straight ahead
-
1 camera looking to the right of centre
S+A System binary message section length = 3 + n x 11 Bytes for n air_objects
detected
-
We report on the 5 closest air_objects, so the SENSE message length = 58 Bytes
return to top
PAYLOAD system
|
B0 HEX
Item_ID
|
name
|
Value
Bytes
|
comments B1:B2:B3:B4
|
|
C0
|
ID_BLK0_FORMAT
|
1
|
B1 = BLOCK 0 format ID from 0 to 255
|
|
C1
|
ID_msg
|
3
|
16,777,216 unique message IDs
copied from HEADER section
|
|
C2
|
ID_UA_source
|
4
|
B1:B2 = country code = the International Telephone Dialling Code, where the
largest number = 1929 (the North American Numbering Plan) for Puerto Rico.
B3:B4 =
65,536
unique IDs
|
|
C3
|
cam_ID
|
4
|
B1:B2:B3 = Char_1:Char_2:Char_3, eg. NIK (for Nikon)
B4 = 0 to 255 = camera ID number
|
|
C4
|
cam_mag_compass
|
2
|
degrees = B1:B2 / 100
B1:B2 = 0 to 655.35 degrees
only 0 to 359.99 degrees used
|
|
C5
|
unused
|
|
|
|
C6
|
unused
|
|
|
|
C7
|
cam_inclin_x
|
2
|
inclin_x = B1:B2 / 100
B1:B2 / 100 = 0 to +/- 327.67 degrees
|
|
C8
|
cam_inclin_y
|
2
|
inclin_x = B1:B2 / 100
B1:B2 / 100 = 0 to +/- 327.67 degrees
|
|
C9
|
cam_azim_set
|
2
|
azimuth = B1:B2 / 100 degrees
B1:B2 / 100 = 0 to 655.35 degrees
|
|
CA
|
cam_zoom_set
|
1
|
0 to 255 in arbitrary units, where:
0 = minimum zoom
255 = maximum zoom
|
|
CB
|
ID_GCS_destination
|
4
|
B1:B2 = country code = the International Telephone Dialling Code, where the
largest number = 1929 (the North American Numbering Plan) for Puerto Rico.
B3:B4 =
65,536
unique IDs
|
|
CC
|
ID_GCS_backup
|
4
|
B1:B2 = country code = the International Telephone Dialling Code, where the
largest number = 1929 (the North American Numbering Plan) for Puerto Rico.
B3:B4 =
65,536
unique IDs
|
|
CD - CE
|
unused
|
1
|
2 Item_ID Bytes reserved for future use
|
|
CF
|
cam_fault
|
1
|
B1 = 0 to 255
if B1 = 0 no fault is reported from the Cam Unit
if B1 = 1 to 255, fault number B1 was reported by Cam
|
Example
|
text format
|
binary format
|
|
BEGIN PAYLOAD
|
01:06 (not included)
|
|
ID_BLK0_FORMAT
ID_msg
ID_UA_source
|
|
8 Bytes
|
|
BEGIN camera
|
01:12 (not included)
|
14 Bytes
|
|
camera Item_IDs
|
14 Bytes
|
|
END
|
02 (not included)
|
|
ID_GCS_destination
|
|
4 Bytes
|
|
ID_GCS_backup
|
|
4 Bytes
|
|
END
|
02 (not included)
|
The cameras are assumed to support auto-focus: hence no need to report on focus
setting.
Typically, one would have four cameras on a small Unmanned Aircraft fitted with
a Sense and Avoid system:
-
2 cameras on gimbals, both operated by personnel at the GCS
Four cameras would require 2 x 14 + 16 Bytes = 44 Bytes
return to top
Reserved for future use
|
B0 HEX
Item_ID
|
name
|
Value
Bytes
|
comments B1:B2:B3:B4
|
|
D0 - DF
|
unused
|
|
16 Item_ID Bytes reserved for future use
|
|
E0 - EF
|
unused
|
|
16 Item_ID Bytes reserved for future use
|
|
F0
|
Preamble_1
|
0
|
Used in the Preamble
HEX F0 = BIN 1111 0000
|
|
F1 - FE
|
unused
|
|
14 Item_ID Bytes reserved for future use
|
|
FF
|
Do not use.
|
|
Reserved.
|
return to top
|