LibDriver SYN6288  2.0.0
SYN6288 full-featured driver
driver_syn6288_register_test.c
Go to the documentation of this file.
1 
39 
40 static syn6288_handle_t gs_handle;
49 uint8_t syn6288_register_test(void)
50 {
51  uint8_t res;
52  uint8_t volume;
53  uint8_t speed;
54  char s[32];
56  syn6288_mode_t mode;
57  syn6288_info_t info;
58  syn6288_type_t type;
59 
60  /* link interface function */
69 
70  /* get syn6288 information */
71  res = syn6288_info(&info);
72  if (res != 0)
73  {
74  syn6288_interface_debug_print("syn6288: get info failed.\n");
75 
76  return 1;
77  }
78  else
79  {
80  /* print chip information */
81  syn6288_interface_debug_print("syn6288: chip is %s.\n", info.chip_name);
82  syn6288_interface_debug_print("syn6288: manufacturer is %s.\n", info.manufacturer_name);
83  syn6288_interface_debug_print("syn6288: interface is %s.\n", info.interface);
84  syn6288_interface_debug_print("syn6288: driver version is %d.%d.\n", info.driver_version / 1000, (info.driver_version % 1000) / 100);
85  syn6288_interface_debug_print("syn6288: min supply voltage is %0.1fV.\n", info.supply_voltage_min_v);
86  syn6288_interface_debug_print("syn6288: max supply voltage is %0.1fV.\n", info.supply_voltage_max_v);
87  syn6288_interface_debug_print("syn6288: max current is %0.2fmA.\n", info.max_current_ma);
88  syn6288_interface_debug_print("syn6288: max temperature is %0.1fC.\n", info.temperature_max);
89  syn6288_interface_debug_print("syn6288: min temperature is %0.1fC.\n", info.temperature_min);
90  }
91 
92  /* syn6288 init */
93  res = syn6288_init(&gs_handle);
94  if (res != 0)
95  {
96  syn6288_interface_debug_print("syn6288: init failed.\n");
97 
98  return 1;
99  }
100 
101  /* start register test */
102  syn6288_interface_debug_print("syn6288: start register test.\n");
103 
104  /* syn6288_set_baud_rate/syn6288_get_baud_rate test */
105  syn6288_interface_debug_print("syn6288: syn6288_set_baud_rate/syn6288_get_baud_rate test.\n");
107  if (res != 0)
108  {
109  syn6288_interface_debug_print("syn6288: set baud rate failed.\n");
110  (void)syn6288_deinit(&gs_handle);
111 
112  return 1;
113  }
114 
115  /* set 9600 bps */
116  syn6288_interface_debug_print("syn6288: set 9600 bps.\n");
117  res = syn6288_get_baud_rate(&gs_handle, &rate);
118  if (res != 0)
119  {
120  syn6288_interface_debug_print("syn6288: get baud rate failed.\n");
121  (void)syn6288_deinit(&gs_handle);
122 
123  return 1;
124  }
125  syn6288_interface_debug_print("syn6288: check baud rate %s.\n", rate==SYN6288_BAUD_RATE_9600_BPS?"ok":"error");
126 
127  /* syn6288_set_mode/syn6288_get_mode test */
128  syn6288_interface_debug_print("syn6288: syn6288_set_mode/syn6288_get_mode test.\n");
129  res = syn6288_set_mode(&gs_handle, SYN6288_MODE_BACKGROUND_15);
130  if (res != 0)
131  {
132  syn6288_interface_debug_print("syn6288: set mode failed.\n");
133  (void)syn6288_deinit(&gs_handle);
134 
135  return 1;
136  }
137  syn6288_interface_debug_print("syn6288: set background_15 mode.\n");
138  res = syn6288_get_mode(&gs_handle, &mode);
139  if (res != 0)
140  {
141  syn6288_interface_debug_print("syn6288: get mode failed.\n");
142  (void)syn6288_deinit(&gs_handle);
143 
144  return 1;
145  }
146  syn6288_interface_debug_print("syn6288: check mode %s.\n", mode==SYN6288_MODE_BACKGROUND_15?"ok":"error");
147 
148  /* syn6288_set_text_type/syn6288_get_text_type test */
149  syn6288_interface_debug_print("syn6288: syn6288_set_text_type/syn6288_get_text_type test.\n");
150 
151  /* set GB2312 */
152  res = syn6288_set_text_type(&gs_handle, SYN6288_TYPE_GB2312);
153  if (res != 0)
154  {
155  syn6288_interface_debug_print("syn6288: set text type failed.\n");
156  (void)syn6288_deinit(&gs_handle);
157 
158  return 1;
159  }
160  syn6288_interface_debug_print("syn6288: set gb2312 text type.\n");
161  res = syn6288_get_text_type(&gs_handle, &type);
162  if (res != 0)
163  {
164  syn6288_interface_debug_print("syn6288: get text type failed.\n");
165  (void)syn6288_deinit(&gs_handle);
166 
167  return 1;
168  }
169  syn6288_interface_debug_print("syn6288: check text type %s.\n", type==SYN6288_TYPE_GB2312?"ok":"error");
170 
171  /* set GBK */
172  res = syn6288_set_text_type(&gs_handle, SYN6288_TYPE_GBK);
173  if (res != 0)
174  {
175  syn6288_interface_debug_print("syn6288: set text type failed.\n");
176  (void)syn6288_deinit(&gs_handle);
177 
178  return 1;
179  }
180  syn6288_interface_debug_print("syn6288: set gbk text type.\n");
181  res = syn6288_get_text_type(&gs_handle, &type);
182  if (res != 0)
183  {
184  syn6288_interface_debug_print("syn6288: get text type failed.\n");
185  (void)syn6288_deinit(&gs_handle);
186 
187  return 1;
188  }
189  syn6288_interface_debug_print("syn6288: check text type %s.\n", type==SYN6288_TYPE_GBK?"ok":"error");
190 
191  /* set BIG5 */
192  res = syn6288_set_text_type(&gs_handle, SYN6288_TYPE_BIG5);
193  if (res != 0)
194  {
195  syn6288_interface_debug_print("syn6288: set text type failed.\n");
196  (void)syn6288_deinit(&gs_handle);
197 
198  return 1;
199  }
200  syn6288_interface_debug_print("syn6288: set big5 text type.\n");
201  res = syn6288_get_text_type(&gs_handle, &type);
202  if (res != 0)
203  {
204  syn6288_interface_debug_print("syn6288: get text type failed.\n");
205  (void)syn6288_deinit(&gs_handle);
206 
207  return 1;
208  }
209  syn6288_interface_debug_print("syn6288: check text type %s.\n", type==SYN6288_TYPE_BIG5?"ok":"error");
210 
211  /* set UNICODE */
212  res = syn6288_set_text_type(&gs_handle, SYN6288_TYPE_UNICODE);
213  if (res != 0)
214  {
215  syn6288_interface_debug_print("syn6288: set text type failed.\n");
216  (void)syn6288_deinit(&gs_handle);
217 
218  return 1;
219  }
220  syn6288_interface_debug_print("syn6288: set unicode text type.\n");
221  res = syn6288_get_text_type(&gs_handle, &type);
222  if (res != 0)
223  {
224  syn6288_interface_debug_print("syn6288: get text type failed.\n");
225  (void)syn6288_deinit(&gs_handle);
226 
227  return 1;
228  }
229  syn6288_interface_debug_print("syn6288: check text type %s.\n", type==SYN6288_TYPE_UNICODE?"ok":"error");
230 
231  /* syn6288_set_synthesis_volume/syn6288_get_synthesis_volume test */
232  syn6288_interface_debug_print("syn6288: syn6288_set_synthesis_volume/syn6288_get_synthesis_volume test.\n");
233  res = syn6288_set_synthesis_volume(&gs_handle, 6);
234  if (res != 0)
235  {
236  syn6288_interface_debug_print("syn6288: set synthesis volume failed.\n");
237  (void)syn6288_deinit(&gs_handle);
238 
239  return 1;
240  }
241  syn6288_interface_debug_print("syn6288: set synthesis volume 6.\n");
242  res = syn6288_get_synthesis_volume(&gs_handle, (uint8_t *)&volume);
243  if (res != 0)
244  {
245  syn6288_interface_debug_print("syn6288: get synthesis volume failed.\n");
246  (void)syn6288_deinit(&gs_handle);
247 
248  return 1;
249  }
250  syn6288_interface_debug_print("syn6288: check synthesis volume %s.\n", volume==6?"ok":"error");
251 
252  /* syn6288_set_background_volume/syn6288_get_background_volume test */
253  syn6288_interface_debug_print("syn6288: syn6288_set_background_volume/syn6288_get_background_volume test.\n");
254  res = syn6288_set_background_volume(&gs_handle, 8);
255  if (res != 0)
256  {
257  syn6288_interface_debug_print("syn6288: set background volume failed.\n");
258  (void)syn6288_deinit(&gs_handle);
259 
260  return 1;
261  }
262  syn6288_interface_debug_print("syn6288: set background volume 8.\n");
263  res = syn6288_get_background_volume(&gs_handle, (uint8_t *)&volume);
264  if (res != 0)
265  {
266  syn6288_interface_debug_print("syn6288: get background volume failed.\n");
267  (void)syn6288_deinit(&gs_handle);
268 
269  return 1;
270  }
271  syn6288_interface_debug_print("syn6288: check background volume %s.\n", volume==8?"ok":"error");
272 
273  /* syn6288_set_synthesis_speed/syn6288_get_synthesis_speed test */
274  syn6288_interface_debug_print("syn6288: syn6288_set_synthesis_speed/syn6288_get_synthesis_speed test.\n");
275  res = syn6288_set_synthesis_speed(&gs_handle, 3);
276  if (res != 0)
277  {
278  syn6288_interface_debug_print("syn6288: set synthesis speed failed.\n");
279  (void)syn6288_deinit(&gs_handle);
280 
281  return 1;
282  }
283  syn6288_interface_debug_print("syn6288: set synthesis speed 3.\n");
284  res = syn6288_get_synthesis_speed(&gs_handle, (uint8_t *)&speed);
285  if (res != 0)
286  {
287  syn6288_interface_debug_print("syn6288: get synthesis speed failed.\n");
288  (void)syn6288_deinit(&gs_handle);
289 
290  return 1;
291  }
292  syn6288_interface_debug_print("syn6288: check synthesis speed %s.\n", speed==3?"ok":"error");
293 
294  /* syn6288_set_command test */
295  syn6288_interface_debug_print("syn6288: syn6288_set_command test.\n");
296  memset(s, 0, sizeof(char) * 32);
297  strncpy(s, "[y1]", 32);
298  res = syn6288_set_command(&gs_handle, s);
299  if (res != 0)
300  {
301  syn6288_interface_debug_print("syn6288: set command failed.\n");
302  (void)syn6288_deinit(&gs_handle);
303 
304  return 1;
305  }
306  syn6288_interface_debug_print("syn6288: check command %s.\n", res==0?"ok":"error");
307 
308  /* finish register test */
309  syn6288_interface_debug_print("syn6288: finish register test.\n");
310  (void)syn6288_deinit(&gs_handle);
311 
312  return 0;
313 }
driver syn6288 register test header file
uint8_t syn6288_get_mode(syn6288_handle_t *handle, syn6288_mode_t *mode)
get the chip mode
uint8_t syn6288_set_background_volume(syn6288_handle_t *handle, uint8_t volume)
set the synthesis background volume
syn6288_mode_t
syn6288 mode enumeration definition
uint8_t syn6288_set_baud_rate(syn6288_handle_t *handle, syn6288_baud_rate_t rate)
set the baud rate
syn6288_baud_rate_t
syn6288 baud rate enumeration definition
uint8_t syn6288_get_background_volume(syn6288_handle_t *handle, uint8_t *volume)
get the chip synthesis background volume
uint8_t syn6288_get_synthesis_volume(syn6288_handle_t *handle, uint8_t *volume)
get the chip synthesis volume
uint8_t syn6288_set_synthesis_volume(syn6288_handle_t *handle, uint8_t volume)
set the chip synthesis volume
uint8_t syn6288_get_baud_rate(syn6288_handle_t *handle, syn6288_baud_rate_t *rate)
get the baud rate
uint8_t syn6288_set_synthesis_speed(syn6288_handle_t *handle, uint8_t speed)
set the synthesis speed
uint8_t syn6288_get_synthesis_speed(syn6288_handle_t *handle, uint8_t *speed)
get the synthesis speed
uint8_t syn6288_set_mode(syn6288_handle_t *handle, syn6288_mode_t mode)
set the chip mode
@ SYN6288_MODE_BACKGROUND_15
@ SYN6288_BAUD_RATE_9600_BPS
uint8_t syn6288_init(syn6288_handle_t *handle)
initialize the chip
syn6288_type_t
syn6288 type enumeration definition
uint8_t syn6288_get_text_type(syn6288_handle_t *handle, syn6288_type_t *type)
get the chip text type
uint8_t syn6288_set_text_type(syn6288_handle_t *handle, syn6288_type_t type)
set the chip text type
uint8_t syn6288_deinit(syn6288_handle_t *handle)
close the chip
uint8_t syn6288_info(syn6288_info_t *info)
get chip's information
@ SYN6288_TYPE_GB2312
@ SYN6288_TYPE_UNICODE
@ SYN6288_TYPE_GBK
@ SYN6288_TYPE_BIG5
uint8_t syn6288_set_command(syn6288_handle_t *handle, char *command)
send the command to the chip
void syn6288_interface_delay_ms(uint32_t ms)
interface delay ms
uint8_t syn6288_interface_uart_flush(void)
interface uart flush
uint8_t syn6288_interface_uart_write(uint8_t *buf, uint16_t len)
interface uart write
uint16_t syn6288_interface_uart_read(uint8_t *buf, uint16_t len)
interface uart read
uint8_t syn6288_interface_uart_deinit(void)
interface uart deinit
void syn6288_interface_debug_print(const char *const fmt,...)
interface print format data
uint8_t syn6288_interface_uart_init(void)
interface uart init
uint8_t syn6288_register_test(void)
register test
syn6288 handle structure definition
syn6288 information structure definition
float supply_voltage_max_v
uint32_t driver_version
char manufacturer_name[32]
float supply_voltage_min_v
char chip_name[32]