Pancake Library for mbed
Diff: pancake.cpp
- Revision:
- 1:2eaa0fea479c
- Parent:
- 0:ee3420f81e2b
- Child:
- 2:a711a6feb092
--- a/pancake.cpp Sun Nov 22 14:50:54 2015 +0000 +++ b/pancake.cpp Sat Nov 28 16:06:07 2015 +0000 @@ -1,23 +1,67 @@ #include "pancake.hpp" -Pancake::Pancake(PinName tx,PinName rx) : _pc(tx,rx){ - _pc.baud(115200); +Pancake::Pancake(PinName tx,PinName rx) : pc(tx,rx){ + pc.baud(115200); } -void Pancake::sound1(uint8_t cn,uint8_t on ,uint8_t sn){ - uint8_t data[4]={0x0A,cn,on,sn}; - _sendCommand(data,4); + +void Pancake::sound1(uint8_t cn,sound_t &sound){ + uint8_t data[4]={0x0A,cn,sound.octave,sound.toneColor<<4|sound.scale}; + sendCommand(data,4); } +void Pancake::sound(sound_t sounds[4]){ + uint8_t data[9]={0x09,0,0,0,0,0,0,0,0}; + data[1] = sounds[0].octave; + data[2] = sounds[0].toneColor<<4|sounds[0].scale; + data[3] = sounds[1].octave; + data[4] = sounds[1].toneColor<<4|sounds[1].scale; + data[5] = sounds[2].octave; + data[6] = sounds[2].toneColor<<4|sounds[2].scale; + data[7] = sounds[3].octave; + data[8] = sounds[3].toneColor<<4|sounds[3].scale; + sendCommand(data,9); + } -void Pancake::_sendCommand(uint8_t data[],uint8_t length) +void Pancake::setMusic(uint8_t channel,bool mode,uint8_t tempo, + uint8_t toneColor,uint8_t score[],uint8_t scoreSize){ + uint8_t data[3+scoreSize]; + data[0] = 0x0b;//command code + data[1] = channel; + data[2] = mode; + data[3] = (tempo<<4)|toneColor; + for(uint8_t i= 4;i < scoreSize + 4;i++){ + data[i] = score[i - 4]; + } + data[scoreSize +4] = 0xFF; + sendCommand(data,scoreSize + 5); + } + +void Pancake::playMusic(){ + uint8_t data[2]={0x0c,0x01}; + sendCommand(data,2); + } + +void Pancake::stopMusic(){ + uint8_t data[2]={0x0c,0x00}; + sendCommand(data,2); + } + + void Pancake::writeLine(uint8_t sx,uint8_t sy,uint8_t ex,uint8_t ey, + P_Color color){ + uint8_t data[6] = {0x01,sx,sy,ex,ey,uint8_t(color)}; + sendCommand(data,6); + } + + +void Pancake::sendCommand(uint8_t data[],uint8_t length) { uint8_t i = 0; - _pc.putc(0x80); - _pc.putc(length + 2); + pc.putc(0x80); + pc.putc(length + 2); while(i < length ){ - _pc.putc(data[i]); + pc.putc(data[i]); i++; } } \ No newline at end of file