|
KallistiOS git master
Independent SDK for the Sega Dreamcast
|
JVS general purpose output (lamps, solenoids) More...
Macros | |
| #define | MIE_JVS_OUTPUT_MASK(index) |
Bit mask for JVS output index index (output 0 = bit 31). | |
| #define | MIE_JVS_OUTPUT_ALL GENMASK(31, 32 - MIE_JVS_OUTPUT_COUNT) |
| All MIE_JVS_OUTPUT_COUNT outputs enabled. | |
| #define | MIE_JVS_OUTPUT_MASK_COUNT(count) |
Bitmask for the first count JVS outputs (output 0 = bit 31). | |
Functions | |
| uint8_t | mie_jvs_driver_outputs (void) |
| Number of JVS outputs reported by the I/O board. | |
| bool | mie_jvs_set_outputs (uint32_t outputs, bool block) |
| Set all JVS general purpose outputs at once. | |
| bool | mie_jvs_set_output (uint8_t index, bool on, bool block) |
| Set a single JVS general purpose output. | |
| uint32_t | mie_jvs_get_outputs (void) |
| Get the cached JVS general purpose output state. | |
JVS general purpose output (lamps, solenoids)
The JVS I/O board exposes up to MIE_JVS_OUTPUT_COUNT general purpose output lines, driven with the JVS general-purpose output command (0x32). They are used for cabinet lamps, start button lights, solenoids, and similar actuators.
Output state is a uint32_t bitmask in JVS wire order: output n is bit (31 - n). The driver keeps a cached copy so individual lines can be toggled with mie_jvs_set_output() without affecting the others.
| #define MIE_JVS_OUTPUT_ALL GENMASK(31, 32 - MIE_JVS_OUTPUT_COUNT) |
All MIE_JVS_OUTPUT_COUNT outputs enabled.
| #define MIE_JVS_OUTPUT_MASK | ( | index | ) |
Bit mask for JVS output index index (output 0 = bit 31).
Referenced by outputs_blink().
| #define MIE_JVS_OUTPUT_MASK_COUNT | ( | count | ) |
| uint8_t mie_jvs_driver_outputs | ( | void | ) |
Number of JVS outputs reported by the I/O board.
| uint32_t mie_jvs_get_outputs | ( | void | ) |
Get the cached JVS general purpose output state.
Referenced by ui_build().
| bool mie_jvs_set_output | ( | uint8_t | index, |
| bool | on, | ||
| bool | block ) |
Set a single JVS general purpose output.
| index | Output index (0 to MIE_JVS_OUTPUT_COUNT - 1). |
| on | true to turn the output on; false to turn it off. |
| block | true to wait for completion; false to queue only. |
| true | Command completed or queued successfully. |
| false | Invalid index, JVS not initialized, busy, or I/O failed. |
| bool mie_jvs_set_outputs | ( | uint32_t | outputs, |
| bool | block ) |
Set all JVS general purpose outputs at once.
| outputs | Output bitmask in JVS wire order. |
| block | true to wait for completion; false to queue only. |
| true | Command completed or queued successfully. |
| false | JVS not initialized, busy, or I/O failed. |
Referenced by outputs_blink().