I downloaded EDB library from GitHub - jwhiddon/EDB: A re-implementation of the Arduino database library to allow more than 256 records
and I use ARDUINO IDE 1.0.3
have error compile :
In file included from RFID_EEPROM.ino:5:
C:\Users\Admin\Desktop\arduino-1.0.3\libraries\EDB/EDB.h:43: error: expected initializer before '' token
C:\Users\Admin\Desktop\arduino-1.0.3\libraries\EDB/EDB.h:54: error: 'EDB_Rec' has not been declared
C:\Users\Admin\Desktop\arduino-1.0.3\libraries\EDB/EDB.h:56: error: ISO C++ forbids declaration of 'EDB_Rec' with no type
C:\Users\Admin\Desktop\arduino-1.0.3\libraries\EDB/EDB.h:57: error: ISO C++ forbids declaration of 'EDB_Rec' with no type
C:\Users\Admin\Desktop\arduino-1.0.3\libraries\EDB/EDB.h:58: error: 'EDB_Rec' has not been declared
C:\Users\Admin\Desktop\arduino-1.0.3\libraries\EDB/EDB.h:68: error: expected ',' or '...' before '' token
C:\Users\Admin\Desktop\arduino-1.0.3\libraries\EDB/EDB.h:68: error: ISO C++ forbids declaration of 'byte' with no type
C:\Users\Admin\Desktop\arduino-1.0.3\libraries\EDB/EDB.h:69: error: 'byte' has not been declared
C:\Users\Admin\Desktop\arduino-1.0.3\libraries\EDB/EDB.h:72: error: ISO C++ forbids declaration of 'EDB_Rec' with no type
sorry ,this's my code, I want to create table for make database in eeprom .So I import EDB library into my code and compile it for test.
#include <SoftwareSerial.h>
#include <EEPROM.h>
#include <EDB.h>
#define rxPin 2
#define txPin 3
char rfid_data[12];
char rfid_in[12];
int i, a, b, tmp, num;
SoftwareSerial RFID = SoftwareSerial(rxPin, txPin);
struct LogEvent {
int id;
int temperature;
}
logEvent;
void setup()
{
Serial.begin(9600);
RFID.begin(9600);
pinMode(rxPin, INPUT);
pinMode(txPin, OUTPUT);
}
void loop()
{
Serial.println("1 = Register RFID Card");
Serial.println("2 = Remove RFID Card");
Serial.println("3 = Delete EEPROM Database");
Serial.println("4 = List EEPROM Database");
Serial.println("5 = Active Mode");
do
{
delay(200);
} while (Serial.available() <= 0);
Serial.println();
num = Serial.read();
Serial.print("Serial port Value : ");
Serial.println(num);
switch (num)
{
case '1':
RegisterCard();
break;
case '2':
RemoveCard();
break;
case '3':
EEPROM.write(0,0);
Serial.println("Database Erased");
break;
case '4':
ListDatabase();
break;
case '5':
ActiveMode();
break;
case '0':
break;
default:
Serial.println("Unknown Input");
}
Serial.println();
}
void RegisterCard()
{
// Read a card
for (int rs = 0; rs < 13; rs++)
{
rfid_data[rs] = '0';
}
rfid_data[12] = '\0';
digitalWrite(11, LOW);
delay(200);
do
{
delay(200);
} while (RFID.available() <= 0);
digitalWrite(11, HIGH);
delay(200);
Serial.println("Reading Card");
rfid_data[0] = RFID.read();
if (int(rfid_data[12]) <= 12)
{
for (i = 0; i < 12; i++)
{
rfid_data[i] = RFID.read();
}
rfid_data[12] = '\0';
}
RFID.flush();
delay(500);
/*
digitalWrite(11, LOW);
delay(500);
digitalWrite(11, HIGH);
delay(500);
*/
Serial.print("Registering Card: ");
Serial.println(rfid_data);
// Check if it's in the database
a = EEPROM.read(0);
if (a == 0)
{
EEPROM.write(0,1);
for (i = 1; i < 13; i++)
{
EEPROM.write(i,rfid_data[i-1]);
}
Serial.println("Card Registered in Database Successfully");
// REMOVE START
for (i = 0; i < 13; i++)
{
rfid_data[i] = '0';
}
rfid_data[12] = '\0';
// REMOVE END
return;
}
if (a == 100)
{
Serial.println("100 Cards Reached, Register Failed");
return;
}
for (i = 0; i < a; i++)
{
for (b = 1; b < 13; b++)
{
rfid_in[b-1] = EEPROM.read((i*12)+b);
}
rfid_data[12] = '\0';
b = 1;
for (int c = 0; c < 12; c++)
{
if (rfid_data[c] == rfid_in[c])
{
b++;
}
}
if (b == 12)
{
Serial.println("Card Already Exists in Database");
return;
}
}
// Add to database
tmp = 0;
for (int d = (a*12)+1; d < (a*12)+13; d++)
{
EEPROM.write(d,rfid_data[tmp]);
tmp++;
}
EEPROM.write(0,a+1);
Serial.println("Complete");
return;
}
void ListDatabase()
{
a = EEPROM.read(0);
Serial.print("Cards in database: ");
Serial.println(a);
if (a == 0)
{
Serial.println("Database Empty");
return;
}
for (i = 0; i < a; i++)
{
Serial.print("Card ");
Serial.print(i);
Serial.print(": ");
for (b = 1; b < 13; b++)
{
Serial.write(EEPROM.read((i*12)+b));
}
Serial.println();
}
return;
}
void ActiveMode()
{
// Read a card
for (int rs = 0; rs < 13; rs++)
{
rfid_data[rs] = '0';
}
rfid_data[12] = '\0';
digitalWrite(11, LOW);
delay(500);
do
{
delay(200);
} while (RFID.available() <= 0);
digitalWrite(11, HIGH);
delay(500);
Serial.println("Reading Card");
rfid_data[0] = RFID.read();
if (int(rfid_data[12]) <= 12)
{
for (i = 0; i < 12; i++)
{
rfid_data[i] = RFID.read();
}
rfid_data[12] = '\0';
}
Serial.print("Checking Card: ");
Serial.println(rfid_data);
// Check if it's in the database
a = EEPROM.read(0);
if (a == 0)
{
Serial.println("Access Denied!");
RFID.flush();
delay(1000);
digitalWrite(11, LOW);
delay(500);
digitalWrite(11, HIGH);
return;
}
for (i = 0; i < a; i++)
{
for (b = 1; b < 13; b++)
{
rfid_in[b-1] = EEPROM.read((i*12)+b);
}
rfid_data[12] = '\0';
b = 1;
for (int c = 0; c < 12; c++)
{
if (rfid_data[c] == rfid_in[c])
{
b++;
}
}
if (b == 12)
{
Serial.println("Access Granted!");
RFID.flush();
delay(1000);
digitalWrite(11, LOW);
delay(500);
digitalWrite(11, HIGH);
return;
}
}
Serial.println("Access Denied!");
RFID.flush();
delay(1000);
digitalWrite(11, LOW);
delay(500);
digitalWrite(11, HIGH);
return;
}
void RemoveCard()
{
// Read a card
for (int rs = 0; rs < 13; rs++)
{
rfid_data[rs] = '0';
}
rfid_data[12] = '\0';
do
{
delay(200);
} while (RFID.available() <= 0);
digitalWrite(11, HIGH);
delay(500);
Serial.println("Reading Card");
rfid_data[0] = RFID.read();
if (int(rfid_data[12]) <= 12)
{
for (i = 0; i < 12; i++)
{
rfid_data[i] = RFID.read();
}
rfid_data[12] = '\0';
}
RFID.flush();
delay(800);
Serial.print("Removing Card: ");
Serial.println(rfid_data);
// Check if it's in the database
a = EEPROM.read(0);
if (a == 0)
{
Serial.println("Not in Database");
return;
}
for (i = 0; i < a; i++)
{
for (b = 1; b < 13; b++)
{
rfid_in[b-1] = EEPROM.read((i*12)+b);
}
rfid_data[12] = '\0';
b = 1;
for (int c = 0; c < 12; c++)
{
if (rfid_data[c] == rfid_in[c])
{
b++;
}
}
if (b == 12)
{
int rmstrt = ((i*12)+b)-11;
// Last in database?
if ((a*12) == (rmstrt+11))
{
EEPROM.write(0,a-1);
Serial.println("Card Removed Successfully!");
return;
}
for (tmp = rmstrt+12; tmp < (a*12)+1; tmp++)
{
char dta = EEPROM.read(tmp);
delay(100);
EEPROM.write(rmstrt,dta);
rmstrt++;
}
delay(100);
EEPROM.write(0,a-1);
Serial.println("Card Removed Successfully!");
return;
}
}
Serial.println("Card Not in Database");
return;
}
help me, please
thank you so much .