LibDriver SYN6288E
Loading...
Searching...
No Matches
driver_syn6288e_synthesis_test.c
Go to the documentation of this file.
1
36
38
39static syn6288e_handle_t gs_handle;
40
49{
50 uint8_t res;
51 syn6288e_info_t info;
52 syn6288e_status_t status;
53 char s[32];
54 uint8_t gb2312_text[] = {0xD3, 0xEE, 0xD2, 0xF4, 0xCC, 0xEC, 0xCF, 0xC2, 0x00};
55 uint8_t gbk_text[] = {0xD3, 0xEE, 0xD2, 0xF4, 0xCC, 0xEC, 0xCF, 0xC2, 0x00};
56 uint8_t big5_text[] = {0xA6, 0x74, 0xAD, 0xB5, 0xA4, 0xD1, 0xA4, 0x55, 0x00};
57 uint8_t unicode_text[] = {0x8B, 0xED, 0x97, 0xF3, 0x59, 0x29, 0x4E, 0x0B, 0x00};
58
59 /* link interface function */
68
69 /* get syn6288e information */
70 res = syn6288e_info(&info);
71 if (res != 0)
72 {
73 syn6288e_interface_debug_print("syn6288e: get info failed.\n");
74
75 return 1;
76 }
77 else
78 {
79 /* print chip information */
80 syn6288e_interface_debug_print("syn6288e: chip is %s.\n", info.chip_name);
81 syn6288e_interface_debug_print("syn6288e: manufacturer is %s.\n", info.manufacturer_name);
82 syn6288e_interface_debug_print("syn6288e: interface is %s.\n", info.interface);
83 syn6288e_interface_debug_print("syn6288e: driver version is %d.%d.\n", info.driver_version / 1000, (info.driver_version % 1000) / 100);
84 syn6288e_interface_debug_print("syn6288e: min supply voltage is %0.1fV.\n", info.supply_voltage_min_v);
85 syn6288e_interface_debug_print("syn6288e: max supply voltage is %0.1fV.\n", info.supply_voltage_max_v);
86 syn6288e_interface_debug_print("syn6288e: max current is %0.2fmA.\n", info.max_current_ma);
87 syn6288e_interface_debug_print("syn6288e: max temperature is %0.1fC.\n", info.temperature_max);
88 syn6288e_interface_debug_print("syn6288e: min temperature is %0.1fC.\n", info.temperature_min);
89 }
90
91 /* syn6288e init */
92 res = syn6288e_init(&gs_handle);
93 if (res != 0)
94 {
95 syn6288e_interface_debug_print("syn6288e: init failed.\n");
96
97 return 1;
98 }
99
100 /* set baud rate 9600 bps */
102 if (res != 0)
103 {
104 syn6288e_interface_debug_print("syn6288e: set baud rate failed.\n");
105 (void)syn6288e_deinit(&gs_handle);
106
107 return 1;
108 }
109
110 /* set common mode */
111 res = syn6288e_set_mode(&gs_handle, SYN6288E_MODE_COMMON);
112 if (res != 0)
113 {
114 syn6288e_interface_debug_print("syn6288e: set mode failed.\n");
115 (void)syn6288e_deinit(&gs_handle);
116
117 return 1;
118 }
119
120 /* set synthesis volume 16 */
121 res = syn6288e_set_synthesis_volume(&gs_handle, 16);
122 if (res != 0)
123 {
124 syn6288e_interface_debug_print("syn6288e: set synthesis volume failed.\n");
125 (void)syn6288e_deinit(&gs_handle);
126
127 return 1;
128 }
129
130 /* set background volume 16 */
131 res = syn6288e_set_background_volume(&gs_handle, 0);
132 if (res != 0)
133 {
134 syn6288e_interface_debug_print("syn6288e: set background volume failed.\n");
135 (void)syn6288e_deinit(&gs_handle);
136
137 return 1;
138 }
139
140 /* set synthesis speed 5 */
141 res = syn6288e_set_synthesis_speed(&gs_handle, 5);
142 if (res != 0)
143 {
144 syn6288e_interface_debug_print("syn6288e: set synthesis speed failed.\n");
145 (void)syn6288e_deinit(&gs_handle);
146
147 return 1;
148 }
149 syn6288e_interface_debug_print("syn6288e: start synthesis test.\n");
150
151 /* synthesis text test */
152 syn6288e_interface_debug_print("syn6288e: synthesis text test.\n");
153
154 /* gb2312 synthesis text */
155 syn6288e_interface_debug_print("syn6288e: gb2312 synthesis text.\n");
157 if (res != 0)
158 {
159 syn6288e_interface_debug_print("syn6288e: set text type failed.\n");
160 (void)syn6288e_deinit(&gs_handle);
161
162 return 1;
163 }
164
165 /* synthesis text */
166 res = syn6288e_synthesis_text(&gs_handle, (char *)gb2312_text);
167 if (res != 0)
168 {
169 syn6288e_interface_debug_print("syn6288e: synthesis text failed.\n");
170 (void)syn6288e_deinit(&gs_handle);
171
172 return 1;
173 }
174 status = SYN6288E_STATUS_BUSY;
175 while (status == SYN6288E_STATUS_BUSY)
176 {
178 res = syn6288e_get_status(&gs_handle, &status);
179 if (res != 0)
180 {
181 syn6288e_interface_debug_print("syn6288e: get status failed.\n");
182 (void)syn6288e_deinit(&gs_handle);
183
184 return 1;
185 }
186 }
187
188 /* gbk synthesis text */
189 syn6288e_interface_debug_print("syn6288e: gbk synthesis text.\n");
190 res = syn6288e_set_text_type(&gs_handle, SYN6288E_TYPE_GBK);
191 if (res != 0)
192 {
193 syn6288e_interface_debug_print("syn6288e: set text type failed.\n");
194 (void)syn6288e_deinit(&gs_handle);
195
196 return 1;
197 }
198
199 /* synthesis text */
200 res = syn6288e_synthesis_text(&gs_handle, (char *)gbk_text);
201 if (res != 0)
202 {
203 syn6288e_interface_debug_print("syn6288e: synthesis text failed.\n");
204 (void)syn6288e_deinit(&gs_handle);
205
206 return 1;
207 }
208 status = SYN6288E_STATUS_BUSY;
209 while (status == SYN6288E_STATUS_BUSY)
210 {
212 res = syn6288e_get_status(&gs_handle, &status);
213 if (res != 0)
214 {
215 syn6288e_interface_debug_print("syn6288e: get status failed.\n");
216 (void)syn6288e_deinit(&gs_handle);
217
218 return 1;
219 }
220 }
221
222 /* big5 synthesis text */
223 syn6288e_interface_debug_print("syn6288e: big5 synthesis text.\n");
225 if (res != 0)
226 {
227 syn6288e_interface_debug_print("syn6288e: set text type failed.\n");
228 (void)syn6288e_deinit(&gs_handle);
229
230 return 1;
231 }
232
233 /* synthesis text */
234 res = syn6288e_synthesis_text(&gs_handle, (char *)big5_text);
235 if (res != 0)
236 {
237 syn6288e_interface_debug_print("syn6288e: synthesis text failed.\n");
238 (void)syn6288e_deinit(&gs_handle);
239
240 return 1;
241 }
242 status = SYN6288E_STATUS_BUSY;
243 while (status == SYN6288E_STATUS_BUSY)
244 {
246 res = syn6288e_get_status(&gs_handle, &status);
247 if (res != 0)
248 {
249 syn6288e_interface_debug_print("syn6288e: get status failed.\n");
250 (void)syn6288e_deinit(&gs_handle);
251
252 return 1;
253 }
254 }
255
256 /* unicode synthesis text */
257 syn6288e_interface_debug_print("syn6288e: unicode synthesis text.\n");
259 if (res != 0)
260 {
261 syn6288e_interface_debug_print("syn6288e: set text type failed.\n");
262 (void)syn6288e_deinit(&gs_handle);
263
264 return 1;
265 }
266
267 /* synthesis text */
268 res = syn6288e_synthesis_text(&gs_handle, (char *)unicode_text);
269 if (res != 0)
270 {
271 syn6288e_interface_debug_print("syn6288e: synthesis text failed.\n");
272 (void)syn6288e_deinit(&gs_handle);
273
274 return 1;
275 }
276 status = SYN6288E_STATUS_BUSY;
277 while (status == SYN6288E_STATUS_BUSY)
278 {
280 res = syn6288e_get_status(&gs_handle, &status);
281 if (res != 0)
282 {
283 syn6288e_interface_debug_print("syn6288e: get status failed.\n");
284 (void)syn6288e_deinit(&gs_handle);
285
286 return 1;
287 }
288 }
289
290 /* set gb2312 synthesis text */
292 if (res != 0)
293 {
294 syn6288e_interface_debug_print("syn6288e: set text type failed.\n");
295 (void)syn6288e_deinit(&gs_handle);
296
297 return 1;
298 }
299
300 /* synthesis sound test */
301 syn6288e_interface_debug_print("syn6288e: synthesis sound test.\n");
303 if (res != 0)
304 {
305 syn6288e_interface_debug_print("syn6288e: synthesis sound failed.\n");
306 (void)syn6288e_deinit(&gs_handle);
307
308 return 1;
309 }
310 status = SYN6288E_STATUS_BUSY;
311 while (status == SYN6288E_STATUS_BUSY)
312 {
314 res = syn6288e_get_status(&gs_handle, &status);
315 if (res != 0)
316 {
317 syn6288e_interface_debug_print("syn6288e: get status failed.\n");
318 (void)syn6288e_deinit(&gs_handle);
319
320 return 1;
321 }
322 }
323
324 /* synthesis message test */
325 syn6288e_interface_debug_print("syn6288e: synthesis message test.\n");
327 if (res != 0)
328 {
329 syn6288e_interface_debug_print("syn6288e: synthesis message failed.\n");
330 (void)syn6288e_deinit(&gs_handle);
331
332 return 1;
333 }
334 status = SYN6288E_STATUS_BUSY;
335 while (status == SYN6288E_STATUS_BUSY)
336 {
338 res = syn6288e_get_status(&gs_handle, &status);
339 if (res != 0)
340 {
341 syn6288e_interface_debug_print("syn6288e: get status failed.\n");
342 (void)syn6288e_deinit(&gs_handle);
343
344 return 1;
345 }
346 }
347
348 /* synthesis ring test */
349 syn6288e_interface_debug_print("syn6288e: synthesis ring test.\n");
350 res = syn6288e_synthesis_ring(&gs_handle, SYN6288E_RING_E);
351 if (res != 0)
352 {
353 syn6288e_interface_debug_print("syn6288e: synthesis ring failed.\n");
354 (void)syn6288e_deinit(&gs_handle);
355
356 return 1;
357 }
358 status = SYN6288E_STATUS_BUSY;
359 while (status == SYN6288E_STATUS_BUSY)
360 {
362 res = syn6288e_get_status(&gs_handle, &status);
363 if (res != 0)
364 {
365 syn6288e_interface_debug_print("syn6288e: get status failed.\n");
366 (void)syn6288e_deinit(&gs_handle);
367
368 return 1;
369 }
370 }
372
373 /* synthesis control test */
374 syn6288e_interface_debug_print("syn6288e: synthesis control test.\n");
375 res = syn6288e_synthesis_text(&gs_handle, (char *)gb2312_text);
376 if (res != 0)
377 {
378 syn6288e_interface_debug_print("syn6288e: synthesis text failed.\n");
379 (void)syn6288e_deinit(&gs_handle);
380
381 return 1;
382 }
384 res = syn6288e_pause(&gs_handle);
385 if (res != 0)
386 {
387 syn6288e_interface_debug_print("syn6288e: pause failed.\n");
388 (void)syn6288e_deinit(&gs_handle);
389
390 return 1;
391 }
392 syn6288e_interface_debug_print("syn6288e: synthesis control pause.\n");
394 res = syn6288e_resume(&gs_handle);
395 if (res != 0)
396 {
397 syn6288e_interface_debug_print("syn6288e: resume failed.\n");
398 (void)syn6288e_deinit(&gs_handle);
399
400 return 1;
401 }
402 syn6288e_interface_debug_print("syn6288e: synthesis control resume.\n");
403 status = SYN6288E_STATUS_BUSY;
404 while (status == SYN6288E_STATUS_BUSY)
405 {
407 res = syn6288e_get_status(&gs_handle, &status);
408 if (res != 0)
409 {
410 syn6288e_interface_debug_print("syn6288e: get status failed.\n");
411 (void)syn6288e_deinit(&gs_handle);
412
413 return 1;
414 }
415 }
416 res = syn6288e_synthesis_text(&gs_handle, (char *)gb2312_text);
417 if (res != 0)
418 {
419 syn6288e_interface_debug_print("syn6288e: synthesis text failed.\n");
420 (void)syn6288e_deinit(&gs_handle);
421
422 return 1;
423 }
425 res = syn6288e_stop(&gs_handle);
426 if (res != 0)
427 {
428 syn6288e_interface_debug_print("syn6288e: stop failed.\n");
429 (void)syn6288e_deinit(&gs_handle);
430
431 return 1;
432 }
433 syn6288e_interface_debug_print("syn6288e: synthesis control stop.\n");
435
436 /* synthesis volume test */
437 syn6288e_interface_debug_print("syn6288e: synthesis volume test.\n");
438 res = syn6288e_set_synthesis_volume(&gs_handle, 5);
439 if (res != 0)
440 {
441 syn6288e_interface_debug_print("syn6288e: set synthesis volume failed.\n");
442 (void)syn6288e_deinit(&gs_handle);
443
444 return 1;
445 }
446 syn6288e_interface_debug_print("syn6288e: set synthesis volume 5.\n");
447 res = syn6288e_synthesis_text(&gs_handle, (char *)gb2312_text);
448 if (res != 0)
449 {
450 syn6288e_interface_debug_print("syn6288e: synthesis text failed.\n");
451 (void)syn6288e_deinit(&gs_handle);
452
453 return 1;
454 }
455 status = SYN6288E_STATUS_BUSY;
456 while (status == SYN6288E_STATUS_BUSY)
457 {
459 res = syn6288e_get_status(&gs_handle, &status);
460 if (res != 0)
461 {
462 syn6288e_interface_debug_print("syn6288e: get status failed.\n");
463 (void)syn6288e_deinit(&gs_handle);
464
465 return 1;
466 }
467 }
468 res = syn6288e_set_synthesis_volume(&gs_handle, 16);
469 if (res != 0)
470 {
471 syn6288e_interface_debug_print("syn6288e: set synthesis volume failed.\n");
472 (void)syn6288e_deinit(&gs_handle);
473
474 return 1;
475 }
476
477 /* synthesis speed test */
478 syn6288e_interface_debug_print("syn6288e: synthesis speed test.\n");
479 res = syn6288e_set_synthesis_speed(&gs_handle, 0);
480 if (res != 0)
481 {
482 syn6288e_interface_debug_print("syn6288e: set synthesis speed failed.\n");
483 (void)syn6288e_deinit(&gs_handle);
484
485 return 1;
486 }
487 syn6288e_interface_debug_print("syn6288e: set synthesis speed 0.\n");
488 res = syn6288e_synthesis_text(&gs_handle, (char *)gb2312_text);
489 if (res != 0)
490 {
491 syn6288e_interface_debug_print("syn6288e: synthesis text failed.\n");
492 (void)syn6288e_deinit(&gs_handle);
493
494 return 1;
495 }
496 status = SYN6288E_STATUS_BUSY;
497 while (status == SYN6288E_STATUS_BUSY)
498 {
500 res = syn6288e_get_status(&gs_handle, &status);
501 if (res != 0)
502 {
503 syn6288e_interface_debug_print("syn6288e: get status failed.\n");
504 (void)syn6288e_deinit(&gs_handle);
505
506 return 1;
507 }
508 }
509 res = syn6288e_set_synthesis_speed(&gs_handle, 5);
510 if (res != 0)
511 {
512 syn6288e_interface_debug_print("syn6288e: set synthesis speed failed.\n");
513 (void)syn6288e_deinit(&gs_handle);
514
515 return 1;
516 }
517
518 /* synthesis mode test */
519 syn6288e_interface_debug_print("syn6288e: synthesis mode test.\n");
520
521 /* background mode on */
522 syn6288e_interface_debug_print("syn6288e: background mode on.\n");
523 res = syn6288e_set_background_volume(&gs_handle, 15);
524 if (res != 0)
525 {
526 syn6288e_interface_debug_print("syn6288e: set background volume failed.\n");
527 (void)syn6288e_deinit(&gs_handle);
528
529 return 1;
530 }
532 if (res != 0)
533 {
534 syn6288e_interface_debug_print("syn6288e: set mode failed.\n");
535 (void)syn6288e_deinit(&gs_handle);
536
537 return 1;
538 }
539 res = syn6288e_synthesis_text(&gs_handle, (char *)gb2312_text);
540 if (res != 0)
541 {
542 syn6288e_interface_debug_print("syn6288e: synthesis text failed.\n");
543 (void)syn6288e_deinit(&gs_handle);
544
545 return 1;
546 }
547 status = SYN6288E_STATUS_BUSY;
548 while (status == SYN6288E_STATUS_BUSY)
549 {
551 res = syn6288e_get_status(&gs_handle, &status);
552 if (res != 0)
553 {
554 syn6288e_interface_debug_print("syn6288e: get status failed.\n");
555 (void)syn6288e_deinit(&gs_handle);
556
557 return 1;
558 }
559 }
560
561 /* command test */
562 syn6288e_interface_debug_print("syn6288e: command test.\n");
563 syn6288e_interface_debug_print("syn6288e: set command 0.\n");
564 memset(s, 0, sizeof(char) * 32);
565 strncpy(s, "[b0]", 32);
566 res = syn6288e_set_command(&gs_handle, s);
567 if (res != 0)
568 {
569 syn6288e_interface_debug_print("syn6288e: set command failed.\n");
570 (void)syn6288e_deinit(&gs_handle);
571
572 return 1;
573 }
574 memset(s, 0, sizeof(char) * 32);
575 strncpy(s, "110,120,130", 32);
576 res = syn6288e_synthesis_text(&gs_handle, s);
577 if (res != 0)
578 {
579 syn6288e_interface_debug_print("syn6288e: synthesis text failed.\n");
580 (void)syn6288e_deinit(&gs_handle);
581
582 return 1;
583 }
584 status = SYN6288E_STATUS_BUSY;
585 while (status == SYN6288E_STATUS_BUSY)
586 {
588 res = syn6288e_get_status(&gs_handle, &status);
589 if (res != 0)
590 {
591 syn6288e_interface_debug_print("syn6288e: get status failed.\n");
592 (void)syn6288e_deinit(&gs_handle);
593
594 return 1;
595 }
596 }
597 syn6288e_interface_debug_print("syn6288e: set command 1.\n");
598 memset(s, 0, sizeof(char) * 32);
599 strncpy(s, "[b1]", 32);
600 res = syn6288e_set_command(&gs_handle, s);
601 if (res != 0)
602 {
603 syn6288e_interface_debug_print("syn6288e: set command failed.\n");
604 (void)syn6288e_deinit(&gs_handle);
605
606 return 1;
607 }
608 memset(s, 0, sizeof(char) * 32);
609 strncpy(s, "110,120,130", 32);
610 res = syn6288e_synthesis_text(&gs_handle, s);
611 if (res != 0)
612 {
613 syn6288e_interface_debug_print("syn6288e: synthesis text failed.\n");
614 (void)syn6288e_deinit(&gs_handle);
615
616 return 1;
617 }
618 status = SYN6288E_STATUS_BUSY;
619 while (status == SYN6288E_STATUS_BUSY)
620 {
622 res = syn6288e_get_status(&gs_handle, &status);
623 if (res != 0)
624 {
625 syn6288e_interface_debug_print("syn6288e: get status failed.\n");
626 (void)syn6288e_deinit(&gs_handle);
627
628 return 1;
629 }
630 }
631
632 /* finish synthesis test */
633 syn6288e_interface_debug_print("syn6288e: finish synthesis test.\n");
634 (void)syn6288e_deinit(&gs_handle);
635
636 return 0;
637}
driver syn6288e synthesis test header file
uint8_t syn6288e_set_background_volume(syn6288e_handle_t *handle, uint8_t volume)
set the synthesis background volume
uint8_t syn6288e_set_baud_rate(syn6288e_handle_t *handle, syn6288e_baud_rate_t rate)
set the baud rate
uint8_t syn6288e_set_synthesis_speed(syn6288e_handle_t *handle, uint8_t speed)
set the synthesis speed
uint8_t syn6288e_set_synthesis_volume(syn6288e_handle_t *handle, uint8_t volume)
set the chip synthesis volume
uint8_t syn6288e_set_mode(syn6288e_handle_t *handle, syn6288e_mode_t mode)
set the chip mode
@ SYN6288E_BAUD_RATE_9600_BPS
@ SYN6288E_MODE_COMMON
@ SYN6288E_MODE_BACKGROUND_1
uint8_t syn6288e_synthesis_text(syn6288e_handle_t *handle, char *text)
synthesis the test
uint8_t syn6288e_synthesis_sound(syn6288e_handle_t *handle, syn6288e_sound_t sound)
synthesis the sound
uint8_t syn6288e_init(syn6288e_handle_t *handle)
initialize the chip
uint8_t syn6288e_synthesis_ring(syn6288e_handle_t *handle, syn6288e_ring_t ring)
synthesis the ring
uint8_t syn6288e_deinit(syn6288e_handle_t *handle)
close the chip
uint8_t syn6288e_info(syn6288e_info_t *info)
get chip's information
uint8_t syn6288e_set_text_type(syn6288e_handle_t *handle, syn6288e_type_t type)
set the chip text type
struct syn6288e_handle_s syn6288e_handle_t
syn6288e handle structure definition
struct syn6288e_info_s syn6288e_info_t
syn6288e information structure definition
uint8_t syn6288e_get_status(syn6288e_handle_t *handle, syn6288e_status_t *status)
get the current status
uint8_t syn6288e_stop(syn6288e_handle_t *handle)
stop the chip
uint8_t syn6288e_synthesis_message(syn6288e_handle_t *handle, syn6288e_message_t message)
synthesis the message
uint8_t syn6288e_pause(syn6288e_handle_t *handle)
pause the chip
syn6288e_status_t
syn6288e status enumeration definition
uint8_t syn6288e_resume(syn6288e_handle_t *handle)
resume the chip
@ SYN6288E_TYPE_GBK
@ SYN6288E_TYPE_BIG5
@ SYN6288E_TYPE_UNICODE
@ SYN6288E_TYPE_GB2312
@ SYN6288E_MESSAGE_A
@ SYN6288E_RING_E
@ SYN6288E_STATUS_BUSY
@ SYN6288E_SOUND_A
uint8_t syn6288e_set_command(syn6288e_handle_t *handle, char *command)
send the command to the chip
uint8_t syn6288e_interface_uart_init(void)
interface uart init
uint8_t syn6288e_interface_uart_flush(void)
interface uart flush
void syn6288e_interface_delay_ms(uint32_t ms)
interface delay ms
uint16_t syn6288e_interface_uart_read(uint8_t *buf, uint16_t len)
interface uart read
void syn6288e_interface_debug_print(const char *const fmt,...)
interface print format data
uint8_t syn6288e_interface_uart_write(uint8_t *buf, uint16_t len)
interface uart write
uint8_t syn6288e_interface_uart_deinit(void)
interface uart deinit
uint8_t syn6288e_synthesis_test(void)
synthesis test
char manufacturer_name[32]