Apartir de la pagina 3 esta bien explicado como enviar un comando:
http://www.picaxe.com/docs/spe033.pdfIncluso te da un ejemplo:
1).For example, select the first song played, serial transmission section: 7E FF 06 03 00 00 01 FF E6 EF
7E --- START command
FF --- Version Information
06 --- Data length (not including parity)
03 --- Representative No.
00 --- If need to acknowledge [0x01: need answering, 0x00: do not need to return the response]
00 --- Tracks high byte [DH]
01 --- Tracks low byte [DL], represented here is the first song played
FF --- Checksum high byte
E6 --- Checksum low byte
EF --- End Command
La unica duda que puede suceder es como calcula el Checksum (Porque cada uno lo calcula de distinta forma). Del codigo acontinuacion suma los datos, es decir luego del primer FF hasta antes del checksum, y luego devuelve el valor negativo de este numero para almacenarlo correctamente: en
Big endian....
Aca el codigo de esa parte:
static void fill_uint16_bigend (uint8_t *thebuf, uint16_t data) {
*thebuf = (uint8_t)(data>>8);
*(thebuf+1) = (uint8_t)data;
}
//calc checksum (1~6 byte)
uint16_t mp3_get_checksum (uint8_t *thebuf) {
uint16_t sum = 0;
for (int i=1; i<7; i++) {
sum += thebuf[i];
}
return -sum;
}
//fill checksum to send_buf (7~8 byte)
void mp3_fill_checksum () {
uint16_t checksum = mp3_get_checksum (send_buf);
fill_uint16_bigend (send_buf+7, checksum);
}
O un ejemplo practico para que te guies:
[7E FF 06 0D 00 00 00 FF EE EF]
0x06 + 0x0D = 0x13
El numero negativo es 0xFFFF - 0x13 + 0x1 = 0xFFEE
el byte numero 8 es 0xFF y el 9 es 0xEE
Todo lo demas queda en vos. Hay algunas cosas que tenes que leer y ver que este listo antes de poder enviarle instrucciones, el PDF aclara como es que debes proceder y que debes enviar. Asi como tambien las respuestas que puede darte el reproductor si es que le pedis un feedback.