Examples - Modules - String Serial Protocol
New Version 1.1.4 Available! With support for unique ID's.
String Serial Protocol
String Serial Protocol is a simple protocol to communicate through the Serial Interface. It was designed to facilitate communication between two controller-boards (direct connected or through X-Bee) or between PC/MAC and controller-board.
All data is converted to Ascii-Code. This means if you want to send number values they need to be encoded before sending and decoded after receiving. If your sending just number values, this protocol might be the wrong solution for you, but keep in mind that this protocol is very reliable compared to most binary protocols!
Protocoll
byte 0 | command |
byte 1 to x | message |
last byte | CR, LF or CR LF or LF CR |
Implementation for Wiring and Arduino
Open a new tab in your Wiring/Arduino - Sketch, name it modStringSerialProtocol and paste the code found below. Note: Encoding and decoding float values is not yet implemented.
Functions
void Serial_Initialize (int boud) boud = Boud rate. use 9600 void Serial_sendMessage (char cmd, char message) Send a string message through serial. cmd = a char to seperate different commands. Don't use char with ascii 10 and 13 message = string message to send void Serial_sendMessage (char cmd, int message) Send an int number through serial. cmd = a char to seperate different commands. Don't use char with ascii 10 and 13 message = int number to send (-32768 to 32767) void Serial_sendMessage (char cmd, long message) Send an long number through serial. cmd = a char to seperate different commands. Don't use char with ascii 10 and 13 message = long number to send (-2147483648 to 2147483647) void Serial_check () Check if something is coming in. Must be called in LOOP. int Serial_parseInteger (char val) Parse string value to int. (-32768 to 32767) long Serial_parseLong (char val) Parse string value to long. (-2147483648 to 2147483647)
Source
- Source - modStringSerialProtocol You need this.
- Source - Main See how your Main loop could look like (a simple example).
Implementation for Processing
Open a new tab in your Processing - Sketch, name it modStringSerialProtocol and past the code found below. Note: Encoding and decoding float values is not yet implemented.
Functions
SerialProtocolLibrary (PApplet parent, String comPort) Constructor parent = use this when calling comPort = COM Port to connect to SerialProtocolLibrary (PApplet parent, int iPort) { Constructor parent = use this when calling iPort = ID from COM Port to connect to (-1 means last comPort in list will be selected) void send (char cmd, String message) Send an long number through serial. cmd = a char to seperate different commands. Don't use char with ascii 10 and 13 message = long number to send (-2147483648 to 2147483647) void send (char cmd, int message) Send an int number through serial. cmd = a char to seperate different commands. Don't use char with ascii 10 and 13 message = int number to send (-32768 to 32767) int parseInteger (String val) Parse string value to int. (-2147483648 to 2147483647)
Source
- Source - modStringSerialProtocol You need this.
- Source - Main See how your Main loop could look like (a simple example).