Arduino-CmdMessenger
Arduino-CmdMessenger copied to clipboard
Platformio+Digispark compatible solution
I want to use CmdMessenger with Digispark attiny85.
They have their own Stream class, Print classes.. .
- First of all I add some functions to Stream class.
int timedRead()
virtual size_t readBytes(char *buffer, size_t length)
- I spend a lot of time to find a problem why CmdMessenger can't hear me (only UnknownCommand handler called) ... (I connect Arduino to COM port and want to send-receive bytes in Terminal)
I was angry when I found solution:
Send command 0
30 3B
Receive command 1
01 2C 33 3B
Digispark made print function without default argument=DEC... for all types except char.. For compatible we should add DEC everywhere in CmdMessenger :(.
comms->print(cmdId, DEC);
and etc
- Attiny85 doesn't want to start with CmdMessenger cause little memory. I change defines:
#define MAXCALLBACKS 5 // The maximum number of commands (default: 50)
#define MESSENGERBUFFERSIZE 20 // The length of the commandbuffer (default: 64)
#define MAXSTREAMBUFFERSIZE 20 // The length of the streambuffer (default: 64)
and it works fine :)
There was difficult to find solutions cause:
- There is no protocol description or trace. Please add them.
- There is no tests written on "C" or "Python" :)
There are errors in Platformio libraries for "digispark-tiny" platform :(