/** * @file valve.h * @brief Operate the valveboard with Linux application * @details Call valve_init() paired with valve_deinit() as their names imply, valve_send() can be executed several times to operate up to 6 valveboards between valve_init() and valve_deinit() * @mainpage github.com/NanjingForestryUniversity * @author miaow * @email 3703781@qq.com * @version v0.9.0 * @date 2021/12/25 merry christmas */ #ifndef __VALVE_INIT_H #define __VALVE_INIT_H #include typedef enum { VALVE_SEN = GPIO_PINDEF_TO_INDEX(GPO1), VALVE_SCLK = GPIO_PINDEF_TO_INDEX(GPO2), VALVE_SDATA_1 = GPIO_PINDEF_TO_INDEX(GPO0), VALVE_SDATA_2 = GPIO_PINDEF_TO_INDEX(GPO3), VALVE_SDATA_3 = GPIO_PINDEF_TO_INDEX(GPO4), VALVE_SDATA_4 = GPIO_PINDEF_TO_INDEX(GPO5), VALVE_SDATA_5 = GPIO_PINDEF_TO_INDEX(GPO6), VALVE_SDATA_6 = GPIO_PINDEF_TO_INDEX(GPO7) } valve_pin_enum_t; typedef struct { uint64_t valvedata_1; uint64_t valvedata_2; uint64_t valvedata_3; uint64_t valvedata_4; uint64_t valvedata_5; uint64_t valvedata_6; } valvedata_t; #define SCLK_FREQUENCE_KHZ 10000 int valve_init(void); int valve_send(uint64_t *valve_data); int valve_deinit(void); int valve_sendmsg(valvedata_t *valve_data); #endif