Erick / Mbed 2 deprecated ICE_BLE_TEST

Dependencies:   NaturalTinyShell_ice libmDot-12Sept mbed-rtos mbed

Fork of ICE by Erick

Committer:
jmarkel44
Date:
Mon Sep 26 17:36:30 2016 +0000
Revision:
131:a290a3934132
Parent:
128:534bf29132f8
Child:
132:45821e189dd0
cleanup work

Who changed what in which revision?

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