feat: complete dual-seat whole-vehicle orchestration
This commit is contained in:
@@ -33,11 +33,14 @@
|
||||
#define SEAT_MOVE_M0_DEFAULT_DUTY_PERCENT (90u)
|
||||
#define SEAT_MOVE_M1_DEFAULT_DUTY_PERCENT (90u)
|
||||
#define SEAT_MOVE_M2_DEFAULT_DUTY_PERCENT (90u)
|
||||
#define SEAT_MOVE_M3_DEFAULT_DUTY_PERCENT (90u)
|
||||
/* The connected loaded legrest leaves its hard stop more reliably at the
|
||||
* empirically verified diagnostic PWM than at maximum PWM. It is selected
|
||||
* only after a supervised endpoint-departure attempt produced no Hall edge. */
|
||||
#define SEAT_MOVE_M3_BREAKAWAY_DUTY_PERCENT (60u)
|
||||
#define SEAT_MOVE_M3_DEFAULT_DUTY_PERCENT (50u)
|
||||
/* M3 is the loaded legrest linkage. The standalone angle-test firmware
|
||||
* proves sustained Hall travel at 50% duty, while the former 90% command
|
||||
* makes the connected actuator stop driving after roughly 70 pulses even
|
||||
* though the ECU continues to request PWM. Keep normal and endpoint-
|
||||
* departure motion on the same verified bench duty so absolute requests do
|
||||
* not trip that internal/mechanical protection window. */
|
||||
#define SEAT_MOVE_M3_BREAKAWAY_DUTY_PERCENT (50u)
|
||||
|
||||
/* A Hall target is discrete and the connected actuator can physically stop
|
||||
* up to four pulses short because of its limit contact and gear backlash. If
|
||||
@@ -79,6 +82,12 @@
|
||||
#define SEAT_MOVE_CAN_DIAGNOSTIC_ID (0x303u)
|
||||
#define SEAT_MOVE_CAN_CURRENT_DIAGNOSTIC_ID (0x304u)
|
||||
#define SEAT_MOVE_CAN_DYNAMIC_STATUS_ID (0x306u)
|
||||
/* Repository-image identity. The legacy four-bit revision in 0x301 is
|
||||
* already at 15, so 0x307 carries an independently incremented build ID.
|
||||
* This lets the headless runtime distinguish the current image from an older
|
||||
* revision-15 image or from a temporary standalone motor-test image. */
|
||||
#define SEAT_MOVE_CAN_FIRMWARE_ID_ID (0x307u)
|
||||
#define SEAT_MOVE_FIRMWARE_BUILD_ID (16u)
|
||||
/* The self-healing hook is accepted only by this bench-demo image and only
|
||||
* after a short-lived token arm exchange. */
|
||||
#define SEAT_MOVE_CAN_HIL_SELF_HEAL_REQUEST_ID (0x2F0u)
|
||||
@@ -174,6 +183,7 @@
|
||||
(SEAT_MOVE_CAN_DIAGNOSTIC_ID > 0x7FFu) || \
|
||||
(SEAT_MOVE_CAN_CURRENT_DIAGNOSTIC_ID > 0x7FFu) || \
|
||||
(SEAT_MOVE_CAN_DYNAMIC_STATUS_ID > 0x7FFu) || \
|
||||
(SEAT_MOVE_CAN_FIRMWARE_ID_ID > 0x7FFu) || \
|
||||
(SEAT_MOVE_CAN_HIL_SELF_HEAL_REQUEST_ID > 0x7FFu) || \
|
||||
(SEAT_MOVE_CAN_HIL_SELF_HEAL_RESPONSE_ID > 0x7FFu))
|
||||
#error "Seat movement CAN identifiers must be 11-bit standard IDs."
|
||||
@@ -183,6 +193,10 @@
|
||||
#error "The firmware revision must fit in the 0x301 high nibble."
|
||||
#endif
|
||||
|
||||
#if (SEAT_MOVE_FIRMWARE_BUILD_ID > 0xFFu)
|
||||
#error "The firmware build ID must fit in the 0x307 build byte."
|
||||
#endif
|
||||
|
||||
#if (SEAT_MOVE_DEBUG_SESSION_BREG_INDEX >= SRSS_BACKUP_NUM_BREG)
|
||||
#error "The selected debug-session backup register is not available."
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user