Erick / Mbed 2 deprecated ICE_BLE_TEST

Dependencies:   NaturalTinyShell_ice libmDot-12Sept mbed-rtos mbed

Fork of ICE by Erick

Committer:
jmarkel44
Date:
Thu Sep 08 20:12:04 2016 +0000
Revision:
28:c410a61238bb
Parent:
20:653923c2f37a
Child:
30:738359dfdab1
implement the load function; ;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
jmarkel44 14:cc916fa8dd11 1 /******************************************************************************
jmarkel44 14:cc916fa8dd11 2 *
jmarkel44 19:9bc8fabeddfa 3 * File: SetpointControl.cpp
jmarkel44 20:653923c2f37a 4 * Desciption: ICE Setpoint Control Class implementation
jmarkel44 14:cc916fa8dd11 5 *
jmarkel44 14:cc916fa8dd11 6 *****************************************************************************/
jmarkel44 13:c80c283f9db2 7 #include "SetpointControl.h"
jmarkel44 14:cc916fa8dd11 8 #include "mDot.h"
jmarkel44 20:653923c2f37a 9 #include "MbedJSONValue.h"
jmarkel44 28:c410a61238bb 10 #include <vector>
jmarkel44 28:c410a61238bb 11 #include <cstdlib>
jmarkel44 28:c410a61238bb 12 #include <string>
jmarkel44 13:c80c283f9db2 13
jmarkel44 14:cc916fa8dd11 14 extern mDot *GLOBAL_mdot;
jmarkel44 14:cc916fa8dd11 15
jmarkel44 28:c410a61238bb 16 bool SetpointControl::load(string _controlFile)
jmarkel44 20:653923c2f37a 17 {
jmarkel44 28:c410a61238bb 18 controlFile = _controlFile;
jmarkel44 20:653923c2f37a 19
jmarkel44 19:9bc8fabeddfa 20 // try to open the control file
jmarkel44 14:cc916fa8dd11 21 mDot::mdot_file file = GLOBAL_mdot->openUserFile(controlFile.c_str(), mDot::FM_RDONLY);
jmarkel44 28:c410a61238bb 22 if ( file.fd < 0 )
jmarkel44 28:c410a61238bb 23 return false;
jmarkel44 20:653923c2f37a 24
jmarkel44 20:653923c2f37a 25 // read the data into a buffer
jmarkel44 28:c410a61238bb 26 char dataBuf[1024];
jmarkel44 28:c410a61238bb 27
jmarkel44 28:c410a61238bb 28 int bytes_read = GLOBAL_mdot->readUserFile(file, (void *)dataBuf, sizeof(dataBuf));
jmarkel44 28:c410a61238bb 29 if ( bytes_read != sizeof(dataBuf) ) {
jmarkel44 28:c410a61238bb 30 logError("%s: failed to read %d bytes from %s", __func__, sizeof(dataBuf), controlFile.c_str());
jmarkel44 28:c410a61238bb 31 return false;
jmarkel44 28:c410a61238bb 32 }
jmarkel44 28:c410a61238bb 33
jmarkel44 28:c410a61238bb 34 // close the file
jmarkel44 28:c410a61238bb 35 GLOBAL_mdot->closeUserFile(file);
jmarkel44 28:c410a61238bb 36
jmarkel44 28:c410a61238bb 37 parse(json_value, dataBuf);
jmarkel44 20:653923c2f37a 38
jmarkel44 28:c410a61238bb 39 // "spcontrol": {
jmarkel44 28:c410a61238bb 40 // "id": "SP",
jmarkel44 28:c410a61238bb 41 // "name": "TRASAR 3DTS85",
jmarkel44 28:c410a61238bb 42 // "priority":"800",
jmarkel44 28:c410a61238bb 43 // "input":"i_tra1"
jmarkel44 28:c410a61238bb 44 // "output":"o_r5",
jmarkel44 28:c410a61238bb 45 // "prodfact":"100",
jmarkel44 28:c410a61238bb 46 // "halert":"115",
jmarkel44 28:c410a61238bb 47 // "lalert":"85",
jmarkel44 28:c410a61238bb 48 // "hfs":"130",
jmarkel44 28:c410a61238bb 49 // "lfs":"70",
jmarkel44 28:c410a61238bb 50 // "tol":"5",
jmarkel44 28:c410a61238bb 51
jmarkel44 28:c410a61238bb 52 // parse the json data
jmarkel44 28:c410a61238bb 53 id = json_value["id"].get<string>();
jmarkel44 28:c410a61238bb 54 name = json_value["name"].get<string>();
jmarkel44 28:c410a61238bb 55 priority = atoi(json_value["priority"].get<string>().c_str());
jmarkel44 28:c410a61238bb 56 input = json_value["input"].get<string>();
jmarkel44 28:c410a61238bb 57 output = json_value["output"].get<string>();
jmarkel44 28:c410a61238bb 58 productFactor = atof(json_value["prodfact"].get<string>().c_str());
jmarkel44 28:c410a61238bb 59 highAlert = atof(json_value["halert"].get<string>().c_str());
jmarkel44 28:c410a61238bb 60 lowAlert = atof(json_value["lalert"].get<string>().c_str());
jmarkel44 28:c410a61238bb 61 highFailsafe = atof(json_value["hfs"].get<string>().c_str());
jmarkel44 28:c410a61238bb 62 lowFailsafe = atof(json_value["lfs"].get<string>().c_str());
jmarkel44 28:c410a61238bb 63 tol = atof(json_value["tol"].get<string>().c_str());
jmarkel44 20:653923c2f37a 64
jmarkel44 19:9bc8fabeddfa 65 return true;
jmarkel44 19:9bc8fabeddfa 66 }
jmarkel44 19:9bc8fabeddfa 67