uses pushing box to publish to google spreadsheets with a state machine instead of a while loop
Fork of GSM_PUSHING_BOX_STATE_MACHINE by
GSMLibrary.h@2:8352ad91f2ee, 2015-03-05 (annotated)
- Committer:
- danilob
- Date:
- Thu Mar 05 21:24:31 2015 +0000
- Revision:
- 2:8352ad91f2ee
- Parent:
- 0:41904adca656
- Child:
- 7:6c0b6ab3cafe
state machine v1
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
danilob | 0:41904adca656 | 1 | #ifndef GSMLIBRARY_H |
danilob | 0:41904adca656 | 2 | #define GSMLIBRARY_H |
danilob | 0:41904adca656 | 3 | |
danilob | 0:41904adca656 | 4 | #include "mbed.h" |
danilob | 0:41904adca656 | 5 | |
danilob | 0:41904adca656 | 6 | enum gsm_states{GSM_INITIALIZE, |
danilob | 0:41904adca656 | 7 | GSM_AT_OK, //Make sure communication is stablished betheen fdm and gsm |
danilob | 0:41904adca656 | 8 | GSM_AT_CSQ, //Check signal strength if strenght lower than 10 keep trying |
danilob | 0:41904adca656 | 9 | GSM_AT_CREG, //Checking if phone is conected to network |
danilob | 0:41904adca656 | 10 | GSM_AT_CMGF, //prepare phone to send message by CMGF=1 |
danilob | 0:41904adca656 | 11 | GSM_AT_CMGS, //input phone number by CMGS= "+phonenumber" |
danilob | 0:41904adca656 | 12 | GSM_AT_SENDSMS, //write message, finish with alt+z |
danilob | 0:41904adca656 | 13 | GSM_SUCCESS //check if message was send correctly |
danilob | 0:41904adca656 | 14 | }; |
danilob | 0:41904adca656 | 15 | |
danilob | 0:41904adca656 | 16 | |
danilob | 0:41904adca656 | 17 | //GSM state machine |
danilob | 0:41904adca656 | 18 | void gsm_tick(); |
danilob | 0:41904adca656 | 19 | |
danilob | 0:41904adca656 | 20 | //Initialize DMA data transfer, and UART3. |
danilob | 0:41904adca656 | 21 | void gsm_initialize(); |
danilob | 0:41904adca656 | 22 | |
danilob | 0:41904adca656 | 23 | //begin message transmission |
danilob | 0:41904adca656 | 24 | void start(); |
danilob | 0:41904adca656 | 25 | |
danilob | 0:41904adca656 | 26 | //Brings state machine back to initialize state (notice this is different than initialize function) |
danilob | 0:41904adca656 | 27 | //this will set flags to initial values and prepare gsm to work anew. |
danilob | 0:41904adca656 | 28 | void reset(); |
danilob | 0:41904adca656 | 29 | |
danilob | 0:41904adca656 | 30 | //used for debuging purposes, it print all main registers from dma0 and uart3 |
danilob | 0:41904adca656 | 31 | void print_registers(); |
danilob | 0:41904adca656 | 32 | |
danilob | 0:41904adca656 | 33 | #endif |