Erick / Mbed 2 deprecated ICE_BLE_TEST

Dependencies:   NaturalTinyShell_ice libmDot-12Sept mbed-rtos mbed

Fork of ICE by Erick

Committer:
jmarkel44
Date:
Fri Sep 23 20:36:04 2016 +0000
Revision:
128:534bf29132f8
Parent:
126:c85ac6a8e9af
Child:
131:a290a3934132
better logging via the output task;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
jmarkel44 19:9bc8fabeddfa 1 /******************************************************************************
jmarkel44 19:9bc8fabeddfa 2 *
jmarkel44 35:6235ef67faa1 3 * File: TimerCntrol.cpp
jmarkel44 35:6235ef67faa1 4 * Desciption: ICE Timer Control Class implementation
jmarkel44 19:9bc8fabeddfa 5 *
jmarkel44 19:9bc8fabeddfa 6 *****************************************************************************/
jmarkel44 19:9bc8fabeddfa 7 #include "TimerControl.h"
jmarkel44 19:9bc8fabeddfa 8 #include "mDot.h"
jmarkel44 35:6235ef67faa1 9 #include "MbedJSONValue.h"
jmarkel44 35:6235ef67faa1 10 #include <string>
jmarkel44 19:9bc8fabeddfa 11
jmarkel44 19:9bc8fabeddfa 12 extern mDot *GLOBAL_mdot;
jmarkel44 19:9bc8fabeddfa 13
jmarkel44 122:4db48b933115 14
jmarkel44 122:4db48b933115 15 //
jmarkel44 122:4db48b933115 16 // method: load
jmarkel44 122:4db48b933115 17 // description: load the pertinents from the control file
jmarkel44 128:534bf29132f8 18 //
jmarkel44 122:4db48b933115 19 // @param _controlFile
jmarkel44 122:4db48b933115 20 // @return true if loaded; false otherwise
jmarkel44 122:4db48b933115 21 //
jmarkel44 35:6235ef67faa1 22 bool TimerControl::load(string _controlFile)
jmarkel44 122:4db48b933115 23 {
jmarkel44 122:4db48b933115 24 MbedJSONValue json_value; // json parsing element
jmarkel44 122:4db48b933115 25
jmarkel44 19:9bc8fabeddfa 26 // try to open the control file
jmarkel44 122:4db48b933115 27 mDot::mdot_file file = GLOBAL_mdot->openUserFile(_controlFile.c_str(), mDot::FM_RDONLY);
jmarkel44 122:4db48b933115 28 if ( file.fd < 0 ) {
jmarkel44 35:6235ef67faa1 29 return false;
jmarkel44 122:4db48b933115 30 }
jmarkel44 35:6235ef67faa1 31
jmarkel44 35:6235ef67faa1 32 // read the data into a buffer
jmarkel44 35:6235ef67faa1 33 char dataBuf[1024];
jmarkel44 35:6235ef67faa1 34
jmarkel44 35:6235ef67faa1 35 int bytes_read = GLOBAL_mdot->readUserFile(file, (void *)dataBuf, sizeof(dataBuf));
jmarkel44 35:6235ef67faa1 36 if ( bytes_read != sizeof(dataBuf) ) {
jmarkel44 35:6235ef67faa1 37 logError("%s: failed to read %d bytes from %s", __func__, sizeof(dataBuf), controlFile.c_str());
jmarkel44 35:6235ef67faa1 38 return false;
jmarkel44 35:6235ef67faa1 39 }
jmarkel44 122:4db48b933115 40
jmarkel44 122:4db48b933115 41 // close the file
jmarkel44 35:6235ef67faa1 42 GLOBAL_mdot->closeUserFile(file);
jmarkel44 35:6235ef67faa1 43
jmarkel44 35:6235ef67faa1 44 parse(json_value, dataBuf);
jmarkel44 35:6235ef67faa1 45
jmarkel44 122:4db48b933115 46 controlFile = _controlFile;
jmarkel44 128:534bf29132f8 47 id = json_value ["id"].get<string>();
jmarkel44 122:4db48b933115 48 priority = atoi(json_value["priority"].get<string>().c_str());
jmarkel44 122:4db48b933115 49 dow = atoi(json_value["dow"].get<string>().c_str());
jmarkel44 122:4db48b933115 50 startw = atoi(json_value["startw"].get<string>().c_str());
jmarkel44 128:534bf29132f8 51 output = json_value ["output"].get<string>();
jmarkel44 122:4db48b933115 52 startHour = atoi(json_value["startHour"].get<string>().c_str());
jmarkel44 122:4db48b933115 53 startMinute = atoi(json_value["startMinute"].get<string>().c_str());
jmarkel44 122:4db48b933115 54 duration = atoi(json_value["duration"].get<string>().c_str());
jmarkel44 122:4db48b933115 55
jmarkel44 122:4db48b933115 56 return true;
jmarkel44 122:4db48b933115 57 }
jmarkel44 122:4db48b933115 58
jmarkel44 126:c85ac6a8e9af 59 void TimerControl::start(void)
jmarkel44 126:c85ac6a8e9af 60 {
jmarkel44 128:534bf29132f8 61 currentState = STATE_OFF;
jmarkel44 128:534bf29132f8 62 }
jmarkel44 128:534bf29132f8 63
jmarkel44 128:534bf29132f8 64 bool TimerControl::feedCheck(void)
jmarkel44 128:534bf29132f8 65 {
jmarkel44 128:534bf29132f8 66 return false;
jmarkel44 126:c85ac6a8e9af 67 }
jmarkel44 126:c85ac6a8e9af 68
jmarkel44 126:c85ac6a8e9af 69 void TimerControl::update(void)
jmarkel44 126:c85ac6a8e9af 70 {
jmarkel44 128:534bf29132f8 71 switch ( this->currentState ) {
jmarkel44 128:534bf29132f8 72 case STATE_OFF:
jmarkel44 128:534bf29132f8 73 if ( this->feedCheck() ) {
jmarkel44 128:534bf29132f8 74 currentState = STATE_RUNNING;
jmarkel44 128:534bf29132f8 75 }
jmarkel44 128:534bf29132f8 76 break;
jmarkel44 128:534bf29132f8 77 case STATE_RUNNING:
jmarkel44 128:534bf29132f8 78 if ( !this->feedCheck() ) {
jmarkel44 128:534bf29132f8 79 currentState = STATE_OFF;
jmarkel44 128:534bf29132f8 80 }
jmarkel44 128:534bf29132f8 81 break;
jmarkel44 128:534bf29132f8 82 case STATE_DISABLED:
jmarkel44 128:534bf29132f8 83 // not implelmented
jmarkel44 128:534bf29132f8 84 default:
jmarkel44 128:534bf29132f8 85 break;
jmarkel44 128:534bf29132f8 86 }
jmarkel44 128:534bf29132f8 87 #if 0
jmarkel44 128:534bf29132f8 88 time_t rawtime;
jmarkel44 128:534bf29132f8 89 struct tm *clock;
jmarkel44 128:534bf29132f8 90
jmarkel44 128:534bf29132f8 91 time( &rawtime );
jmarkel44 128:534bf29132f8 92
jmarkel44 128:534bf29132f8 93 clock = localtime( &rawtime );
jmarkel44 128:534bf29132f8 94 printf("%d %d %d\n", clock->tm_year+1900, clock->tm_mon, clock->tm_mday);
jmarkel44 128:534bf29132f8 95 #endif
jmarkel44 126:c85ac6a8e9af 96 }
jmarkel44 126:c85ac6a8e9af 97
jmarkel44 122:4db48b933115 98 //
jmarkel44 122:4db48b933115 99 // methid: display
jmarkel44 122:4db48b933115 100 // description: display the elements of this timer control object
jmarkel44 122:4db48b933115 101 //
jmarkel44 122:4db48b933115 102 // @param none
jmarkel44 128:534bf29132f8 103 // @return
jmarkel44 122:4db48b933115 104 void TimerControl::display(void)
jmarkel44 122:4db48b933115 105 {
jmarkel44 128:534bf29132f8 106 char daysOfWeek[32];
jmarkel44 128:534bf29132f8 107 memset(daysOfWeek, 0, sizeof(daysOfWeek));
jmarkel44 128:534bf29132f8 108 string mapper[] = { "OFF",
jmarkel44 128:534bf29132f8 109 "RUNNING",
jmarkel44 128:534bf29132f8 110 "DISABLED"
jmarkel44 128:534bf29132f8 111 };
jmarkel44 128:534bf29132f8 112
jmarkel44 128:534bf29132f8 113 sprintf(daysOfWeek, "%s %s %s %s %s %s %s",
jmarkel44 128:534bf29132f8 114 (dow & DAY_SUNDAY_MASK) ? "Su" : " ",
jmarkel44 128:534bf29132f8 115 (dow & DAY_MONDAY_MASK) ? "M" : " ",
jmarkel44 128:534bf29132f8 116 (dow & DAY_TUESDAY_MASK) ? "Tu" : " ",
jmarkel44 128:534bf29132f8 117 (dow & DAY_WEDNESDAY_MASK) ? "W" : " ",
jmarkel44 128:534bf29132f8 118 (dow & DAY_THURSDAY_MASK) ? "Th" : " ",
jmarkel44 128:534bf29132f8 119 (dow & DAY_FRIDAY_MASK) ? "F" : " ",
jmarkel44 128:534bf29132f8 120 (dow & DAY_SATURDAY_MASK) ? "Sa" : " ");
jmarkel44 128:534bf29132f8 121
jmarkel44 122:4db48b933115 122 printf("\r controlFile : %s \n", controlFile.c_str());
jmarkel44 122:4db48b933115 123 printf("\r id : %s \n", id.c_str());
jmarkel44 122:4db48b933115 124 printf("\r priority : %d \n", priority);
jmarkel44 122:4db48b933115 125 printf("\r dow : %s \n", daysOfWeek);
jmarkel44 122:4db48b933115 126 printf("\r startw : %u \n", startw);
jmarkel44 122:4db48b933115 127 printf("\r output : %s \n", output.c_str());
jmarkel44 122:4db48b933115 128 printf("\r starting hour : %u \n", startHour);
jmarkel44 122:4db48b933115 129 printf("\r starting minute : %u \n", startMinute);
jmarkel44 128:534bf29132f8 130 printf("\r duration : %u \n", duration);
jmarkel44 128:534bf29132f8 131 printf("\r\n");
jmarkel44 128:534bf29132f8 132 printf("\r current state: %s \n", mapper[currentState].c_str());
jmarkel44 122:4db48b933115 133 printf("\r\n");
jmarkel44 35:6235ef67faa1 134 }