v2 for lunchbox
Dependencies: HTTPClient PWM_Tone_Library PinDetect_KL25Z Queue cc3000_hostdriver_mbedsocket mbed
Fork of kragl by
Revision 4:e1f2918c9770, committed 2015-12-02
- Comitter:
- inezraharjo
- Date:
- Wed Dec 02 19:30:05 2015 +0000
- Parent:
- 3:6641e741733c
- Commit message:
- Reduced delays! for turning on/off alarm by opening box and from app/entering code
Changed in this revision
| main.cpp | Show annotated file Show diff for this revision Revisions of this file |
--- a/main.cpp Wed Dec 02 18:32:02 2015 +0000
+++ b/main.cpp Wed Dec 02 19:30:05 2015 +0000
@@ -58,6 +58,8 @@
DigitalOut warningLED(A4);
DigitalOut correctLED(A5);
+int changedFromOFF = 0;
+int changedFromON = 0;
int code[] = {0, 0, 0, 0};
int passwordcounter = 0;
bool codeEntered = false;
@@ -191,6 +193,10 @@
pc.printf("Reed Open\r\n");
pc.printf("boxOpenLegal: %d\r\n", boxOpenLegal);
reedIsOpen = 1;
+ if (!boxOpenLegal){
+ Buzzer = 1;
+ changedFromOFF = 1;
+ }
}
void reedClosed( void )
@@ -198,6 +204,7 @@
pc.printf("Reed Closed\n");
reedIsOpen = 0;
if (boxOpenLegal==true){
+ changedFromON = 1;
correctLED =0;
for (int j=0; j<8; j++){
warningLED =1;
@@ -231,7 +238,7 @@
// print message to indicate the program has started
pc.printf("CC3000 Lunch Theft\r\n");
wifi.init();
-
+
p1.mode(PullUp);
p2.mode(PullUp);
p3.mode(PullUp);
@@ -265,6 +272,9 @@
wait_ms(1000);
Buzzer = 0;
+ changedFromOFF = 0;
+ changedFromON = 0;
+
clock_t start_t, current_t, total_t;
//int counterforpasswordcheck = 0;
//int i;
@@ -353,6 +363,9 @@
Buzzer = 0;
} else {
boxOpenLegal = false;
+ if (reedIsOpen){
+ Buzzer = 1;
+ }
correctLED = 0;
for (int j=0; j<8; j++){
warningLED =1;
@@ -381,19 +394,38 @@
codeEntered = false;
Buzzer = 0;
+ if (changedFromON){
+ pc.printf("SENDING TO URL\n");
+ sprintf(url, "http://www.charlesding.net/kragl/lunchbox.php?isOpen=NO&alarmOn=OFF&boxLocked=YES");
+
+ int ret = http.get(url, str, 128);
+ pc.printf("Trying to Request %s\r\n", url);
+ int tries = 20;
+ while (tries > 0) {
+ ret = http.get(url, str, 128);
+ if (!ret) {
+ pc.printf("Requested %s\r\n", url);
+ pc.printf("Page fetched successfully - read %d characters\r\n",
+ strlen(str));
+ pc.printf("Result: %s\r\n", str);
+ break;
+ } else {
+ pc.printf("Error - ret = %d - HTTP return code = %d\r\n",
+ ret,
+ http.getHTTPResponseCode());
+ tries--;
+ }
+ }
+ changedFromON = 0;
+ }
+
+
} else if (reedIsOpen && !boxOpenLegal) {
// turn on alarm;
pc.printf("boxOpenLegal: %d\r\n", boxOpenLegal);
pc.printf("reedIsOpen: %d\r\n", reedIsOpen);
pc.printf("ALARM TIME\r\n");
Buzzer = 1;
-
- /*
- for(i=0; i<tones_num; i++) {
- Auto_tunes(Buzzer, tones[i], 4); // Auto performance
- Stop_tunes(Buzzer);
- }
- */
if(wifi.is_connected() == false) {
// try to connect
@@ -409,6 +441,7 @@
}
} else {
// get input url and then return the value
+ if (changedFromOFF){
pc.printf("SENDING TO URL\n");
sprintf(url, "http://www.charlesding.net/kragl/lunchbox.php?isOpen=YES1&alarmOn=ON&boxLocked=NO");
@@ -430,73 +463,20 @@
}
ret = http.get(url, str, 128);
}
+ changedFromOFF = 0;
+ }
}
//wait(0.3);
} else if (!reedIsOpen && boxOpenLegal) {
Buzzer = 0;
- boxOpenLegal = false;
- pc.printf("SENDING TO URL\n");
- sprintf(url, "http://www.charlesding.net/kragl/lunchbox.php?isOpen=NO&alarmOn=OFF&boxLocked=YES");
+ // boxOpenLegal = false;
- int ret = http.get(url, str, 128);
- pc.printf("Trying to Request %s\r\n", url);
- int tries = 20;
- while (tries > 0) {
- ret = http.get(url, str, 128);
- if (!ret) {
- pc.printf("Requested %s\r\n", url);
- pc.printf("Page fetched successfully - read %d characters\r\n",
- strlen(str));
- pc.printf("Result: %s\r\n", str);
- break;
- } else {
- pc.printf("Error - ret = %d - HTTP return code = %d\r\n",
- ret,
- http.getHTTPResponseCode());
- tries--;
- }
- }
+
//wait(0.3);
}
if (!codeEntered && passwordcounter==sizeof(code)/4) {
codeEntered = true;
- /*
- sprintf(url, "http://www.charlesding.net/kragl/pincode_read.php?");
- int ret2 = http.get(url, str, 128);
-
- pc.printf("Trying to Request %s\r\n", url);
- int tries = 20;
- char* s;
- while (tries > 0) {
- pc.printf("try %d\n",tries);
- if (!ret2) {
- pc.printf("Requested %s\r\n", url);
- pc.printf("Page fetched successfully - read %d characters\r\n",
- strlen(str));
- pc.printf("Result: %s\r\n", str);
- s = strtok(str, "\n");
- pc.printf("code string: %s\r\n",s);
- int num;
-
- if (true){
- for (int c=1; c<5; c++){
- char test[] = {s[c]};
- num = atoi(test);
- password[c-1] = num;
- }
- }
- pc.printf("Password in the system: %d%d%d%d", password[0], password[1], password[2], password[3]);
- break;
- } else {
- pc.printf("Error - ret = %d - HTTP return code = %d\r\n",
- ret2,
- http.getHTTPResponseCode());
- }
- tries--;
- ret2 = http.get(url, str, 128);
- }
- //wait(0.3);
- */
+
for (int j=0; j<sizeof(code)/4; j++) {
if (code[j]!=password[j]) {
codeEntered = false;
