I am making a custom library for facilitating communication between two arduino boards across three using 3 DIOs.
This is Board.h
#ifndef Board
#define Board
#include "Arduino.h"
class Board {
public:
int dataPin;
int inputConfirmationPin;
int outputConfirmationPin;
Board(int dataPin_a, int inputConfirmationPin_a, int outputConfirmationPin_a, bool server);
void sendByte(int values[]);
String getByte();
void sendBit(int value);
int getBit();
void sendConfirmation(int value);
int getConfirmation();
};
#endif
This is Board.cpp
#include "Board.h"
#include "Arduino.h"
Board::Board(int dataPin_a, int inputConfirmationPin_a, int outputConfirmationPin_a, bool server) {
dataPin = dataPin_a;
inputConfirmationPin = inputConfirmationPin_a;
outputConfirmationPin = outputConfirmationPin_a;
if(server) {
pinMode(dataPin, OUTPUT);
} else {
pinMode(dataPin,INPUT);
}
pinMode(inputConfirmationPin, INPUT);
pinMode(outputConfirmationPin, OUTPUT);
}
//Must contain 8 elements
void Board::sendByte(int values[]) {
int confirmationValue;
bool firsthalf;
for (int i = 0; i < 8; i++) {
confirmationValue = 1;
firsthalf = true;
while(true){
sendBit(values[i]);
sendConfirmation(confirmationValue);
if(getConfirmation() == 1 && firsthalf) {
confirmationValue = 0;
firsthalf = false;
}
if(getConfirmation() == 0 && !firsthalf) {
break;
}
}
}
}
String Board::getByte() {
String recievedByte = "";
int confirmationValue;
bool firsthalf;
for (int i = 0; i < 8; i++) {
confirmationValue = 0;
firsthalf = true;
while(true){
sendConfirmation(confirmationValue);
if(getConfirmation() == 1 && firsthalf) {
recievedByte = recievedByte + getBit();
firsthalf = false;
confirmationValue = 1;
}
if(getConfirmation() == 0 && !firsthalf) {
break;
}
}
}
return recievedByte;
}
void Board::sendBit(int value) {
if (value == 0) {
digitalWrite(dataPin, LOW);
} else if (value == 1) {
digitalWrite(dataPin, HIGH);
}
}
int Board::getBit() {
if (digitalRead(dataPin) == LOW) {
return 0;
} else if (digitalRead(dataPin) == HIGH) {
return 1;
}
}
void Board::sendConfirmation(int value) {
if (value == 0) {
digitalWrite(outputConfirmationPin, LOW);
} else if (value == 1) {
digitalWrite(outputConfirmationPin, HIGH);
}
}
int Board::getConfirmation() {
if (digitalRead(inputConfirmationPin) == LOW) {
return 0;
} else if (digitalRead(inputConfirmationPin) == HIGH) {
return 1;
}
}
The error I am getting is
C : \Users\csapp2350\Documents\Arduino\libraries\Board / Board.h:19 : error : expected unqualified - id before 'int'
C : \Users\csapp2350\Documents\Arduino\libraries\Board / Board.h:19 : error : expected `)' before 'int'
C:\Users\csapp2350\Documents\Arduino\libraries\Board / Board.h:11 : error : an anonymous struct cannot have function members
C : \Users\csapp2350\Documents\Arduino\libraries\Board / Board.h:26 : error : abstract declarator '<anonymous class>' used as declaration
It is probably a silly syntax mistake please let me know if additional information is required let me know. I am using Arduino version 1.0.6