LibDriver SYN6658
Loading...
Searching...
No Matches
driver_syn6658.h
Go to the documentation of this file.
1
36
37#ifndef DRIVER_SYN6658_H
38#define DRIVER_SYN6658_H
39
40#include <stdio.h>
41#include <stdint.h>
42#include <string.h>
43
44#ifdef __cplusplus
45extern "C"{
46#endif
47
53
58
62#ifndef SYN6658_BUSY_TIMEOUT
63 #define SYN6658_BUSY_TIMEOUT 1000
64#endif
65
69#define SYN6658_SOUND_101 "sound101"
70#define SYN6658_SOUND_102 "sound102"
71#define SYN6658_SOUND_103 "sound103"
72#define SYN6658_SOUND_104 "sound104"
73#define SYN6658_SOUND_105 "sound105"
74#define SYN6658_SOUND_106 "sound106"
75#define SYN6658_SOUND_107 "sound107"
76#define SYN6658_SOUND_108 "sound108"
77#define SYN6658_SOUND_109 "sound109"
78#define SYN6658_SOUND_110 "sound110"
79#define SYN6658_SOUND_111 "sound111"
80#define SYN6658_SOUND_112 "sound112"
81#define SYN6658_SOUND_113 "sound113"
82#define SYN6658_SOUND_114 "sound114"
83#define SYN6658_SOUND_115 "sound115"
84#define SYN6658_SOUND_116 "sound116"
85#define SYN6658_SOUND_117 "sound117"
86#define SYN6658_SOUND_118 "sound118"
87#define SYN6658_SOUND_119 "sound119"
88#define SYN6658_SOUND_120 "sound120"
89#define SYN6658_SOUND_121 "sound121"
90#define SYN6658_SOUND_122 "sound122"
91#define SYN6658_SOUND_123 "sound123"
92#define SYN6658_SOUND_124 "sound124"
93#define SYN6658_SOUND_201 "sound201"
94#define SYN6658_SOUND_202 "sound202"
95#define SYN6658_SOUND_203 "sound203"
96#define SYN6658_SOUND_204 "sound204"
97#define SYN6658_SOUND_205 "sound205"
98#define SYN6658_SOUND_206 "sound206"
99#define SYN6658_SOUND_207 "sound207"
100#define SYN6658_SOUND_208 "sound208"
101#define SYN6658_SOUND_209 "sound209"
102#define SYN6658_SOUND_210 "sound210"
103#define SYN6658_SOUND_211 "sound211"
104#define SYN6658_SOUND_212 "sound212"
105#define SYN6658_SOUND_213 "sound213"
106#define SYN6658_SOUND_214 "sound214"
107#define SYN6658_SOUND_215 "sound215"
108#define SYN6658_SOUND_216 "sound216"
109#define SYN6658_SOUND_217 "sound217"
110#define SYN6658_SOUND_218 "sound218"
111#define SYN6658_SOUND_219 "sound219"
112#define SYN6658_SOUND_301 "sound301"
113#define SYN6658_SOUND_302 "sound302"
114#define SYN6658_SOUND_303 "sound303"
115#define SYN6658_SOUND_304 "sound304"
116#define SYN6658_SOUND_305 "sound305"
117#define SYN6658_SOUND_306 "sound306"
118#define SYN6658_SOUND_307 "sound307"
119#define SYN6658_SOUND_308 "sound308"
120#define SYN6658_SOUND_309 "sound309"
121#define SYN6658_SOUND_310 "sound310"
122#define SYN6658_SOUND_311 "sound311"
123#define SYN6658_SOUND_312 "sound312"
124#define SYN6658_SOUND_313 "sound313"
125#define SYN6658_SOUND_314 "sound314"
126#define SYN6658_SOUND_315 "sound315"
127#define SYN6658_SOUND_316 "sound316"
128#define SYN6658_SOUND_317 "sound317"
129#define SYN6658_SOUND_318 "sound318"
130#define SYN6658_SOUND_319 "sound319"
131#define SYN6658_SOUND_401 "sound401"
132#define SYN6658_SOUND_402 "sound402"
133#define SYN6658_SOUND_403 "sound403"
134#define SYN6658_SOUND_404 "sound404"
135#define SYN6658_SOUND_405 "sound405"
136#define SYN6658_SOUND_406 "sound406"
137#define SYN6658_SOUND_407 "sound407"
138#define SYN6658_SOUND_408 "sound408"
139#define SYN6658_SOUND_501 "sound501"
140#define SYN6658_SOUND_502 "sound502"
141#define SYN6658_SOUND_503 "sound503"
142#define SYN6658_SOUND_504 "sound504"
143#define SYN6658_SOUND_505 "sound505"
144#define SYN6658_SOUND_506 "sound506"
145#define SYN6658_SOUND_507 "sound507"
146#define SYN6658_SOUND_601 "sound601"
147#define SYN6658_SOUND_602 "sound602"
148#define SYN6658_SOUND_701 "sound701"
149#define SYN6658_SOUND_702 "sound702"
150#define SYN6658_SOUND_703 "sound703"
151#define SYN6658_SOUND_704 "sound704"
152#define SYN6658_SOUND_705 "sound705"
153#define SYN6658_SOUND_706 "sound706"
154#define SYN6658_SOUND_707 "sound707"
155#define SYN6658_SOUND_708 "sound708"
156#define SYN6658_SOUND_709 "sound709"
157#define SYN6658_SOUND_710 "sound710"
158#define SYN6658_SOUND_711 "sound711"
159#define SYN6658_SOUND_712 "sound712"
160#define SYN6658_SOUND_713 "sound713"
161#define SYN6658_SOUND_714 "sound714"
162#define SYN6658_SOUND_715 "sound715"
163#define SYN6658_SOUND_716 "sound716"
164#define SYN6658_SOUND_717 "sound717"
165#define SYN6658_SOUND_718 "sound718"
166#define SYN6658_SOUND_719 "sound719"
167
171#define SYN6658_MESSAGE_A "msga"
172#define SYN6658_MESSAGE_B "msgb"
173#define SYN6658_MESSAGE_C "msgc"
174#define SYN6658_MESSAGE_D "msgd"
175#define SYN6658_MESSAGE_E "msge"
176#define SYN6658_MESSAGE_F "msgf"
177#define SYN6658_MESSAGE_G "msgg"
178#define SYN6658_MESSAGE_H "msgh"
179#define SYN6658_MESSAGE_I "msgi"
180#define SYN6658_MESSAGE_J "msgj"
181#define SYN6658_MESSAGE_K "msgk"
182#define SYN6658_MESSAGE_L "msgl"
183#define SYN6658_MESSAGE_M "msgm"
184#define SYN6658_MESSAGE_N "msgn"
185
194
206
210typedef enum
211{
215
228
232typedef struct syn6658_handle_s
233{
234 uint8_t (*gpio_ready_init)(void);
235 uint8_t (*gpio_ready_deinit)(void);
236 uint8_t (*gpio_ready_read)(uint8_t *value);
237 uint8_t (*uart_init)(void);
238 uint8_t (*uart_deinit)(void);
239 uint16_t (*uart_read)(uint8_t *buf, uint16_t len);
240 uint8_t (*uart_flush)(void);
241 uint8_t (*uart_write)(uint8_t *buf, uint16_t len);
242 uint8_t (*spi_init)(void);
243 uint8_t (*spi_deinit)(void);
244 uint8_t (*spi_transmit)(uint8_t *tx, uint8_t *rx, uint16_t len);
245 void (*delay_ms)(uint32_t ms);
246 void (*debug_print)(const char *const fmt, ...);
247 uint8_t inited;
248 uint8_t uart_spi;
249 uint8_t type;
250 uint8_t buf[4096];
252
268
272
279
286#define DRIVER_SYN6658_LINK_INIT(HANDLE, STRUCTURE) memset(HANDLE, 0, sizeof(STRUCTURE))
287
294#define DRIVER_SYN6658_LINK_UART_INIT(HANDLE, FUC) (HANDLE)->uart_init = FUC
295
302#define DRIVER_SYN6658_LINK_UART_DEINIT(HANDLE, FUC) (HANDLE)->uart_deinit = FUC
303
310#define DRIVER_SYN6658_LINK_UART_READ(HANDLE, FUC) (HANDLE)->uart_read = FUC
311
318#define DRIVER_SYN6658_LINK_UART_WRITE(HANDLE, FUC) (HANDLE)->uart_write = FUC
319
326#define DRIVER_SYN6658_LINK_UART_FLUSH(HANDLE, FUC) (HANDLE)->uart_flush = FUC
327
334#define DRIVER_SYN6658_LINK_SPI_INIT(HANDLE, FUC) (HANDLE)->spi_init = FUC
335
342#define DRIVER_SYN6658_LINK_SPI_DEINIT(HANDLE, FUC) (HANDLE)->spi_deinit = FUC
343
350#define DRIVER_SYN6658_LINK_SPI_TRANSMIT(HANDLE, FUC) (HANDLE)->spi_transmit = FUC
351
358#define DRIVER_SYN6658_LINK_GPIO_READY_INIT(HANDLE, FUC) (HANDLE)->gpio_ready_init = FUC
359
366#define DRIVER_SYN6658_LINK_GPIO_READY_DEINIT(HANDLE, FUC) (HANDLE)->gpio_ready_deinit = FUC
367
374#define DRIVER_SYN6658_LINK_GPIO_READY_READ(HANDLE, FUC) (HANDLE)->gpio_ready_read = FUC
375
382#define DRIVER_SYN6658_LINK_DELAY_MS(HANDLE, FUC) (HANDLE)->delay_ms = FUC
383
390#define DRIVER_SYN6658_LINK_DEBUG_PRINT(HANDLE, FUC) (HANDLE)->debug_print = FUC
391
395
402
411uint8_t syn6658_info(syn6658_info_t *info);
412
423
434
446uint8_t syn6658_init(syn6658_handle_t *handle);
447
459uint8_t syn6658_deinit(syn6658_handle_t *handle);
460
472
484
498uint8_t syn6658_synthesis_text(syn6658_handle_t *handle, const char *const fmt, ...);
499
512
524uint8_t syn6658_stop(syn6658_handle_t *handle);
525
537uint8_t syn6658_pause(syn6658_handle_t *handle);
538
550uint8_t syn6658_resume(syn6658_handle_t *handle);
551
563uint8_t syn6658_standby(syn6658_handle_t *handle);
564
576uint8_t syn6658_wake_up(syn6658_handle_t *handle);
577
590uint8_t syn6658_set_synthesis_volume(syn6658_handle_t *handle, uint8_t volume);
591
604uint8_t syn6658_set_synthesis_speed(syn6658_handle_t *handle, uint8_t speed);
605
618
635uint8_t syn6658_save_text(syn6658_handle_t *handle, uint8_t offset, char *text);
636
651uint8_t syn6658_play_text(syn6658_handle_t *handle, uint8_t times, syn6658_type_t type);
652
656
663
678uint8_t syn6658_set_command(syn6658_handle_t *handle, uint8_t command, uint32_t timeout);
679
697uint8_t syn6658_set_command_with_arg(syn6658_handle_t *handle, uint8_t command, uint8_t param, char *txt, uint32_t timeout);
698
702
706
707#ifdef __cplusplus
708}
709#endif
710
711#endif
struct syn6658_info_s syn6658_info_t
syn6658 information structure definition
uint8_t syn6658_info(syn6658_info_t *info)
get chip's information
uint8_t syn6658_init(syn6658_handle_t *handle)
initialize the chip
uint8_t syn6658_play_text(syn6658_handle_t *handle, uint8_t times, syn6658_type_t type)
play text
uint8_t syn6658_set_synthesis_speaker(syn6658_handle_t *handle, syn6658_speaker_t speaker)
set the synthesis speaker
syn6658_type_t
syn6658 type enumeration definition
uint8_t syn6658_get_text_type(syn6658_handle_t *handle, syn6658_type_t *type)
get the chip text type
uint8_t syn6658_resume(syn6658_handle_t *handle)
resume the chip
uint8_t syn6658_get_status(syn6658_handle_t *handle, syn6658_status_t *status)
get the current status
syn6658_speaker_t
syn6658 speaker enumeration definition
uint8_t syn6658_set_synthesis_speed(syn6658_handle_t *handle, uint8_t speed)
set the synthesis speed
uint8_t syn6658_save_text(syn6658_handle_t *handle, uint8_t offset, char *text)
save text to the buffer
uint8_t syn6658_standby(syn6658_handle_t *handle)
set the chip to standby mode
uint8_t syn6658_set_synthesis_volume(syn6658_handle_t *handle, uint8_t volume)
set the chip synthesis volume
uint8_t syn6658_deinit(syn6658_handle_t *handle)
close the chip
struct syn6658_handle_s syn6658_handle_t
syn6658 handle structure definition
uint8_t syn6658_pause(syn6658_handle_t *handle)
pause the chip
uint8_t syn6658_set_text_type(syn6658_handle_t *handle, syn6658_type_t type)
set the chip text type
uint8_t syn6658_synthesis_text(syn6658_handle_t *handle, const char *const fmt,...)
synthesis the test
syn6658_status_t
syn6658 status enumeration definition
uint8_t syn6658_set_interface(syn6658_handle_t *handle, syn6658_interface_t interface)
set the chip interface
uint8_t syn6658_get_interface(syn6658_handle_t *handle, syn6658_interface_t *interface)
get the chip interface
syn6658_interface_t
syn6658 interface enumeration definition
uint8_t syn6658_wake_up(syn6658_handle_t *handle)
wake up the chip
uint8_t syn6658_stop(syn6658_handle_t *handle)
stop the chip
@ SYN6658_TYPE_UNICODE_BIG
@ SYN6658_TYPE_GB2312
@ SYN6658_TYPE_BIG5
@ SYN6658_TYPE_UNICODE_LITTLE
@ SYN6658_TYPE_GBK
@ SYN6658_SPEAKER_XIAOLING
@ SYN6658_SPEAKER_TIANPEIPEI
@ SYN6658_SPEAKER_TANGLAOYA
@ SYN6658_SPEAKER_YIXIAOQIANG
@ SYN6658_SPEAKER_XIAOYANZI
@ SYN6658_SPEAKER_YIXIAOJIAN
@ SYN6658_STATUS_BUSY
@ SYN6658_STATUS_OK
@ SYN6658_INTERFACE_SPI
@ SYN6658_INTERFACE_UART
uint8_t syn6658_set_command_with_arg(syn6658_handle_t *handle, uint8_t command, uint8_t param, char *txt, uint32_t timeout)
send the command with arg to the chip
uint8_t syn6658_set_command(syn6658_handle_t *handle, uint8_t command, uint32_t timeout)
send the command to the chip
syn6658 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)
uint8_t buf[4096]
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)
syn6658 information structure definition
uint32_t driver_version
char manufacturer_name[32]