#include "AFPMaster.h" #define PIN_TX 16 #define CMD_INPUT_MAX 64 char cmd_input[CMD_INPUT_MAX]; int i = 0; int button_state = 0; AFPMaster afp(AFP_BAUD_DEFAULT, PIN_TX); void setup() { afp.begin(); Serial.begin(9600); } void update_input() { int result; char c = Serial.read(); cmd_input[i] = c; if (c == '!') { cmd_input[i] = '\0'; Serial.print("SEND:"); Serial.print(cmd_input); Serial.println("!"); // the input shoult of the form [ID][MSG]! if (cmd_input[0] == '*') { afp.sendBroadcast(cmd_input+1); } else { result = afp.sendRequest(cmd_input[0], cmd_input+1); if (result == AFP_OK) { Serial.print("RECV:"); Serial.print(afp.reply); } else { Serial.println("no reply"); } } i=0; } else { i++; // protect against overflow: drop everyting if (i == CMD_INPUT_MAX) i = 0; } } void loop() { if (Serial.available()) { update_input(); } delay(1); }