Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Fork of Alarmsystem_log_funksjon_funker_ikke by
Diff: main.cpp
- Revision:
- 14:8e7aaf0cf5d7
- Parent:
- 13:0622c228b67d
- Child:
- 15:272fb4e610dc
--- a/main.cpp Tue Feb 20 07:48:13 2018 +0000
+++ b/main.cpp Tue Feb 20 08:35:16 2018 +0000
@@ -3,6 +3,7 @@
#include <RtosTimer.h>
#include <math.h>
#include "mbed_error.h"
+#include<string>
/////DEFINISJONER/////
#define Inn 4
@@ -27,13 +28,18 @@
int tilstand = 0;
int TilstandSjekk(int, int);
volatile bool running = true;
+string password = ("admin");
+string keyinput;
//volatile int Klokke = 0;
//nt Tid = 0;
/////FUNKSJON DEKLARASJONER/////
void Alarmf();
-Thread thread;
+Thread monitoring;
int Tilstandssjekk();
+int admin_access_granted();
+int sone_monitor();
+int read_keyinput();
//void Alarm();
//Ticker AlarmBlink; // 10Hz blinking for alarmfunksjon på lys og telling
@@ -41,54 +47,26 @@
/////MAIN/////
int main()
{
- while(1) {
- RtosTimer Alarm(Alarmf);
- // AlarmBlink.attach(&Alarm, 1);
- /*if(Servicebryter == 1) {
- Utganger1 = 0;
- Utganger2 = 0;
- }*/
- Soner[0] = _Sone1;
- //Soner[1] = _Sone2;
- //Soner[2] = _Sone3;
- //Soner[3] = _Sone4;
- for(int i=0; i < Inn; i++) {
- //pc.printf("%f\n", Soner[i]);
- if((Soner[i] > 0.75 )&&( Soner[i] < 0.83)) { //Tilstand1, Dør 1 åpen
- //pc.printf("Vi er i Tilstand1\n");
- tilstand = 1;
- TilstandSjekk(i, tilstand);
- }
- if((Soner[i] > 0.55 )&&( Soner[i] < 0.59)) { //Normaldrift
- //pc.printf("Vi er i Normaldrift\n")
- tilstand = 0;
- TilstandSjekk(i, tilstand);
- }
- if((Soner[i] > 0.65 )&&( Soner[i] < 0.69)) { //Tilstand 2, Dør 2 åpen
- //pc.printf("Vi er i tilstand2\n");
- tilstand = 2;
- TilstandSjekk(i, tilstand);
- }
- if(Soner[i] >= 1) { //Begge dører er åpne
- //pc.printf("Vi er i tilstand 3, begge doorer er aapne");
- tilstand = 3;
- TilstandSjekk(i, tilstand);
- }
- //wait(1.5);
- }
- //pc.printf("%f\n", Sone1[]);
- //Tilstandssjekk(Sone1[]);
- //float volt = Sone1[];
- //pc.printf("%f\n", volt);
- //while(sysclock == 1);
- //while(sysclock == 0);
- //Tid++;
- }
-}
+ pc.printf("Write admin access password:\n");
+ pc.scanf("%s",keyinput);
+ if(keyinput == password){
+ monitoring(sone_monitor);
+ admin_access_granted();
+ while(1) {
+ RtosTimer Alarm(Alarmf);
+ read_keyinput();
+
+ }//while-end
+ }//if-end
+}//main-end
+
+
+
/////FUNKSJONER/////
-void Alarmf(void) {
- Driftslys = !Driftslys;
+void Alarmf(void)
+{
+ Driftslys = !Driftslys;
}
int TilstandSjekk(int i, int tilstand)
@@ -109,7 +87,7 @@
if(tilstand == 1) { //Hvis dør 1 er åpen...
//pc.printf("Vi er i funksjonen tilstandssjekk dor 1, med verdi: %d\n", i);
//Alarm();
- Alarm.start(50);
+ Alarm.start(50);
double n = 2; // We want 2^i
double Y = 1;
for(int k=1; k<=i; k++) Y = Y*n;
@@ -121,7 +99,7 @@
if(tilstand == 2) { //Hvis dør 2 er åpen...
//pc.printf("Vi er i funksjonen tilstandssjekk dor 2, med verdi: %d\n", i);
//Alarm();
- Alarm.start(50);
+ Alarm.start(50);
double n = 2; // We want 2^i
double Y = 1;
for(int k=1; k<=i; k++) Y = Y*n;
@@ -133,7 +111,7 @@
if(tilstand == 3) { //Hvis begge dører er åpne
//pc.printf("Vi er i funksjonen tilstandssjekk alle dorer, med verdi: %d \n", i);;
// Alarm();
- Alarm.start(50);
+ Alarm.start(50);
double n = 2; // We want 2^i
double Y = 1;
for(int k=1; k<=i; k++) Y = Y*n;
@@ -145,9 +123,60 @@
}
return 0;
}
-
+sone_monitor()
+{
+ Soner[0] = _Sone1;
+ //Soner[1] = _Sone2;
+ //Soner[2] = _Sone3;
+ //Soner[3] = _Sone4;
+ for(int i=0; i < Inn; i++) {
+ //pc.printf("%f\n", Soner[i]);
+ if((Soner[i] > 0.75 )&&( Soner[i] < 0.83)) { //Tilstand1, Dør 1 åpen
+ //pc.printf("Vi er i Tilstand1\n");
+ tilstand = 1;
+ TilstandSjekk(i, tilstand);
+ }
+ if((Soner[i] > 0.55 )&&( Soner[i] < 0.59)) { //Normaldrift
+ //pc.printf("Vi er i Normaldrift\n")
+ tilstand = 0;
+ TilstandSjekk(i, tilstand);
+ }
+ if((Soner[i] > 0.65 )&&( Soner[i] < 0.69)) { //Tilstand 2, Dør 2 åpen
+ //pc.printf("Vi er i tilstand2\n");
+ tilstand = 2;
+ TilstandSjekk(i, tilstand);
+ }
+ if(Soner[i] >= 1) { //Begge dører er åpne
+ //pc.printf("Vi er i tilstand 3, begge doorer er aapne");
+ tilstand = 3;
+ TilstandSjekk(i, tilstand);
+ }
+ //wait(1.5);
+ }
+ //pc.printf("%f\n", Sone1[]);
+ //Tilstandssjekk(Sone1[]);
+ //float volt = Sone1[];
+ //pc.printf("%f\n", volt);
+ //while(sysclock == 1);
+ //while(sysclock == 0);
+ //Tid++;
+}
+admin_access_granted()
+{
+ pc.printf("Admin access granted\n");//info
+ pc.printf("Following commands are available\n");// liste over funksjoner tilgjenglig.
+ pc.printf("#req_sta_sone(1-4)_door(1-2)\n");// funksjon 1 - request spesific status
+ pc.printf("#req_sta_all\n");// funksjon 1 - request status all
+ pc.printf("#reset_sone(1-4)_door(1-2)\n");// funksjon 3 - request spesific log
+ pc.printf("#reset_all\n");// funksjon 4 - request log all
+}
+read_keyinput()
+{
+ serial.readabl
+ pc.scanf("%s", keyinput);
+
/*void Alarm()
{
Driftslys = !Driftslys;
wait(0.05);
-}*/
\ No newline at end of file
+ }*/
\ No newline at end of file
