EZR
Dependencies: CRC16 FreescaleIAP FreescaleWatchdog GGSProtocol LM75B PIMA Parameters PersistentCircularQueue SerialNumberV2COM mbed-dev-watchdog_2016_03_04
Fork of smartRamalKW by
main.cpp@10:7a1d1abb5172, 2015-07-23 (annotated)
- Committer:
- tpadovani
- Date:
- Thu Jul 23 22:46:18 2015 +0000
- Revision:
- 10:7a1d1abb5172
- Parent:
- 9:e501499af4ef
- Child:
- 12:0f549dfba86c
Mem?ria de massa de tens?o e comando para ler o rel?gio atual.
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
tpadovani | 0:999112ad27f0 | 1 | #include "main.h" |
tpadovani | 0:999112ad27f0 | 2 | |
tpadovani | 1:6ac7168763b6 | 3 | static Watchdog wd; |
tpadovani | 1:6ac7168763b6 | 4 | static Ticker tickerWd; |
tpadovani | 5:1bc98277c257 | 5 | SerialNumber sn; |
tpadovani | 10:7a1d1abb5172 | 6 | Parameters param ((char *)&APP_PARAMETERS, sizeof(APP_PARAMETERS)); |
tpadovani | 10:7a1d1abb5172 | 7 | CommandExecutor exec; |
tpadovani | 10:7a1d1abb5172 | 8 | MemoriaMassa mm; |
tpadovani | 0:999112ad27f0 | 9 | |
tpadovani | 0:999112ad27f0 | 10 | int main() |
tpadovani | 0:999112ad27f0 | 11 | { |
tpadovani | 1:6ac7168763b6 | 12 | iniciaWd(); |
tpadovani | 0:999112ad27f0 | 13 | |
tpadovani | 0:999112ad27f0 | 14 | printf("##### %s #####\r\n", version); |
tpadovani | 3:21598044a47f | 15 | printSerialNumber(); |
tpadovani | 1:6ac7168763b6 | 16 | |
tpadovani | 3:21598044a47f | 17 | param.loadParameters(); |
tpadovani | 9:e501499af4ef | 18 | printParameters(); |
tpadovani | 10:7a1d1abb5172 | 19 | |
tpadovani | 10:7a1d1abb5172 | 20 | mm.iniciaLeituras(APP_PARAMETERS.INTERVALO_MM_S, APP_PARAMETERS.MM_SIZE); |
tpadovani | 10:7a1d1abb5172 | 21 | |
tpadovani | 3:21598044a47f | 22 | ggsStream.baud(19200); |
tpadovani | 3:21598044a47f | 23 | exec.carregaEndereco(sn.get()); |
tpadovani | 10:7a1d1abb5172 | 24 | exec.iniciaExecutorComandos(APP_PARAMETERS.INTERVALO_WD_NETWORK_S, APP_PARAMETERS.INTERVALO_SILENCIO_S); |
tpadovani | 9:e501499af4ef | 25 | detectaCargaSemCorte(); |
tpadovani | 10:7a1d1abb5172 | 26 | |
tpadovani | 3:21598044a47f | 27 | while(1){ |
tpadovani | 3:21598044a47f | 28 | exec.trataPacoteGGS(); |
tpadovani | 10:7a1d1abb5172 | 29 | mm.executaLeitura(); |
tpadovani | 3:21598044a47f | 30 | } |
tpadovani | 0:999112ad27f0 | 31 | |
tpadovani | 0:999112ad27f0 | 32 | } |
tpadovani | 0:999112ad27f0 | 33 | |
tpadovani | 1:6ac7168763b6 | 34 | void iniciaWd(){ |
tpadovani | 1:6ac7168763b6 | 35 | wd.Configure(); |
tpadovani | 1:6ac7168763b6 | 36 | tickerWd.attach(&feedWd, WATCHDOG_INTERVAL); |
tpadovani | 1:6ac7168763b6 | 37 | } |
tpadovani | 1:6ac7168763b6 | 38 | |
tpadovani | 1:6ac7168763b6 | 39 | void feedWd(){ |
tpadovani | 1:6ac7168763b6 | 40 | wd.Service(); |
tpadovani | 1:6ac7168763b6 | 41 | } |
tpadovani | 1:6ac7168763b6 | 42 | |
tpadovani | 3:21598044a47f | 43 | void softReset(){ |
tpadovani | 3:21598044a47f | 44 | printf("SoftReset\r\n"); |
tpadovani | 3:21598044a47f | 45 | tickerWd.detach(); |
tpadovani | 3:21598044a47f | 46 | } |
tpadovani | 3:21598044a47f | 47 | |
tpadovani | 3:21598044a47f | 48 | void printSerialNumber(){ |
tpadovani | 3:21598044a47f | 49 | printf("SN: "); |
tpadovani | 3:21598044a47f | 50 | for(int i=0; i < SERIAL_LENGTH; i++){ |
tpadovani | 3:21598044a47f | 51 | printf("%c", sn.get()[i]); |
tpadovani | 3:21598044a47f | 52 | } |
tpadovani | 3:21598044a47f | 53 | printf("\r\n"); |
tpadovani | 3:21598044a47f | 54 | } |
tpadovani | 9:e501499af4ef | 55 | |
tpadovani | 9:e501499af4ef | 56 | void printParameters(){ |
tpadovani | 9:e501499af4ef | 57 | printf("Parameters:"); |
tpadovani | 9:e501499af4ef | 58 | for(int i=0; i < sizeof(APP_PARAMETERS); i++){ |
tpadovani | 10:7a1d1abb5172 | 59 | printf(" %02x", ((char *)&APP_PARAMETERS)[i]); |
tpadovani | 9:e501499af4ef | 60 | } |
tpadovani | 9:e501499af4ef | 61 | printf("\r\n"); |
tpadovani | 9:e501499af4ef | 62 | } |
tpadovani | 9:e501499af4ef | 63 | |
tpadovani | 9:e501499af4ef | 64 | void detectaCargaSemCorte(){ |
tpadovani | 9:e501499af4ef | 65 | bool ch0Status = getEstadoSensor(0); |
tpadovani | 9:e501499af4ef | 66 | bool ch1Status = getEstadoSensor(1); |
tpadovani | 9:e501499af4ef | 67 | |
tpadovani | 9:e501499af4ef | 68 | if(!ch0Status && ch1Status){ // Canal 0 nao esta alimentado e Canal 1 esta: entao a carga certamente e o canal 0 |
tpadovani | 9:e501499af4ef | 69 | if(APP_PARAMETERS.LOAD_CHANNEL != 0){ |
tpadovani | 9:e501499af4ef | 70 | APP_PARAMETERS.LOAD_CHANNEL = 0; |
tpadovani | 9:e501499af4ef | 71 | param.saveParameters(); |
tpadovani | 9:e501499af4ef | 72 | } |
tpadovani | 9:e501499af4ef | 73 | } else if(ch0Status && !ch1Status){ // Canal 1 nao esta alimentado e Canal 0 esta: entao a carga certamente e o canal 1 |
tpadovani | 9:e501499af4ef | 74 | if(APP_PARAMETERS.LOAD_CHANNEL != 1){ |
tpadovani | 9:e501499af4ef | 75 | APP_PARAMETERS.LOAD_CHANNEL = 1; |
tpadovani | 9:e501499af4ef | 76 | param.saveParameters(); |
tpadovani | 9:e501499af4ef | 77 | } |
tpadovani | 9:e501499af4ef | 78 | } |
tpadovani | 9:e501499af4ef | 79 | } |