Hello SurferTim:
The function "ServerComms" does that. The code is below:
int ServerComms( int sid, String bid, int mode, byte srv )
{
// sid = Device ID
// bid = Badge ID (for reading, 0 otherwise)
// mode 0 = Register, 1 = Poll 2 = GetAuth
// srv = Server
char resp; // Server response, should always be one character.
String getrequest; // GET request formatted prior to sending to server.
switch (mode)
{
//register "GET /ardurfid/commander.php?sta=XX&mode=reg"; XX is Station ID
case 0:
getrequest = "GET /ardurfid/commander.php?sta=";
getrequest += stationID;
getrequest += "&mode=reg HTTP/1.0";
break;
//poll "GET /ardurfid/commander.php?sta=XX&mode=poll"; XX is Station ID
case 1:
getrequest = "GET /ardurfid/commander.php?sta=";
getrequest += stationID;
getrequest += "&mode=poll HTTP/1.0";
break;
//getauth "GET /ardurfid/commander.php?sta=XX&mode=auth&bid=YYYYYYYYYYY" XX is Station ID, YYYYYYYY is read card ID.
case 2:
getrequest = "GET /ardurfid/commander.php?sta=";
getrequest += stationID;
getrequest += "&mode=auth&card=";
getrequest += bid;
getrequest +=" HTTP/1.0";
break;
} // END of case statement
Serial.print("Request:");
Serial.println(getrequest);
if (client.connect(server, 80))
{
client.println(getrequest);
client.println();
}
else
{
// Do nothing if we have no connection. Light stays red
// indicating fault.
for (;;)
{
}
}
while(client.connected())
{
while(client.available())
{
char c = client.read();
// Read for API's response started with a #
if ( c == '#' )
{
c = client.read();
if ( c == '1')
{
client.stop();
Serial.println("API says YES");
return 1;
}
else
{
client.stop();
Serial.println("API says NO");
return 0;
}
}
}
}
}