SEND

Dependencies:   BMP280 LGLCD2

Fork of 0NicksCoursework_copywithserialtime by Liam Grazier

Committer:
liam_grazier
Date:
Tue Jan 09 11:33:14 2018 +0000
Revision:
10:098c2fa0a1a6
Parent:
9:e27b3f34de24
fin commented

Who changed what in which revision?

UserRevisionLine numberNew contents of line
liam_grazier 10:098c2fa0a1a6 1 /* ELEC351 COURSEWORK 2018
liam_grazier 10:098c2fa0a1a6 2 DESIGNED USING MBED ONLINE COMPILER IMPORTED TO KEIL
liam_grazier 10:098c2fa0a1a6 3 LIAM GRAZIER // DOUG TILLEY // ALEX BARON
liam_grazier 10:098c2fa0a1a6 4 */
liam_grazier 5:9b4844128e09 5 #include "components.hpp"
liam_grazier 5:9b4844128e09 6 #include "mbed.h"
liam_grazier 7:dd303488e55d 7 #include "network.hpp"
liam_grazier 5:9b4844128e09 8 #include "lglcd.h"
liam_grazier 8:582ac4c5a524 9 #include "stx.hpp"
liam_grazier 10:098c2fa0a1a6 10 //voids for ticker attached tasks
liam_grazier 10:098c2fa0a1a6 11 void inter1();
liam_grazier 10:098c2fa0a1a6 12 void inter2();
liam_grazier 10:098c2fa0a1a6 13 void inter3();
liam_grazier 10:098c2fa0a1a6 14 void inter4();
liam_grazier 10:098c2fa0a1a6 15 void inter5();
liam_grazier 10:098c2fa0a1a6 16 //thread initalised with priorities
liam_grazier 7:dd303488e55d 17 Thread samplesThread(osPriorityNormal);
liam_grazier 9:e27b3f34de24 18 Thread sdThread(osPriorityHigh);
liam_grazier 8:582ac4c5a524 19 Thread sdRemoveThread(osPriorityHigh);
liam_grazier 8:582ac4c5a524 20 Thread timebuttonThread(osPriorityNormal);
liam_grazier 8:582ac4c5a524 21 Thread stxThread(osPriorityLow);
liam_grazier 7:dd303488e55d 22 Thread netThread(osPriorityRealtime);
liam_grazier 10:098c2fa0a1a6 23 //interrupt assign
liam_grazier 10:098c2fa0a1a6 24 InterruptIn sdex(USER_BUTTON);
liam_grazier 10:098c2fa0a1a6 25 //ticker assigns
liam_grazier 7:dd303488e55d 26 Ticker samples;
liam_grazier 7:dd303488e55d 27 Ticker remov;
liam_grazier 7:dd303488e55d 28 Ticker storage;
liam_grazier 7:dd303488e55d 29 Ticker netTick;
liam_grazier 8:582ac4c5a524 30 Ticker serielTick;
liam_grazier 10:098c2fa0a1a6 31 //sd card attached signal flag task
liam_grazier 10:098c2fa0a1a6 32 void inter1()
liam_grazier 10:098c2fa0a1a6 33 {
liam_grazier 10:098c2fa0a1a6 34 sdcheck();
liam_grazier 10:098c2fa0a1a6 35 samplesThread.signal_set(SIG_READY);
liam_grazier 7:dd303488e55d 36 }
liam_grazier 10:098c2fa0a1a6 37 //sampling attached signal flag task
liam_grazier 10:098c2fa0a1a6 38 void inter2()
liam_grazier 10:098c2fa0a1a6 39 {
liam_grazier 10:098c2fa0a1a6 40 sdThread.signal_set(SIG_READY2);
liam_grazier 7:dd303488e55d 41 }
liam_grazier 10:098c2fa0a1a6 42 //sd card remove attached signal flag task
liam_grazier 10:098c2fa0a1a6 43 void inter3()
liam_grazier 10:098c2fa0a1a6 44 {
liam_grazier 10:098c2fa0a1a6 45 if(sdex == 1)//checks if remove button *USER BUTTON triggered by interrupt has been flagged to indicated remove
liam_grazier 10:098c2fa0a1a6 46 {
liam_grazier 10:098c2fa0a1a6 47 sdRemoveThread.signal_set(SIG_REMOVE);
liam_grazier 10:098c2fa0a1a6 48 }
liam_grazier 7:dd303488e55d 49 }
liam_grazier 10:098c2fa0a1a6 50 //network attached signal flag task
liam_grazier 10:098c2fa0a1a6 51 void inter4()
liam_grazier 10:098c2fa0a1a6 52 {
liam_grazier 10:098c2fa0a1a6 53 netThread.signal_set(SIG_NET);
liam_grazier 8:582ac4c5a524 54 }
liam_grazier 10:098c2fa0a1a6 55 //setial comms attached signal flag task
liam_grazier 10:098c2fa0a1a6 56 void inter5()
liam_grazier 10:098c2fa0a1a6 57 {
liam_grazier 10:098c2fa0a1a6 58 stxThread.signal_set(SIG_SX);
liam_grazier 10:098c2fa0a1a6 59 }
liam_grazier 10:098c2fa0a1a6 60 int main()
liam_grazier 10:098c2fa0a1a6 61 {
liam_grazier 10:098c2fa0a1a6 62 lglcd mylcd(D7,D6,D5,D4,D3,D2);//setup lcd
liam_grazier 10:098c2fa0a1a6 63 setuptime();//setup time to default
liam_grazier 10:098c2fa0a1a6 64 sdrun(); //init sd
liam_grazier 10:098c2fa0a1a6 65 lcdstart();//run lcd start code
liam_grazier 10:098c2fa0a1a6 66 welcomemsg(); //display welcome msg in the terminal
liam_grazier 10:098c2fa0a1a6 67 sdThread.start(sdwrite);
liam_grazier 10:098c2fa0a1a6 68 storage.attach(&inter2,1); //attached the storage SD ticker to the allocated flag task, this triggers every 1secs
liam_grazier 10:098c2fa0a1a6 69 samplesThread.start(runanalysis);
liam_grazier 10:098c2fa0a1a6 70 samples.attach(&inter1,1); //attached the samples ticker to the allocated flag task, this triggers every 1secs
liam_grazier 10:098c2fa0a1a6 71 sdRemoveThread.start(sdremove);
liam_grazier 10:098c2fa0a1a6 72 remov.attach(&inter3,3);//attached the SD Remove ticker to the allocated flag task, this triggers every 3secs
liam_grazier 10:098c2fa0a1a6 73 netThread.start(networksend);
liam_grazier 10:098c2fa0a1a6 74 netTick.attach(&inter4,0.01);//attached the network ticker to the allocated flag task, this triggers every 0.01secs
liam_grazier 10:098c2fa0a1a6 75 stxThread.start(useseriel);//
liam_grazier 10:098c2fa0a1a6 76 serielTick.attach(&inter5,0.1);//attached the serial ticker to the allocated flag task, this triggers every 0.1secs
liam_grazier 7:dd303488e55d 77 }