Added 5 new LOX float level sensor (FLS) temperature measurements to the Firehorn GUI display system.
- LOX_CAP_FLS_0 - Capacitive float level sensor at 0% (bottom)
- LOX_FLS_10 - Float level sensor at 10%
- LOX_FLS_50 - Float level sensor at 50%
- LOX_FLS_80 - Float level sensor at 80%
- LOX_FLS_90 - Float level sensor at 90% (top)
- Added 5 new enum values to
GUI_FIELDenum - Added name mappings in
enumToFieldName()function - Added reverse mappings in
fieldNameToEnum()function
- Added 5 new int8_t fields to
av_downlink_tpacked structure (bitfields) - Added 5 new float fields to
av_downlink_unpacked_tstructure - Fixed missing
LOX_inj_tempfield in packed structure
- Added compression logic for 5 new sensors in
encode_downlink()(divide by 2) - Added decompression logic for 5 new sensors in
decode_downlink()(multiply by 2) - Fixed missing
LOX_inj_tempcompression/decompression
- Added 5 new float fields to
AV_downlink_pktstruct
- Added 5 new database columns to SQLite schema using
sqlite_orm::make_column() - Added field mapping in packet processing (
process_pkt()) - Added field mapping in packet unprocessing (
unprocess_pkt())
- Added 5 new fields to JSON object creation for GUI data
- Updated debug output string with new fields
- Updated argument chain for debug logging
- Added test data generation for 5 new sensors using
distTemp(gen)
- Replaced
LOX_INJ_TEMPat position (0.83, 0.665) withLOX_FLS_90 - Added
LOX_FLS_80at (0.83, 0.715) - Added
LOX_FLS_50at (0.83, 0.765) - Added
LOX_FLS_10at (0.83, 0.815) - Added
LOX_CAP_FLS_0at (0.83, 0.865) - bottom sensor - Sensors are stacked vertically with 0.05 spacing
The sensors are displayed in the FIREHORN_GUI section, positioned on the right side of the LOX tank:
- Top (90%): x=0.83, y=0.665
- 80%: x=0.83, y=0.715
- 50%: x=0.83, y=0.765
- 10%: x=0.83, y=0.815
- Bottom (0%): x=0.83, y=0.865
All sensors display temperature values in °C.
- RF Protocol →
av_downlink_t(compressed, bitfields) - Decompression →
av_downlink_unpacked_t(floats) - Database →
AV_downlink_pkt(floats) - RequestAdapter → JSON with GUI_FIELD enum keys
- GUI Display → LabelInfo at specified coordinates
- Test data generation is implemented in
server.cpp - All sensors use the same temperature distribution for testing
- Database schema includes all new columns for data persistence
- The original
LOX_INJ_TEMPfield was replaced withLOX_FLS_90as requested - All sensors follow the same data type and unit convention (temperature in °C)
- The implementation follows the existing pattern for other temperature sensors
- GUI coordinates may need fine-tuning based on the actual SVG background layout