Последняя версия библиотеки Messenger, включая примеры для Max5 и Processing | Скачать
Messenger - это «инструментарий», который облегчает анализ сообщений в коде ASCII. Messenger буферизует символы, пока не получит возврат каретки (CR). Затем он считает сообщение полным и доступным. Сообщение разбито на множество элементов, как определено разделителем. Разделителем по умолчанию является пробел, но это может быть любой символ, отличный от NULL, LF или CR.
Не используйте «последовательный монитор» среды IDE Arduino для тестирования Messenger, поскольку он не отправляет возврат каретки и, следовательно, никогда не «завершает» отправку сообщения! Messenger предоставляет только методы для входящих сообщений. Внутренние функции Serial.print () прекрасно работают для исходящих сообщений. Весь код программного обеспечения вашего хоста, который вы разработали для SimpleMessageSystem, должен быть совместим с Messenger. Вам просто нужно изменить свой код Arduino.
Messenger(byte separator)
Messenger()
Вы можете создать экземпляр Messenger, указав разделитель сообщений. Если вы не укажете разделитель, будет выбран пробел.
Вы должны сделать вызов process (), чтобы завершить сообщение, прежде чем пытаться прочитать его элементы. Каждый раз, когда вы используете метод чтения, элемент чтения (даже если он имеет неправильный тип) удаляется из завершенного сообщения, и Messenger будет указывать на следующее. Используйте available(), чтобы проверить, есть ли какие-либо элементы, оставленные для чтения.
void copyString(char* target, byte maxSize)
Копирует элемент в виде строки в массив, указанный целевым массивом char. maxSize должен соответствовать размеру целевого массива char. Элемент удаляется из завершенного сообщения.
byte checkString(char* toCheck)
Сравнивает элемент со строкой toCheck.
В загрузке вы найдете примеры для обработки и Max5. Вот пример того, как вы будете использовать Messenger в своем коде Arduino:
This example sets all the values of the digital pins with a list through a callback function #include
Create the callback function void messageReady() { int pin = 0; Loop through all the available elements of the message
while ( message.available() ) { // Set the pin as determined by the message digitalWrite( pin, message.readInt() ); pin=pin+1; }
}
void setup() {
// Initiate Serial Communication Serial.begin(115200); // Attach the callback function to the Messenger message.attach(messageReady);
}
void loop() {
// The following line is the most effective way of using Serial and Messenger's callback while ( Serial.available() ) message.process(Serial.read () );
}