uses pushing box to publish to google spreadsheets with a state machine instead of a while loop

Dependents:   DCS_FINAL_CODE

Fork of GSM_PUSHING_BOX_STATE_MACHINE by DCS_TEAM

Committer:
danilob
Date:
Thu Mar 05 20:06:41 2015 +0000
Revision:
0:41904adca656
Child:
2:8352ad91f2ee
new version

Who changed what in which revision?

UserRevisionLine numberNew 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 #define GSM_TRANSMISSION_COMPLETE ((UART_S1_IDLE_MASK & UART_S1_REG(UART3)) >> UART_S1_IDLE_SHIFT)
danilob 0:41904adca656 7
danilob 0:41904adca656 8 enum gsm_states{GSM_INITIALIZE,
danilob 0:41904adca656 9 GSM_AT_OK, //Make sure communication is stablished betheen fdm and gsm
danilob 0:41904adca656 10 GSM_AT_CSQ, //Check signal strength if strenght lower than 10 keep trying
danilob 0:41904adca656 11 GSM_AT_CREG, //Checking if phone is conected to network
danilob 0:41904adca656 12 GSM_AT_CMGF, //prepare phone to send message by CMGF=1
danilob 0:41904adca656 13 GSM_AT_CMGS, //input phone number by CMGS= "+phonenumber"
danilob 0:41904adca656 14 GSM_AT_SENDSMS, //write message, finish with alt+z
danilob 0:41904adca656 15 GSM_SUCCESS //check if message was send correctly
danilob 0:41904adca656 16 };
danilob 0:41904adca656 17
danilob 0:41904adca656 18
danilob 0:41904adca656 19 //GSM state machine
danilob 0:41904adca656 20 void gsm_tick();
danilob 0:41904adca656 21
danilob 0:41904adca656 22 //Initialize DMA data transfer, and UART3.
danilob 0:41904adca656 23 void gsm_initialize();
danilob 0:41904adca656 24
danilob 0:41904adca656 25 //begin message transmission
danilob 0:41904adca656 26 void start();
danilob 0:41904adca656 27
danilob 0:41904adca656 28 //Brings state machine back to initialize state (notice this is different than initialize function)
danilob 0:41904adca656 29 //this will set flags to initial values and prepare gsm to work anew.
danilob 0:41904adca656 30 void reset();
danilob 0:41904adca656 31
danilob 0:41904adca656 32 //used for debuging purposes, it print all main registers from dma0 and uart3
danilob 0:41904adca656 33 void print_registers();
danilob 0:41904adca656 34
danilob 0:41904adca656 35 #endif