Core messages with semantic_id

Following on from my semantic_id proposal, here are some illustrative messages.

GNSS

@semantic_id 1

uint3 instance
uint3 status
uint32 time_week_ms
uint16 time_week
int36 latitude # in 1e-8 degrees
int36 longitude # in 1e-8 degrees
float32 altitude
float32 yaw
uint16 hdop
uint16 vdop
uint8 num_sats
float32 velocity[3]
float16 speed_accuracy
float16 horizontal_accuracy
float16 vertical_accuracy
float16 yaw_accuracy

Magnetometer message

@semantic_id 2
uint3 instance
int16 field_mgauss[3] # in milliGauss

Barometer message

@semantic_id 3
uint3 instance
float32 pressure # Pa
int16   temperature_cdeg # centidegrees C

Differential pressure

@semantic_id 4
uint3 instance
float32 diff_pressure # Pa
int16   temperature_cdeg # centidegrees C
1 Like

Heh, posts passed in the night. I just replied to your other post on this:

So, joining our two proposals would not require the reserved bit (just carve off a small semantic address space in UAVCAN) and add alternates:

@semantic_id 4
@alternate_semantic_id_0 5
@alternate_semantic_id_1 6

Now if a bad actor steps on a given port identifier the system integrator can manually (and grumpily) deconflict other sensors then go post negative reviews online about the part she purchased:

two stars, would not buy again. Used the same UAVCAN port identifier as the GNSS message my Acme MegaStar receiver sends. I had spent two hours on the phone with their terrible tech support to get it to work!