#ifndef AC_IO_MDXF_H #define AC_IO_MDXF_H #include #define AC_IO_CMD_MDXF_POLL 0x0110 #define AC_IO_CMD_MDXF_AUTO_GET_START 0x0116 #define AC_IO_CMD_MDXF_LIGHT 0x0113 #pragma pack(push, 1) union mdxf_panel_sensors_individual { struct { uint8_t right : 1; uint8_t left : 1; uint8_t down : 1; uint8_t up : 1; uint8_t unused : 4; }; uint8_t raw; }; struct mdxf_panel_sensors { uint8_t down : 4; uint8_t up : 4; uint8_t right : 4; uint8_t left : 4; }; struct ac_io_mdxf_poll_in { struct mdxf_panel_sensors panel; uint8_t unk; }; struct mdxf_lights { uint8_t up_right; uint8_t down_left; uint8_t up_left; uint8_t down_right; uint8_t unk; }; struct ac_io_mdxf_light_out { struct mdxf_lights side[2]; }; #pragma pack(pop) #endif