Mobile Security System - Revision 1.0

Dependencies:   FXOS8700Q N5110 SDFileSystem SRF02 mbed

Revision:
5:41cb88f47f42
Parent:
4:9cac024c057c
Child:
6:dc1229224d8e
--- a/main.h	Sun Apr 17 14:23:00 2016 +0000
+++ b/main.h	Sun May 01 16:53:56 2016 +0000
@@ -64,8 +64,11 @@
 InterruptIn sw3(SW3);
 Ticker setting_distance;
 Ticker intruder_distance;
-Ticker led;
+Ticker alerts;
+Ticker pin_timeout;
+Ticker setting_screen;
 Timeout transition;
+Timeout buzz;
 DigitalOut r_led(LED_RED);
 DigitalOut g_led(LED_GREEN);
 DigitalOut b_led(LED_BLUE);
@@ -77,11 +80,11 @@
 
 STyp fsm[9] = {
     {0,0,0,0},  // 0 - initialisation (title screen)
-    {2,1,3,3},  // 1 - main menu (Set alarm or set new password)
+    {2,3,1,1},  // 1 - main menu (Set alarm or set new password)
     {2,2,4,1}, // 2 - set alarm (enter password)
     {3,3,1,1}, // 3 - set new password (enter new password)
     {4,4,4,4}, // 4 - setting calibration
-    {7,5,6,6}, // 5 - alarm activated
+    {5,5,6,6}, // 5 - alarm activated
     {6,6,1,5}, // 6 - deactivate without triggering (enter password)
     {7,7,1,8}, // 7 - alarm triggered (enter password)
     {8,8,1,1}   // 8 - display time when alarm was triggered
@@ -106,10 +109,16 @@
 
 int setting_distance_counter;
 int intruder_distance_counter;
+int pin_timeout_counter;
+
+int setting_alarm_counter;
+int seconds_till_timeout;
 
 volatile int g_setting_distance_flag; /*!< Flag in setting_distance_isr */
 volatile int g_intruder_distance_flag; /*!< Flag in intruder_distance_isr */
-volatile int g_led_flag; /*!< Flag in led_isr */
+volatile int g_led_buzzer_flag; /*!< Flag in led_buzzer_isr */
+volatile int g_pin_timeout_flag;
+volatile int g_setting_screen_flag;
 volatile int g_button_0_flag; /*!< Flag in button_0_isr */
 volatile int g_button_1_flag; /*!< Flag in button_1_isr */
 volatile int g_button_c_flag; /*!< Flag in button_c_isr */
@@ -129,6 +138,8 @@
 
 void init_buttons(); /*!< Set-up the three external buttons */
 
+void init_variables();
+
 void setting_distance_isr(); /*!< Interrupt that triggers when setting_distance ticker fires */
 
 void intruder_distance_isr(); /*!< Interrupt that triggers when intruder_distance ticker fires */
@@ -139,7 +150,13 @@
 
 void button_c_isr(); /*!< Interrupt that triggers when button_c is pressed by the user */
 
-void led_isr();
+void led_buzzer_isr();
+
+void pin_timeout_isr();
+
+void setting_screen_isr();
+
+void loading_bar();
 
 void button_0_protocol();
 
@@ -147,11 +164,13 @@
 
 void button_c_protocol();
 
+void timeout_protocol();
+
 void state_0_screen();
 
 void state_1_screen();
 
-void state_2_6_7_screen();
+void state_2_screen();
 
 void state_3_screen();
 
@@ -159,6 +178,10 @@
 
 void state_5_screen();
 
+void state_6_screen();
+
+void state_7_screen();
+
 void state_8_screen();
 
 void screen_selection();
@@ -175,8 +198,16 @@
 
 void screen_progression();
 
+void alarm_setting_buzz();
+
+void lcd_border();
+
+void pin_text_box();
+
 void enter_pin();
 
+void reset_entered_pin();
+
 void check_pin();
 
 void change_pin();