sprint-5: True Course + Track Keeping + XTE + PGN 129026/129284
- Python: NmeaNavData (COG/SOG/XTE data models with staleness tracking) - Python: TrueCoursePilot with TRUE_COURSE and TRACK_KEEPING modes - Python: 26 new tests (test_nmea_data, test_true_course) - Modbus: COG/SOG/XTE input registers + TC setpoint/XTE-gain holdings - Firmware: nmea2000_consumer handles PGN 129026 + 129284 - Firmware: pid_outer_task wired for TC + TK modes with live SOG scheduling - YAML regenerated; 284 tests pass, firmware compiles clean Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -112,6 +112,14 @@ inputs:
|
||||
- { addr: 55, name: PID_OUTER_KI_X1000, desc: "Outer-loop active ki * 1000", scale: 0.001 }
|
||||
- { addr: 56, name: PID_OUTER_KD_X1000, desc: "Outer-loop active kd * 1000", scale: 0.001 }
|
||||
|
||||
# ----- Sprint 5: True Course + Track Keeping (PGN 129026 / 129284) -----
|
||||
- { addr: 60, name: COG_DEG_X100, desc: "Course Over Ground (true) from PGN 129026, deg*100 (0..35999)", unit: "deg", scale: 0.01 }
|
||||
- { addr: 61, name: SOG_KN_X10, desc: "Speed Over Ground from PGN 129026, knots*10 (unsigned)", unit: "kn", scale: 0.1 }
|
||||
- { addr: 62, name: COG_AGE_MS, desc: "Milliseconds since last COG/SOG update (0..60000)", unit: "ms" }
|
||||
- { addr: 63, name: XTE_DM_SIGNED, desc: "Cross Track Error from PGN 129284, decimetres (signed int16, +stbd/-port)", unit: "dm", scale: 0.1 }
|
||||
- { addr: 64, name: XTE_AGE_MS, desc: "Milliseconds since last XTE update (0..60000)", unit: "ms" }
|
||||
- { addr: 65, name: DTW_M, desc: "Distance to next waypoint, metres (unsigned int16, 0..65535)", unit: "m" }
|
||||
|
||||
# -----------------------------------------------------------------------------
|
||||
# Holding registers (read-write 16-bit words) -- setpoints and config
|
||||
# -----------------------------------------------------------------------------
|
||||
@@ -134,3 +142,8 @@ holdings:
|
||||
- { addr: 26, name: PID_OUTER_KP_REQ_X1000, desc: "Requested outer-loop base kp * 1000", scale: 0.001 }
|
||||
- { addr: 27, name: PID_OUTER_KI_REQ_X1000, desc: "Requested outer-loop base ki * 1000", scale: 0.001 }
|
||||
- { addr: 28, name: PID_OUTER_KD_REQ_X1000, desc: "Requested outer-loop base kd * 1000", scale: 0.001 }
|
||||
|
||||
# ----- Sprint 5: True Course + Track Keeping -----
|
||||
- { addr: 32, name: TRUE_COURSE_SP_X100, desc: "Desired COG setpoint for TRUE_COURSE / TRACK_KEEPING, deg*100 (0..35999)", unit: "deg", scale: 0.01 }
|
||||
- { addr: 33, name: XTE_GAIN_X1000, desc: "XTE correction gain * 1000 (deg of heading correction per metre of XTE)", scale: 0.001 }
|
||||
- { addr: 34, name: XTE_MAX_CORRECTION_X100, desc: "Maximum XTE heading correction, deg*100 (default 2000 = 20 deg)", unit: "deg", scale: 0.01 }
|
||||
|
||||
Reference in New Issue
Block a user