Removed readCommand, fixed http ?e login handling
This commit is contained in:
parent
54e33ef79a
commit
ed99a4c916
|
@ -348,9 +348,16 @@ void loop() // Main branch, runs over and ov
|
||||||
client.println("</pre>");
|
client.println("</pre>");
|
||||||
}
|
}
|
||||||
if(readString.indexOf("?e") > 0) {
|
if(readString.indexOf("?e") > 0) {
|
||||||
|
int offset = readString.indexOf("?e");
|
||||||
char pass[5] = {readString[offset+2],readString[offset+3],readString[offset+4],readString[offset+5],'\0'};
|
char pass[5] = {readString[offset+2],readString[offset+3],readString[offset+4],readString[offset+5],'\0'};
|
||||||
|
|
||||||
login(strtoul(pass,NULL,16));
|
login(strtoul(pass,NULL,16));
|
||||||
|
if(privmodeEnabled) {
|
||||||
|
client.println("ok");
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
client.println("fail");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
break;
|
break;
|
||||||
|
@ -372,9 +379,6 @@ void loop() // Main branch, runs over and ov
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
readCommand(); // Check for commands entered at serial console
|
|
||||||
|
|
||||||
|
|
||||||
/* Check if doors are supposed to be locked and lock/unlock them
|
/* Check if doors are supposed to be locked and lock/unlock them
|
||||||
* if needed. Uses global variables that can be set in other functions.
|
* if needed. Uses global variables that can be set in other functions.
|
||||||
*/
|
*/
|
||||||
|
@ -1483,210 +1487,6 @@ void showUser(char* input) {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/* Displays a serial terminal menu system for
|
|
||||||
* user management and other tasks
|
|
||||||
*/
|
|
||||||
|
|
||||||
void readCommand() {
|
|
||||||
|
|
||||||
|
|
||||||
byte stringSize=(sizeof(inString)/sizeof(char));
|
|
||||||
char cmdString[4][9]; // Size of commands (4=number of items to parse, 10 = max length of each)
|
|
||||||
|
|
||||||
|
|
||||||
byte j=0; // Counters
|
|
||||||
byte k=0;
|
|
||||||
char cmd=0;
|
|
||||||
|
|
||||||
|
|
||||||
char ch;
|
|
||||||
|
|
||||||
if (Serial.available()) { // Check if user entered a command this round
|
|
||||||
ch = Serial.read();
|
|
||||||
if( ch == '\r' || inCount >=stringSize-1) { // Check if this is the terminating carriage return
|
|
||||||
inString[inCount] = 0;
|
|
||||||
inCount=0;
|
|
||||||
}
|
|
||||||
else{
|
|
||||||
(inString[inCount++] = ch); }
|
|
||||||
//Serial.print(ch); // Turns echo on or off
|
|
||||||
|
|
||||||
|
|
||||||
if(inCount==0) {
|
|
||||||
for(byte i=0; i<stringSize; i++) {
|
|
||||||
cmdString[j][k] = inString[i];
|
|
||||||
if(k<9) k++;
|
|
||||||
else break;
|
|
||||||
|
|
||||||
if(inString[i] == ' ') // Check for space and if true, terminate string and move to next string.
|
|
||||||
{
|
|
||||||
cmdString[j][k-1]=0;
|
|
||||||
if(j<3)j++;
|
|
||||||
else break;
|
|
||||||
k=0;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
cmd = cmdString[0][0];
|
|
||||||
|
|
||||||
switch(cmd) {
|
|
||||||
|
|
||||||
|
|
||||||
case 'e': { // Enable "privileged" commands at console
|
|
||||||
login(strtoul(cmdString[1],NULL,16));
|
|
||||||
break;
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
//privmodeEnabled=true; //Debugging statement
|
|
||||||
|
|
||||||
|
|
||||||
case 'a': { // List whole user database
|
|
||||||
if(privmodeEnabled==true) {
|
|
||||||
logDate();
|
|
||||||
Serial.println("User dump started.");
|
|
||||||
Serial.print("UserNum:");
|
|
||||||
Serial.print(" ");
|
|
||||||
Serial.print("Usermask:");
|
|
||||||
Serial.print(" ");
|
|
||||||
Serial.println("TagNum:");
|
|
||||||
|
|
||||||
for(int i=0; i<(NUMUSERS); i++){
|
|
||||||
dumpUser(i);
|
|
||||||
//Serial.println(); // commented out due to dumpUser now always printing a line -WB 7-7-2011
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else{logprivFail();}
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
case 's': { // List user
|
|
||||||
showUser(cmdString[1]);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
case 'd': { // Display current time
|
|
||||||
logDate();
|
|
||||||
Serial.println();
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
case '1': { // Deactivate alarm
|
|
||||||
if(privmodeEnabled==true) {
|
|
||||||
armAlarm(0);
|
|
||||||
alarmState(0);
|
|
||||||
chirpAlarm(1);
|
|
||||||
}
|
|
||||||
else{logprivFail();}
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
case '2': { // Activate alarm with delay.
|
|
||||||
chirpAlarm(20); // 200 chirps = ~30 seconds delay
|
|
||||||
armAlarm(1);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
case 'u': {
|
|
||||||
if(privmodeEnabled==true) {
|
|
||||||
unlockall();
|
|
||||||
}
|
|
||||||
else{logprivFail();}
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
case 'l': { // Lock all doors
|
|
||||||
lockall();
|
|
||||||
chirpAlarm(1);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
case '3': { // Train alarm sensors
|
|
||||||
if(privmodeEnabled==true) {
|
|
||||||
trainAlarm();
|
|
||||||
}
|
|
||||||
else{logprivFail();}
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
case '9': { // Show site status
|
|
||||||
PROGMEMprint(statusMessage1);
|
|
||||||
Serial.println(alarmArmed,DEC);
|
|
||||||
PROGMEMprint(statusMessage2);
|
|
||||||
Serial.println(alarmActivated,DEC);
|
|
||||||
PROGMEMprint(statusMessage3);
|
|
||||||
Serial.println(pollAlarm(3),DEC);
|
|
||||||
PROGMEMprint(statusMessage4);
|
|
||||||
Serial.println(pollAlarm(2),DEC);
|
|
||||||
PROGMEMprint(statusMessage5);
|
|
||||||
Serial.println(door1Locked);
|
|
||||||
PROGMEMprint(statusMessage6);
|
|
||||||
Serial.println(door2Locked);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
case 'o': {
|
|
||||||
if(privmodeEnabled==true) {
|
|
||||||
if(atoi(cmdString[1]) == 1){
|
|
||||||
alarmState(0); // Set to door chime only/open doors
|
|
||||||
armAlarm(4);
|
|
||||||
doorUnlock(1); // Open the door specified
|
|
||||||
door1locktimer=millis();
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
if(atoi(cmdString[1]) == 2){
|
|
||||||
alarmState(0); // Set to door chime only/open doors
|
|
||||||
armAlarm(4);
|
|
||||||
doorUnlock(2);
|
|
||||||
door2locktimer=millis();
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
Serial.print("Invalid door number!");
|
|
||||||
}
|
|
||||||
|
|
||||||
else{logprivFail();}
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
case 'r': { // Remove a user
|
|
||||||
if(privmodeEnabled==true) {
|
|
||||||
dumpUser(atoi(cmdString[1]));
|
|
||||||
deleteUser(atoi(cmdString[1]));
|
|
||||||
}
|
|
||||||
else{logprivFail();}
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
case 'm': { // Add/change a user
|
|
||||||
if(privmodeEnabled==true) {
|
|
||||||
dumpUser(atoi(cmdString[1]));
|
|
||||||
addUser(atoi(cmdString[1]), atoi(cmdString[2]), strtoul(cmdString[3],NULL,16));
|
|
||||||
dumpUser(atoi(cmdString[1]));
|
|
||||||
}
|
|
||||||
else{logprivFail();}
|
|
||||||
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
case '?': { // Display help menu
|
|
||||||
PROGMEMprintln(consolehelpMessage1);
|
|
||||||
PROGMEMprintln(consolehelpMessage2);
|
|
||||||
PROGMEMprintln(consolehelpMessage3);
|
|
||||||
PROGMEMprintln(consolehelpMessage4);
|
|
||||||
PROGMEMprintln(consolehelpMessage5);
|
|
||||||
PROGMEMprintln(consolehelpMessage6);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
default:
|
|
||||||
PROGMEMprintln(consoledefaultMessage);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
} // End of 'if' statement for Serial.available
|
|
||||||
} // End of 'if' for string finished
|
|
||||||
} // End of function
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/* Wrapper functions for interrupt attachment
|
/* Wrapper functions for interrupt attachment
|
||||||
Could be cleaned up in library?
|
Could be cleaned up in library?
|
||||||
*/
|
*/
|
||||||
|
|
Loading…
Reference in New Issue
Block a user