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-FINAL1 by
Diff: main.cpp
- Revision:
- 0:c9f607286335
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/main.cpp Thu Feb 25 11:31:10 2016 +0000
@@ -0,0 +1,148 @@
+
+#include "mbed.h"
+#include <stdio.h>
+Serial pc(USBTX,USBRX);
+int valg=1;
+int i,b=0,passforsok=0;
+int antallbokstaver=0;
+char passord[30]="NULL"; // array som vi lagrer det valgte passord
+char pass[30]; // array som vi lagrer passordet vi tester mot valgte passord
+void flushSerialBuffer(void);
+int menyvalg,returnvalg,passriktig;
+Timer t;
+
+int main()
+{
+ while(1) {
+ switch (valg) { //Vi har valgt å bruke switch cases fordi dette gjør det lettere
+ //å gå fram og tilbake avhengig av riktig eller galt passord.
+
+ case 1: // i case 1 er meny valgene man får, man lagrer da valget i en variabel
+ pc.printf("\n 1. Sett alarm paa."); // som man setter i en annen switch case.
+ pc.printf("\n 2. Slaa av alarm. ");
+ pc.printf("\n 3. Skifte passord. ");
+ pc.printf("\n 4. Reset system ");
+ pc.printf("\n 5. Status ");
+ pc.printf("\n skriv inn ditt valg: ");
+ pc.scanf("%d",&menyvalg); // menyvalg er det vi setter som valg i vår andre switch løkke til
+ valg=2;
+
+ break;
+
+ case 2:
+ while(1) {
+ if(!strcmp(passord,"NULL")) { // her tester vi om vi har tidligere satt et valgfritt passord
+ pc.printf("\n Skriv inn nytt passord: "); // hvis ikke, vil vi gå inn her og lage et nytt passord.
+ //fflush(stdout); // dette gjør vi fordi hadde problemer med tera term og ville resette buffer.
+ antallbokstaver=0;
+ flushSerialBuffer(); // bruker denne void for å flushe buffer fordi enter er lagret i bufferen etter menyen.
+ // og da gikk den inn i if passord=\r hver gang og breaket ut.
+ while(1) {
+
+ if(pc.readable()) {
+ passord[antallbokstaver]=pc.getc(); // I dette arrayet lagrer vi det valgte passordet.
+
+ if(passord[antallbokstaver]=='\r') { // \r betyr carrage return og når vi trykker enter vil denne være aktiv
+ passord[antallbokstaver]='\0';
+ break;
+ }
+ antallbokstaver++;
+ }
+ }
+
+ } else {
+ t.start();
+ b=0;
+ printf("\n Skriv inn passord: ");
+ flushSerialBuffer(); // bruker denne for å flushe input data fra tera term. Så vi
+ while( t < 31 && passforsok<3) { // ikke direkte hopper inn i if setningen og breaker.
+
+ if(pc.readable()) {
+
+ pass[b]=pc.getc();
+
+ if(pass[b]=='\r') {
+ pc.printf("\n breaker ut fra pw");
+ valg=3;
+
+ pass[b]='\0';
+ b=0;
+ break;
+
+ }
+ b++;
+
+ }
+
+ }
+ if(t>30) {
+ pc.printf("\n brukte for lang tid, alarm gatt \n");
+ valg=1; // setter switch case tilbake til meny.
+ passriktig=2; // dette returnerer vi for å signalisere at alarmen er gått.
+
+ }
+ }
+ break;
+ }
+ break;
+
+ case 3: //testing av passord
+ pc.printf("\n testing av passord");
+ if( !strcmp(passord, pass)) { // tester to array mot hverandre for å sjekke om disse er lik.
+ pass[0]='0';
+ valg=1;
+ t.stop();
+ t.reset();
+ pc.printf("\n passord er riktig");
+ passriktig=1;
+ passforsok=0;
+ } else {
+ pc.printf("\n passord er feil");
+ valg=2;
+ passforsok++;
+ if(passforsok>3) {
+ casenummer=6;
+ break;
+ }
+ break;
+ }
+ }
+
+ if(passriktig==1) {
+ passriktig=0;
+ menyvalg=casenummer;
+ }
+ }
+}
+
+int tilstand()
+{
+ switch (casenummer) {
+ case 1: // alarm på
+ void systempaa(int aktiv);/* Komplett funksjon for systempa, inkl, loggforing og varsling av krets. */
+
+
+ case 2: // alarm av
+ void logg_system_av(float timer);
+ case 3: // skifting av passord
+ passord[30]="NULL";
+
+ case 4: // reset
+ void nullstilling(int servicebryter);/* Nullstiller hele systemet ved aktivering av servicebryter */
+
+ case 5:
+ void natid_status(void);/* Funksjon for å lese av nåværende status på valgt krets. */
+ case 6: // alarm gått
+ void logg_feilpass();
+ void led_status(void);
+
+ }
+}
+void flushSerialBuffer(void)
+{
+ while (pc.readable()) {
+ (void) pc.getc();
+ }
+ return;
+}
+
