programmering / Mbed 2 deprecated mbed_blinkyrfferfrdfrf

Dependencies:   mbed

Committer:
Adrianmo
Date:
Thu Mar 08 11:37:40 2018 +0000
Revision:
1:499bd5b83b45
Parent:
0:c1d82c87628a
sjekk denne azim;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
datx98 0:c1d82c87628a 1 #include "mbed.h"
datx98 0:c1d82c87628a 2 #include <time.h>
datx98 0:c1d82c87628a 3
Adrianmo 1:499bd5b83b45 4 AnalogIn sloyfe[4] = {p17, p18, p19, p20}; // Sløyfene
Adrianmo 1:499bd5b83b45 5 DigitalOut led[4] = {LED1, LED2, LED3, LED4}; // Led for feil
Adrianmo 1:499bd5b83b45 6 DigitalOut b[8] = {p21, p22, p23, p24, p25, p26, p27, p28}; // Bargraph
datx98 0:c1d82c87628a 7 DigitalIn sb(p16); // Service bryter.
datx98 0:c1d82c87628a 8 Serial pc(USBTX, USBRX); //PC komunikasjon
Adrianmo 1:499bd5b83b45 9 Ticker alarm, system_paa, servic; // Tikkere
datx98 0:c1d82c87628a 10 int blink[4]= {0, 0, 0, 0}; // Global variabel med 4 elementer. Hvert element styrer sin egen led!
datx98 0:c1d82c87628a 11 int amount_faild = 0; // En variabel for å telle antall ganger feil inntastet passord.
Adrianmo 1:499bd5b83b45 12 void alarm_actived(); // Sjekker hva verdien på de analoge inngangene er og og utfører en case.
datx98 0:c1d82c87628a 13 void service(); // Funksjon for resetting av anlegge. Anlegget blir satt i vedlikeholdsmodus med null feil.
datx98 0:c1d82c87628a 14 void alblink(); // Blinke funksjonen.
datx98 0:c1d82c87628a 15 char passord[5] = {'5','5', '5', '5', '5'}; // Passordet.
datx98 0:c1d82c87628a 16 int check_password1(); // Funksjon for å sjekke om inntastet passord er riktig.
Adrianmo 1:499bd5b83b45 17 void bruker(int); // Valg menyen der bruker velger et ønske.
datx98 0:c1d82c87628a 18 void Dato_timer(); //Klokke funskjonen.
datx98 0:c1d82c87628a 19 LocalFileSystem local("local"); // Fillogging
datx98 0:c1d82c87628a 20
datx98 0:c1d82c87628a 21 int main()
datx98 0:c1d82c87628a 22 {
Adrianmo 1:499bd5b83b45 23 set_time(1519919737); //setter tiden til sekunder verdi siden 1970
datx98 0:c1d82c87628a 24 while(1)
datx98 0:c1d82c87628a 25 {
Adrianmo 1:499bd5b83b45 26 pc.printf("Velkommen\n");
Adrianmo 1:499bd5b83b45 27 Dato_timer(); // Viser klokke
Adrianmo 1:499bd5b83b45 28 int x = check_password1(); // sjekker pass er riktig og sender 1 til x om det er det.
Adrianmo 1:499bd5b83b45 29 bruker(x);
datx98 0:c1d82c87628a 30 }
datx98 0:c1d82c87628a 31 }
datx98 0:c1d82c87628a 32
datx98 0:c1d82c87628a 33 void Dato_timer()
datx98 0:c1d82c87628a 34 {
Adrianmo 1:499bd5b83b45 35 time_t seconds = time(NULL); // Returnerer tiden lagret i time_t i sekunder.
Adrianmo 1:499bd5b83b45 36 pc.printf("Mbed klokka er naa: %s", ctime(&seconds)); // Viser hva tiden er, ctime omgjør det til
datx98 0:c1d82c87628a 37 pc.printf("\n\n\n");
Adrianmo 1:499bd5b83b45 38 pc.printf("Hvis det ikke stemmer tast 0 ellers tast noe annet\n", ctime(&seconds));//Kun info.
Adrianmo 1:499bd5b83b45 39 if (pc.getc() == '0') // Sjekk om inntastet tegn er 0.
datx98 0:c1d82c87628a 40 {
Adrianmo 1:499bd5b83b45 41 struct tm t;
datx98 0:c1d82c87628a 42 pc.printf("Tast inn dato og klokkeslett:\n");
datx98 0:c1d82c87628a 43 pc.printf("YYYY MM DD HH MM SS[enter]\n");
Adrianmo 1:499bd5b83b45 44 scanf("%d %d %d %d %d %d", &t.tm_year, &t.tm_mon, &t.tm_mday, &t.tm_hour, &t.tm_min, &t.tm_sec);// bruker ikke denne funksjonen...
datx98 0:c1d82c87628a 45
Adrianmo 1:499bd5b83b45 46 t.tm_year = t.tm_year - 2020;
Adrianmo 1:499bd5b83b45 47 t.tm_mon = t.tm_mon - 0;
Adrianmo 1:499bd5b83b45 48 set_time(mktime(&t));
datx98 0:c1d82c87628a 49
datx98 0:c1d82c87628a 50 }
datx98 0:c1d82c87628a 51
datx98 0:c1d82c87628a 52 }
datx98 0:c1d82c87628a 53
Adrianmo 1:499bd5b83b45 54 void bruker(int riktigpassord) // meny funksjonen.
datx98 0:c1d82c87628a 55 {
Adrianmo 1:499bd5b83b45 56 servic.attach(&service, 5);
Adrianmo 1:499bd5b83b45 57 while(riktigpassord==1)
datx98 0:c1d82c87628a 58 {
Adrianmo 1:499bd5b83b45 59 time_t seconds = time(NULL);
Adrianmo 1:499bd5b83b45 60 pc.printf("For start tast 1:\n\t");// Valg meny.
Adrianmo 1:499bd5b83b45 61 pc.printf("For stopp tast 2:\n\t");
Adrianmo 1:499bd5b83b45 62 pc.printf("For reset tast 3:\n\t");
Adrianmo 1:499bd5b83b45 63 pc.printf("For status tast 4:\n\t");
Adrianmo 1:499bd5b83b45 64 pc.printf("For utlogging tast 5:\n\t");
Adrianmo 1:499bd5b83b45 65 pc.printf("For logg utskrift tast 6:\n\t");
datx98 0:c1d82c87628a 66
datx98 0:c1d82c87628a 67 servic.attach(&service, 5);
Adrianmo 1:499bd5b83b45 68 switch(pc.getc())// tall fra bruker blir til case
datx98 0:c1d82c87628a 69 {
Adrianmo 1:499bd5b83b45 70 case '1':
datx98 0:c1d82c87628a 71 {
Adrianmo 1:499bd5b83b45 72 FILE *fp = fopen("/local/SYSTEMLOG.txt", "a");// File blir sendt til fp
Adrianmo 1:499bd5b83b45 73 fprintf(fp, "\r\n Systemet paa: %s", ctime(&seconds));
Adrianmo 1:499bd5b83b45 74 fclose(fp);
Adrianmo 1:499bd5b83b45 75 pc.printf("System paa. \n\n");//Info til bruker.
Adrianmo 1:499bd5b83b45 76 system_paa.attach(&alarm_actived, 2);// Tikker funksjon for alarm
Adrianmo 1:499bd5b83b45 77 break;
datx98 0:c1d82c87628a 78 }
Adrianmo 1:499bd5b83b45 79 case '2':
datx98 0:c1d82c87628a 80 {
Adrianmo 1:499bd5b83b45 81 FILE *fp = fopen("/local/SYSTEMLOG.txt", "a");
Adrianmo 1:499bd5b83b45 82 fprintf(fp, " Systemet stoppet: %s\r\n", ctime(&seconds));
Adrianmo 1:499bd5b83b45 83 fclose(fp);
datx98 0:c1d82c87628a 84 pc.printf("System stoppet. \n\n");
Adrianmo 1:499bd5b83b45 85 system_paa.detach();
datx98 0:c1d82c87628a 86 for(int m=0; m < 4; m++){ blink[m]=0; led[m]=0;}
Adrianmo 1:499bd5b83b45 87 break;
datx98 0:c1d82c87628a 88 }
Adrianmo 1:499bd5b83b45 89 case '3':
datx98 0:c1d82c87628a 90 {
Adrianmo 1:499bd5b83b45 91 FILE *fp = fopen("/local/SYSTEMLOG.txt", "a");
Adrianmo 1:499bd5b83b45 92 fprintf(fp, "\r\n Systemet resatt: %s", ctime(&seconds));
Adrianmo 1:499bd5b83b45 93 fclose(fp);
datx98 0:c1d82c87628a 94 pc.printf("\n\n System resatt. \n\n");
datx98 0:c1d82c87628a 95 int m=0;
datx98 0:c1d82c87628a 96 while(m < 4)
Adrianmo 1:499bd5b83b45 97 { // variablen < 4 holder seg i løkka
Adrianmo 1:499bd5b83b45 98 blink[m]=0; // hvis service bryter er 1 reset alarm.
Adrianmo 1:499bd5b83b45 99 b[m+m]=b[m+m+1]=0;
Adrianmo 1:499bd5b83b45 100 led[m]=0;
Adrianmo 1:499bd5b83b45 101 m++;
datx98 0:c1d82c87628a 102 }
Adrianmo 1:499bd5b83b45 103 break;
datx98 0:c1d82c87628a 104 }
datx98 0:c1d82c87628a 105 case '4':
datx98 0:c1d82c87628a 106 {
datx98 0:c1d82c87628a 107 pc.printf("\n For status paa hele anlegget tast 1: \n");
datx98 0:c1d82c87628a 108 pc.printf("\n For status paa enkelt sloyfer tast 2: \n\n\t\t");
Adrianmo 1:499bd5b83b45 109 switch(getchar())//Ny switch cas for 4 hvis valgt
datx98 0:c1d82c87628a 110 {
Adrianmo 1:499bd5b83b45 111 case '1':
datx98 0:c1d82c87628a 112 {
datx98 0:c1d82c87628a 113 for(int m=0; m<4; m++)
datx98 0:c1d82c87628a 114 {
Adrianmo 1:499bd5b83b45 115 float a=sloyfe[m];
Adrianmo 1:499bd5b83b45 116 if(a >= 0.30 && a <= 0.55){ pc.printf("\n Sloyfe %d alt ok. \n R1 i sloyfe %d operativ. \n R2 i sloyfe %d operativ \n\n", m+1, m+1, m+1); }
Adrianmo 1:499bd5b83b45 117 else if(a >= 0.58 && a <= 0.62) { pc.printf("\n Brudd i sloyfe %d. \n Brudd i R1 sloyfe %d. \n", m+1, m+1); }
Adrianmo 1:499bd5b83b45 118 else if(a >= 0.64 && a <= 0.80) { pc.printf("\n Brudd i sloyfe %d. \n \n Brudd i R2 sloyfe %d. \n\n", m+1, m+1); }
Adrianmo 1:499bd5b83b45 119 else if(a < 0.25) { pc.printf("\n Brudd i hele sloyfe %d. \n", m+1); }
Adrianmo 1:499bd5b83b45 120 else if(a >=0.88) { pc.printf("\n Brudd i R1 og R2 i sloyfe %d. \n", m+1); }// alt over sender beksjed hvis sant
datx98 0:c1d82c87628a 121 }
Adrianmo 1:499bd5b83b45 122 break;
datx98 0:c1d82c87628a 123 }
Adrianmo 1:499bd5b83b45 124 case '2':
datx98 0:c1d82c87628a 125 {
Adrianmo 1:499bd5b83b45 126 pc.printf("\n For sloyfe 1 tast 1: \n For sloyfe 2 tast 2: \n For sloyfe 3 tast 3: \n For sloyfe 4 tast 4: \n\n\t\t");
datx98 0:c1d82c87628a 127 int x = getchar();
Adrianmo 1:499bd5b83b45 128 if(x<49 || x>52){pc.printf("\n Ugyldig valg! \n"); break;};
Adrianmo 1:499bd5b83b45 129 float a=sloyfe[x-49];//x-49 er pga getchar gir en ASCII verdi som er forskjellig fra ønskelig verdi
Adrianmo 1:499bd5b83b45 130 if(a >= 0.30 && a <= 0.55){ pc.printf("\n R1 operativ. \n R2 operativ \n\n"); }
Adrianmo 1:499bd5b83b45 131 else if(a >= 0.58 && a <= 0.62) { pc.printf("\n Brudd i R1 sloyfe %d. \n", x-48); }
Adrianmo 1:499bd5b83b45 132 else if(a >= 0.64 && a <= 0.80) { pc.printf("\n Brudd i R2 sloyfe %d. \n\n", x-48); }
Adrianmo 1:499bd5b83b45 133 else if(a < 0.25) { pc.printf("\n Brudd i hele sloyfe %d. \n", x-48); }
Adrianmo 1:499bd5b83b45 134 else if(a >=0.88) { pc.printf("\n Brudd i R1 og R2 i sloyfe %d. \n", x-48); }
Adrianmo 1:499bd5b83b45 135 break;
datx98 0:c1d82c87628a 136 }
Adrianmo 1:499bd5b83b45 137 default:
datx98 0:c1d82c87628a 138 {
datx98 0:c1d82c87628a 139 printf("\n Ugyldig valg.\n");
Adrianmo 1:499bd5b83b45 140 break;
datx98 0:c1d82c87628a 141 }
Adrianmo 1:499bd5b83b45 142 } break;
datx98 0:c1d82c87628a 143 }
Adrianmo 1:499bd5b83b45 144 case '5':
datx98 0:c1d82c87628a 145 {
Adrianmo 1:499bd5b83b45 146 FILE *fp = fopen("/local/SYSTEMLOG.txt", "a");
Adrianmo 1:499bd5b83b45 147 fprintf(fp, "\r\n Logget av systemet: %s", ctime(&seconds));
Adrianmo 1:499bd5b83b45 148 fclose(fp);
Adrianmo 1:499bd5b83b45 149 pc.printf("\n\n\n\n\n\n\n\n\t\t\t\t Farvel.\n\n\n\n\n\n\n\n\n");
Adrianmo 1:499bd5b83b45 150 riktigpassord=0;// variabel til 0 for inlogging
Adrianmo 1:499bd5b83b45 151 break;
Adrianmo 1:499bd5b83b45 152 }
Adrianmo 1:499bd5b83b45 153 case '6':
Adrianmo 1:499bd5b83b45 154 {
Adrianmo 1:499bd5b83b45 155 FILE *fp = fopen("/local/SYSTEMLOG.txt", "r");
Adrianmo 1:499bd5b83b45 156 int c;
Adrianmo 1:499bd5b83b45 157 if (fp)
datx98 0:c1d82c87628a 158 {
Adrianmo 1:499bd5b83b45 159 while ((c = getc(fp)) != EOF)
datx98 0:c1d82c87628a 160 {
Adrianmo 1:499bd5b83b45 161 pc.putc(c);
datx98 0:c1d82c87628a 162 }
datx98 0:c1d82c87628a 163 }
Adrianmo 1:499bd5b83b45 164 fclose(fp);
Adrianmo 1:499bd5b83b45 165 break;
datx98 0:c1d82c87628a 166 }
Adrianmo 1:499bd5b83b45 167 default:
datx98 0:c1d82c87628a 168 {
datx98 0:c1d82c87628a 169 printf("\n Ugyldig valg.\n");
Adrianmo 1:499bd5b83b45 170 break;//valgfri break men har den her selvom default overskriver
datx98 0:c1d82c87628a 171 }
datx98 0:c1d82c87628a 172 }
datx98 0:c1d82c87628a 173 }
datx98 0:c1d82c87628a 174 }
datx98 0:c1d82c87628a 175 int check_password1()
datx98 0:c1d82c87628a 176 {
Adrianmo 1:499bd5b83b45 177 time_t seconds = time(NULL); // Henter tid
datx98 0:c1d82c87628a 178 pc.printf("\n Skriv inn passord for adgang til alarmsystemet: ");
Adrianmo 1:499bd5b83b45 179 int riktigpass=0; int n=0; char sjekk[4];
datx98 0:c1d82c87628a 180 while(1)
datx98 0:c1d82c87628a 181 {
Adrianmo 1:499bd5b83b45 182 if(pc.readable() && n < 4)
datx98 0:c1d82c87628a 183 {
datx98 0:c1d82c87628a 184 sjekk[n++] = pc.getc();// Lagre inntastet tegn i sjekk arrayet i element n og inkrementer n med 1.
Adrianmo 1:499bd5b83b45 185 if(n == 4) { break; }
datx98 0:c1d82c87628a 186 }
datx98 0:c1d82c87628a 187 }
Adrianmo 1:499bd5b83b45 188 for(n=0; n<4; n++) { if(sjekk[n]==passord[n]) { riktigpass++; } }
datx98 0:c1d82c87628a 189
Adrianmo 1:499bd5b83b45 190 if(riktigpass == 4)
datx98 0:c1d82c87628a 191 {
Adrianmo 1:499bd5b83b45 192 FILE *fp = fopen("/local/SYSTEMLOG.txt", "a");
Adrianmo 1:499bd5b83b45 193 fprintf(fp, "\r\n Riktig passord inntastet: %s", ctime(&seconds));//beskjed som blir loggført med klokketid.
Adrianmo 1:499bd5b83b45 194 fclose(fp);
datx98 0:c1d82c87628a 195 pc.printf("\n Riktig passord.\n\n");
datx98 0:c1d82c87628a 196 amount_faild=0;
datx98 0:c1d82c87628a 197 return 1;
datx98 0:c1d82c87628a 198 }
datx98 0:c1d82c87628a 199 else
Adrianmo 1:499bd5b83b45 200 { // Dersom passordet er feil kjør dette
datx98 0:c1d82c87628a 201 amount_faild++;
Adrianmo 1:499bd5b83b45 202 FILE *fp = fopen("/local/SYSTEMLOG.txt", "a");
Adrianmo 1:499bd5b83b45 203 fprintf(fp, "\r\n Feil passord inntastet, %d ganger: %s", amount_faild, ctime(&seconds));//beskjed til logg
Adrianmo 1:499bd5b83b45 204 fclose(fp);
datx98 0:c1d82c87628a 205 pc.printf("\n\nFeil Passord, prov igjen!\n\n"); }
datx98 0:c1d82c87628a 206 return 0;
datx98 0:c1d82c87628a 207 }
datx98 0:c1d82c87628a 208
datx98 0:c1d82c87628a 209 void alblink()//Blinke funksjon for sløyfene.
datx98 0:c1d82c87628a 210 {
Adrianmo 1:499bd5b83b45 211 int n;
Adrianmo 1:499bd5b83b45 212 for(n=0; n < 4; n++)
Adrianmo 1:499bd5b83b45 213 {
Adrianmo 1:499bd5b83b45 214 if(blink[n]==1) { led[n] = !led[n]; }
datx98 0:c1d82c87628a 215 }
datx98 0:c1d82c87628a 216 }
datx98 0:c1d82c87628a 217
datx98 0:c1d82c87628a 218 void service()// service bryter funksjon.
datx98 0:c1d82c87628a 219 {
Adrianmo 1:499bd5b83b45 220 time_t seconds = time(NULL);
Adrianmo 1:499bd5b83b45 221 if(sb==1)
Adrianmo 1:499bd5b83b45 222 { // Hvis service bryter på
Adrianmo 1:499bd5b83b45 223 FILE *fp = fopen("/local/SYSTEMLOG.txt", "a");
Adrianmo 1:499bd5b83b45 224 fprintf(fp, "\r\n Service bryter aktivert: %s", ctime(&seconds)); //beksjed til logg
Adrianmo 1:499bd5b83b45 225 fclose(fp);
Adrianmo 1:499bd5b83b45 226 pc.printf("\n\n Vedlikehold paa anlegget. \n\n\n\n");//beskjed om at det er vedlikehold
datx98 0:c1d82c87628a 227 int m=0; //Lokal variabel.
datx98 0:c1d82c87628a 228 while(sb==1)
Adrianmo 1:499bd5b83b45 229 { // hvis servicebryter er inne så er denne i løkke
datx98 0:c1d82c87628a 230 while(m < 2)
Adrianmo 1:499bd5b83b45 231 {
Adrianmo 1:499bd5b83b45 232 blink[m] = 0;
Adrianmo 1:499bd5b83b45 233 b[m+m]=b[m+m+1] = 0;
datx98 0:c1d82c87628a 234 led[m] = 0; // Sett alle led[] til 0.
Adrianmo 1:499bd5b83b45 235 m++;
datx98 0:c1d82c87628a 236 }
datx98 0:c1d82c87628a 237 }
datx98 0:c1d82c87628a 238 system_paa.detach(); // Frakobler system_paa fra ticker.
datx98 0:c1d82c87628a 239 pc.printf("\n\n Tast 1 for igangsetting \n\n");
datx98 0:c1d82c87628a 240 }
datx98 0:c1d82c87628a 241 }
datx98 0:c1d82c87628a 242
datx98 0:c1d82c87628a 243 void alarm_actived()// .
datx98 0:c1d82c87628a 244 {
Adrianmo 1:499bd5b83b45 245 time_t seconds = time(NULL);
Adrianmo 1:499bd5b83b45 246 alarm.attach(&alblink, 0.1); // alblink kjøres 10 ganger i sekundet.
Adrianmo 1:499bd5b83b45 247 int analog_verdi=0;
Adrianmo 1:499bd5b83b45 248 for(int i = 0; i < 4; i++) // Løkke for alle sløyfene for og sjekke analog verdi
datx98 0:c1d82c87628a 249 {
Adrianmo 1:499bd5b83b45 250 float a=sloyfe[i];
Adrianmo 1:499bd5b83b45 251 if(a >= 0.30 && a <= 0.55) { analog_verdi = 1; }// alt ok, sett analog_verdi til 1.
Adrianmo 1:499bd5b83b45 252 else if(a >= 0.58 && a <= 0.62) { analog_verdi = 2; } // R1 brudd gi analog_verdi 2.
Adrianmo 1:499bd5b83b45 253 else if(a >= 0.64 && a <= 0.80) { analog_verdi = 3; }
Adrianmo 1:499bd5b83b45 254 else if(a < 0.25 || a >=0.88) { analog_verdi = 4; }
datx98 0:c1d82c87628a 255
datx98 0:c1d82c87628a 256 switch(analog_verdi)
datx98 0:c1d82c87628a 257 {
datx98 0:c1d82c87628a 258 case 1:
Adrianmo 1:499bd5b83b45 259 {
datx98 0:c1d82c87628a 260
Adrianmo 1:499bd5b83b45 261 if(blink[i]==0 && led[i]==0) // globale arrayet blink[i] og led[i] er av så...
datx98 0:c1d82c87628a 262 {
Adrianmo 1:499bd5b83b45 263 if(i==0) { led[i]=1; } // i=0 sett led[i] på.
Adrianmo 1:499bd5b83b45 264 else if(i==1) { led[i]=1; }// i=1 sett led[i] på.
Adrianmo 1:499bd5b83b45 265 else if(i==2) { led[i]=1; }// i=2 sett led[i] på.
Adrianmo 1:499bd5b83b45 266 else if(i==3) { led[i]=1; }// i=3 sett led[i] på.
datx98 0:c1d82c87628a 267 }
Adrianmo 1:499bd5b83b45 268 break;
datx98 0:c1d82c87628a 269 }
datx98 0:c1d82c87628a 270 case 2:
datx98 0:c1d82c87628a 271 {
Adrianmo 1:499bd5b83b45 272
Adrianmo 1:499bd5b83b45 273 blink[i]=1;
datx98 0:c1d82c87628a 274 if(b[i+i]==0)
datx98 0:c1d82c87628a 275 {
Adrianmo 1:499bd5b83b45 276 FILE *fp = fopen("/local/SYSTEMLOG.txt", "a");
Adrianmo 1:499bd5b83b45 277 fprintf(fp, "\r\n Brudd i R1 i Sloyfe %d: %s", i+1, ctime(&seconds));
Adrianmo 1:499bd5b83b45 278 fclose(fp);
datx98 0:c1d82c87628a 279 b[i+i]=1;// Led på bargraf med element nr i+i blir satt til en for å indikere feil på R1 i denne sløyfen. Partall, altså b0, b2, b4 og b6.
datx98 0:c1d82c87628a 280 }
datx98 0:c1d82c87628a 281 break;// Ferdig med hva som er blitt bedt av den og avlutter case 2 går tilbake til for løkken.
datx98 0:c1d82c87628a 282 }
datx98 0:c1d82c87628a 283 case 3:
datx98 0:c1d82c87628a 284 {
datx98 0:c1d82c87628a 285 // Dersom denne verdien er 3 gå inn her og utfør dette også gå ut av case 3 tilbake til for løkken.
datx98 0:c1d82c87628a 286 blink[i]=1;// Blink[i] får verdien 1 og led[i] begynner å blinke.
datx98 0:c1d82c87628a 287 if(b[i+i+1]==0)
datx98 0:c1d82c87628a 288 {
datx98 0:c1d82c87628a 289 FILE *fp = fopen("/local/SYSTEMLOG.txt", "a");// File blir peket til fp og fp blir åpnet for skriving.
datx98 0:c1d82c87628a 290 fprintf(fp, "\r\n Brudd i R2 i Sloyfe %d: %s", i+1, ctime(&seconds));//Kun en beskjed som blir loggført med klokketid.
datx98 0:c1d82c87628a 291 fclose(fp);//Stenger filen fp.
datx98 0:c1d82c87628a 292 b[i+i+1]=1;// Led på bargraf med element nr i+i+1 blir satt til en for å indikere feil på R2 i denne sløyfen. Oddetall altså b1, b3, b5 og b7.
datx98 0:c1d82c87628a 293 }
datx98 0:c1d82c87628a 294 break;// Ferdig med hva som er blitt bedt av den og avlutter case 3 går tilbake til for løkken.
datx98 0:c1d82c87628a 295 }
datx98 0:c1d82c87628a 296 case 4:
datx98 0:c1d82c87628a 297 {
datx98 0:c1d82c87628a 298 // Dersom denne verdien er 4 gå inn her og utfør dette også gå ut av case 4 tilbake til for løkken.
datx98 0:c1d82c87628a 299 blink[i]=1;// Blink[i] får verdien 1 og led[i] begynner å blinke.
datx98 0:c1d82c87628a 300 if(b[i+i] == 0 || b[i+i+1] == 0)
datx98 0:c1d82c87628a 301 {
datx98 0:c1d82c87628a 302 FILE *fp = fopen("/local/SYSTEMLOG.txt", "a");// File blir peket til fp og fp blir åpnet for skriving.
datx98 0:c1d82c87628a 303 if(a < 0.25){fprintf(fp, "\r\n Brudd i hele Sloyfe %d: %s", i+1, ctime(&seconds));}//Kun en beskjed som blir loggført med klokketid.
datx98 0:c1d82c87628a 304 else if(a >=0.88){fprintf(fp, "\r\n Brudd i R1 og R2 i Sloyfe %d: %s", i+1, ctime(&seconds));}//Kun en beskjed som blir loggført med klokketid.
datx98 0:c1d82c87628a 305 fclose(fp);//Stenger filen fp.
datx98 0:c1d82c87628a 306 b[i+i]=1;// Led på bargraf med element nr i+i blir satt til en for å indikere feil på R1 i denne sløyfen. Partall, altså b0, b2, b4 og b6.
datx98 0:c1d82c87628a 307 b[i+i+1]=1;// Led på bargraf med element nr i+i+1 blir satt til en for å indikere feil på R2 i denne sløyfen. Oddetall altså b1, b3, b5 og b7.
datx98 0:c1d82c87628a 308 }
datx98 0:c1d82c87628a 309 break;// Ferdig med hva som er blitt bedt av den og avlutter case 4 går tilbake til for løkken.
datx98 0:c1d82c87628a 310 }
datx98 0:c1d82c87628a 311 }
datx98 0:c1d82c87628a 312 }
datx98 0:c1d82c87628a 313 }