QAQ ==!
Dependencies: mbed QEI-1 nRF24L01P xiugai
SYN6288.cpp@15:934289377f7a, 2019-12-14 (annotated)
- Committer:
- AlexQian
- Date:
- Sat Dec 14 05:45:16 2019 +0000
- Revision:
- 15:934289377f7a
- Parent:
- 12:741de117e1ee
Balance_Car;
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
zhangyx | 9:d03b1af2b8d8 | 1 | #include "SYN6288.h" |
zhangyx | 12:741de117e1ee | 2 | void voice_play(const std::string &value, Serial* ser) { |
zhangyx | 12:741de117e1ee | 3 | int size = value.size(); |
zhangyx | 9:d03b1af2b8d8 | 4 | int data_length = 1+2+1+1+size; |
zhangyx | 9:d03b1af2b8d8 | 5 | int* data = (int*)malloc(sizeof(int)*(data_length+1)); |
zhangyx | 9:d03b1af2b8d8 | 6 | |
zhangyx | 9:d03b1af2b8d8 | 7 | int start = 0xfd; |
zhangyx | 9:d03b1af2b8d8 | 8 | int length = size + 3; |
zhangyx | 9:d03b1af2b8d8 | 9 | int length_h = length / 256; |
zhangyx | 9:d03b1af2b8d8 | 10 | int length_l = length % 256; |
zhangyx | 9:d03b1af2b8d8 | 11 | int command = 0x01; |
zhangyx | 9:d03b1af2b8d8 | 12 | int param = 0x01; |
zhangyx | 9:d03b1af2b8d8 | 13 | |
zhangyx | 9:d03b1af2b8d8 | 14 | data[0] = start; |
zhangyx | 9:d03b1af2b8d8 | 15 | data[1] = length_h; |
zhangyx | 9:d03b1af2b8d8 | 16 | data[2] = length_l; |
zhangyx | 9:d03b1af2b8d8 | 17 | data[3] = command; |
zhangyx | 9:d03b1af2b8d8 | 18 | data[4] = param; |
zhangyx | 9:d03b1af2b8d8 | 19 | |
zhangyx | 9:d03b1af2b8d8 | 20 | for (int i=5; i<5+size; i++) { |
zhangyx | 9:d03b1af2b8d8 | 21 | data[i] = value[i-5]; |
zhangyx | 9:d03b1af2b8d8 | 22 | } |
zhangyx | 9:d03b1af2b8d8 | 23 | |
zhangyx | 9:d03b1af2b8d8 | 24 | // calculate check bit |
zhangyx | 9:d03b1af2b8d8 | 25 | int check_bit = data[0]; |
zhangyx | 9:d03b1af2b8d8 | 26 | for (int i=1; i<data_length; i++) { |
zhangyx | 9:d03b1af2b8d8 | 27 | check_bit ^= data[i]; |
zhangyx | 9:d03b1af2b8d8 | 28 | } |
zhangyx | 9:d03b1af2b8d8 | 29 | data[data_length] = check_bit; |
zhangyx | 9:d03b1af2b8d8 | 30 | |
zhangyx | 9:d03b1af2b8d8 | 31 | for (int i=0; i<=data_length; i++) { |
zhangyx | 9:d03b1af2b8d8 | 32 | ser->putc(data[i]); |
zhangyx | 9:d03b1af2b8d8 | 33 | } |
zhangyx | 9:d03b1af2b8d8 | 34 | |
zhangyx | 9:d03b1af2b8d8 | 35 | free(data); |
zhangyx | 9:d03b1af2b8d8 | 36 | |
zhangyx | 9:d03b1af2b8d8 | 37 | //int recv = ser->getc(); |
zhangyx | 9:d03b1af2b8d8 | 38 | //PC.printf("%c", recv); |
zhangyx | 9:d03b1af2b8d8 | 39 | //int done = ser->getc(); |
zhangyx | 9:d03b1af2b8d8 | 40 | //PC.printf("%c", done); |
zhangyx | 9:d03b1af2b8d8 | 41 | } |
zhangyx | 9:d03b1af2b8d8 | 42 |