37#ifndef DRIVER_SYN6988_H
38#define DRIVER_SYN6988_H
62#ifndef SYN6988_BUSY_TIMEOUT
63 #define SYN6988_BUSY_TIMEOUT 1000
69#define SYN6988_SOUND_101 "sound101"
70#define SYN6988_SOUND_102 "sound102"
71#define SYN6988_SOUND_103 "sound103"
72#define SYN6988_SOUND_104 "sound104"
73#define SYN6988_SOUND_105 "sound105"
74#define SYN6988_SOUND_106 "sound106"
75#define SYN6988_SOUND_107 "sound107"
76#define SYN6988_SOUND_108 "sound108"
77#define SYN6988_SOUND_109 "sound109"
78#define SYN6988_SOUND_110 "sound110"
79#define SYN6988_SOUND_111 "sound111"
80#define SYN6988_SOUND_112 "sound112"
81#define SYN6988_SOUND_113 "sound113"
82#define SYN6988_SOUND_114 "sound114"
83#define SYN6988_SOUND_115 "sound115"
84#define SYN6988_SOUND_116 "sound116"
85#define SYN6988_SOUND_117 "sound117"
86#define SYN6988_SOUND_118 "sound118"
87#define SYN6988_SOUND_119 "sound119"
88#define SYN6988_SOUND_120 "sound120"
89#define SYN6988_SOUND_121 "sound121"
90#define SYN6988_SOUND_122 "sound122"
91#define SYN6988_SOUND_123 "sound123"
92#define SYN6988_SOUND_124 "sound124"
93#define SYN6988_SOUND_201 "sound201"
94#define SYN6988_SOUND_202 "sound202"
95#define SYN6988_SOUND_203 "sound203"
96#define SYN6988_SOUND_204 "sound204"
97#define SYN6988_SOUND_205 "sound205"
98#define SYN6988_SOUND_206 "sound206"
99#define SYN6988_SOUND_207 "sound207"
100#define SYN6988_SOUND_208 "sound208"
101#define SYN6988_SOUND_209 "sound209"
102#define SYN6988_SOUND_301 "sound301"
103#define SYN6988_SOUND_302 "sound302"
104#define SYN6988_SOUND_303 "sound303"
105#define SYN6988_SOUND_304 "sound304"
106#define SYN6988_SOUND_305 "sound305"
107#define SYN6988_SOUND_306 "sound306"
108#define SYN6988_SOUND_307 "sound307"
109#define SYN6988_SOUND_308 "sound308"
110#define SYN6988_SOUND_309 "sound309"
111#define SYN6988_SOUND_310 "sound310"
112#define SYN6988_SOUND_311 "sound311"
113#define SYN6988_SOUND_312 "sound312"
114#define SYN6988_SOUND_313 "sound313"
115#define SYN6988_SOUND_314 "sound314"
116#define SYN6988_SOUND_315 "sound315"
117#define SYN6988_SOUND_316 "sound316"
118#define SYN6988_SOUND_317 "sound317"
119#define SYN6988_SOUND_318 "sound318"
120#define SYN6988_SOUND_401 "sound401"
121#define SYN6988_SOUND_402 "sound402"
122#define SYN6988_SOUND_403 "sound403"
123#define SYN6988_SOUND_404 "sound404"
124#define SYN6988_SOUND_405 "sound405"
125#define SYN6988_SOUND_406 "sound406"
126#define SYN6988_SOUND_407 "sound407"
127#define SYN6988_SOUND_408 "sound408"
226#define DRIVER_SYN6988_LINK_INIT(HANDLE, STRUCTURE) memset(HANDLE, 0, sizeof(STRUCTURE))
234#define DRIVER_SYN6988_LINK_UART_INIT(HANDLE, FUC) (HANDLE)->uart_init = FUC
242#define DRIVER_SYN6988_LINK_UART_DEINIT(HANDLE, FUC) (HANDLE)->uart_deinit = FUC
250#define DRIVER_SYN6988_LINK_UART_READ(HANDLE, FUC) (HANDLE)->uart_read = FUC
258#define DRIVER_SYN6988_LINK_UART_WRITE(HANDLE, FUC) (HANDLE)->uart_write = FUC
266#define DRIVER_SYN6988_LINK_UART_FLUSH(HANDLE, FUC) (HANDLE)->uart_flush = FUC
274#define DRIVER_SYN6988_LINK_SPI_INIT(HANDLE, FUC) (HANDLE)->spi_init = FUC
282#define DRIVER_SYN6988_LINK_SPI_DEINIT(HANDLE, FUC) (HANDLE)->spi_deinit = FUC
290#define DRIVER_SYN6988_LINK_SPI_TRANSMIT(HANDLE, FUC) (HANDLE)->spi_transmit = FUC
298#define DRIVER_SYN6988_LINK_GPIO_READY_INIT(HANDLE, FUC) (HANDLE)->gpio_ready_init = FUC
306#define DRIVER_SYN6988_LINK_GPIO_READY_DEINIT(HANDLE, FUC) (HANDLE)->gpio_ready_deinit = FUC
314#define DRIVER_SYN6988_LINK_GPIO_READY_READ(HANDLE, FUC) (HANDLE)->gpio_ready_read = FUC
322#define DRIVER_SYN6988_LINK_DELAY_MS(HANDLE, FUC) (HANDLE)->delay_ms = FUC
330#define DRIVER_SYN6988_LINK_DEBUG_PRINT(HANDLE, FUC) (HANDLE)->debug_print = FUC
syn6988_type_t
syn6988 type enumeration definition
uint8_t syn6988_stop(syn6988_handle_t *handle)
stop the chip
uint8_t syn6988_get_text_type(syn6988_handle_t *handle, syn6988_type_t *type)
get the chip text type
uint8_t syn6988_synthesis_text(syn6988_handle_t *handle, const char *const fmt,...)
synthesis the test
uint8_t syn6988_init(syn6988_handle_t *handle)
initialize the chip
syn6988_status_t
syn6988 status enumeration definition
uint8_t syn6988_set_interface(syn6988_handle_t *handle, syn6988_interface_t interface)
set the chip interface
syn6988_interface_t
syn6988 interface enumeration definition
uint8_t syn6988_set_synthesis_language(syn6988_handle_t *handle, syn6988_language_t language)
set synthesis language
struct syn6988_handle_s syn6988_handle_t
syn6988 handle structure definition
uint8_t syn6988_wake_up(syn6988_handle_t *handle)
wake up the chip
uint8_t syn6988_get_interface(syn6988_handle_t *handle, syn6988_interface_t *interface)
get the chip interface
uint8_t syn6988_pause(syn6988_handle_t *handle)
pause the chip
uint8_t syn6988_info(syn6988_info_t *info)
get chip's information
uint8_t syn6988_deinit(syn6988_handle_t *handle)
close the chip
uint8_t syn6988_standby(syn6988_handle_t *handle)
set the chip to standby mode
uint8_t syn6988_get_status(syn6988_handle_t *handle, syn6988_status_t *status)
get the current status
uint8_t syn6988_set_synthesis_speed(syn6988_handle_t *handle, uint8_t speed)
set the synthesis speed
syn6988_language_t
syn6988 language enumeration definition
uint8_t syn6988_resume(syn6988_handle_t *handle)
resume the chip
uint8_t syn6988_set_synthesis_volume(syn6988_handle_t *handle, uint8_t volume)
set the chip synthesis volume
uint8_t syn6988_set_text_type(syn6988_handle_t *handle, syn6988_type_t type)
set the chip text type
struct syn6988_info_s syn6988_info_t
syn6988 information structure definition
@ SYN6988_TYPE_UNICODE_BIG
@ SYN6988_TYPE_UNICODE_LITTLE
@ SYN6988_LANGUAGE_ENGLISH
@ SYN6988_LANGUAGE_CHINESE
uint8_t syn6988_set_command(syn6988_handle_t *handle, uint8_t command, uint32_t timeout)
send the command to the chip
uint8_t syn6988_set_command_with_arg(syn6988_handle_t *handle, uint8_t command, uint8_t param, char *txt, uint32_t timeout)
send the command with arg to the chip
syn6988 handle structure definition
uint8_t(* uart_flush)(void)
uint8_t(* uart_write)(uint8_t *buf, uint16_t len)
uint8_t(* spi_init)(void)
void(* delay_ms)(uint32_t ms)
uint8_t(* gpio_ready_read)(uint8_t *value)
uint8_t(* uart_deinit)(void)
uint8_t(* gpio_ready_init)(void)
void(* debug_print)(const char *const fmt,...)
uint8_t(* spi_transmit)(uint8_t *tx, uint8_t *rx, uint16_t len)
uint8_t(* spi_deinit)(void)
uint16_t(* uart_read)(uint8_t *buf, uint16_t len)
uint8_t(* gpio_ready_deinit)(void)
uint8_t(* uart_init)(void)
syn6988 information structure definition
float supply_voltage_max_v
char manufacturer_name[32]
float supply_voltage_min_v