Files

29 lines
1011 B
C

#ifndef SEAT_DEMO_COMPAT_H
#define SEAT_DEMO_COMPAT_H
#include <stdbool.h>
#include <stdint.h>
/* The compatibility runtime shares the production CAN0 instance and the
* production four-axis motor state. It never initializes another CAN block
* and Demo motion deliberately has no heartbeat/lease dependency. */
void SeatDemoCompat_Init(void);
void SeatDemoCompat_Service(void);
/* Ownership hand-off used by the native 0x6A0 runtime. */
void SeatDemoCompat_ReleaseAxisForNative(uint32_t axis);
void SeatDemoCompat_StopAllFromNative(void);
void SeatDemoCompat_PrepareForBootloader(void);
bool SeatDemoCompat_IsAxisOwned(uint32_t axis);
bool SeatDemoCompat_IsAnyMotorOwned(void);
/* Native 0x6A0 absolute moves share the same four-axis task engine as the
* Demo 0x300 protocol. A zero duty selects the Demo default; 1..95 is exact. */
uint8_t SeatDemoCompat_StartNativeMove(
uint8_t sequence,
uint32_t axis,
uint32_t targetPermille,
uint8_t dutyPercent);
#endif /* SEAT_DEMO_COMPAT_H */