Updated
Diff: main.h
- Revision:
- 0:e7fbe82c5f6b
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/main.h Sat Jan 05 15:02:12 2019 +0000 @@ -0,0 +1,82 @@ +#ifndef __MAIN_H__ +#define __MAIN_H__ + +#include "mbed.h" +#include <stm32f4xx.h> + +#define BUFFERSIZE 120 + +#define EDGE_FALLEN 0 +#define EDGE_RISEN 1 + +//Signals +#define TAKE_SAMPLE 1 +#define STORE_DATA 2 +#define SIGNAL_SD 3 + +#define TOUT_TIME_DEF 2 +#define TOUT_TIME_SDREAD 5 +#define TOUT_TIME_SDMOUNT 5 + + +//Function prototypes +extern void userswTimeOutHandler(void); +extern void userswRisingEdge(void); +extern void userswFallingEdge(void); + +//Global variables +extern unsigned int newestIndex; +extern unsigned int oldestIndex; +extern FILE* fp; + +extern int userswState; +extern InterruptIn usersw; +extern int32_t Nspaces; +extern int32_t Nsamples; +extern char threadstates; +extern time_t seconds; + +//Shared mutable variables +extern bool sd_init; +extern bool logging; +extern bool sampling; +extern float sample_rate; +extern struct tm* timeData; +extern char cmdBuffer[30]; +extern RawSerial* pc; + +//Thread synchronisation primatives +extern Semaphore spaceAvailable; +extern Semaphore samplesInBuffer; + +extern Mutex bufferLock; +extern Mutex timeLock; + +//Queues +extern EventQueue SDqueue; +extern EventQueue printQueue; +extern EventQueue LCDqueue; +extern EventQueue serialqueue; + +//Threads +extern Thread producer_thread; +extern Thread watchdog_thread; +extern Thread serial_thread; +extern Thread consumer_thread; +extern Thread SDqueue_thread; +extern Thread LCDqueue_thread; +extern Thread network_thread; +extern Thread printf_thread; + +//Timers +extern Ticker sample; + +extern Timeout userswTimeOut; +extern Timeout producer_tout; +extern Timeout consumer_tout; +extern Timeout serial_tout; +extern Timeout SD_tout; +extern Timeout LCD_tout; +extern Timeout network_tout; + +#endif \ No newline at end of file