larus-breeze / sw_sensor

Firmware for Larus sensor MK1 and MK2
3 stars 3 forks source link

GNSS status reported in correctly #32

Open degeflija opened 1 year ago

degeflija commented 1 year ago

While the Single-GNSS on the master sensor board has no GPS-fix (yet), the sensor SW sends a "0" status for the Single-GNSS. That is semantically incorrect, as the GNSS devoce is up and works correctly. So the status should be send as "1". The fact that the Single-GNSS has no fix yet should be properly reported in the CAN packet c_CID_KSB_GPS_Sats = 0x10a, //!< uint8_t No of Sats //!> uint8_t Fix-Type NO=0 2D=1 3D=2 RTK=3

MaxBaex commented 1 year ago

@degeflija : Da scheint sich etwas geändert zu haben. In p.data_b[1] = x.c.sat_fix_type; sind jetzt die ersten beiden Bits relevant. Bedeutung von sat_fix_type Werte:

Was fehlt dir da noch?

degeflija commented 1 year ago

@MaxBaex There is a difference between the contents of CAN Packets c_CID_KSB_SystemState and c_CID_KSB_GPS_Sats

c_CID_KSB_SystemState sends a bit-mask with each bit representing an operational device on the sensor board. c_CID_KSB_GPS_Sats sends a number as you described above.

My complaint was about the first CAN Packet. The sensor did send / sends a 0 bit if the GNSS (any GNSS) has no fix, even as the GNSS device itself was/is properly working. If the GNSS is operational (working) it should send a 1 bit. Device operational availibity and operational status are two different things. CAN packet c_CID_KSB_SystemState was (still is??) faulty, CAN packet c_CID_KSB_GPS_Sats is correct.