QAQ ==!

Dependencies:   mbed QEI-1 nRF24L01P xiugai

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?

UserRevisionLine numberNew 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