Orefatoi
/
afero_poc15_171201
POC1.5 prototype 2 x color sensor 2 x LM75B 3 x AnalogIn 1 x accel
Diff: edge_sensor/edge_temp.cpp
- Revision:
- 0:f0de320e23ac
- Child:
- 8:5590f55bdf41
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/edge_sensor/edge_temp.cpp Fri Dec 01 06:16:31 2017 +0000 @@ -0,0 +1,91 @@ +#include "mbed.h" +#include "LM75B.h" +#include "edge_sensor.h" +#include "edge_temp.h" + +float *current_temp = 0 ; + +edge_temp::edge_temp(LM75B *temp1, SMTC502AT *temp2, SMTC502AT *temp3, LM75B *temp4) +{ + _temp1 = temp1 ; + _temp2 = temp2 ; + _temp3 = temp3 ; + _temp4 = temp4 ; + _ftemp[0] = _ftemp[1] = _ftemp[2] = _ftemp[3] = 0.0 ; + _interval = 30 ; + current_temp = &_ftemp[1] ; /* use before for current temp */ +} + +edge_temp::~edge_temp(void) +{ + if (_temp1) { + delete _temp1 ; + } + if (_temp2) { + delete _temp2 ; + } + if (_temp3) { + delete _temp3 ; + } + if (_temp4) { + delete _temp4 ; + } +} + +void edge_temp::reset(void) +{ +} + +void edge_temp::prepare(void) +{ +} + +void edge_temp::sample(void) +{ + if (_temp1) { + _temp1->getTemp(&_ftemp[0]) ; + } + if (_temp2) { + _ftemp[1] = _temp2->getTemp() ; + } + if (_temp3) { + _ftemp[2] = _temp3->getTemp() ; + } + if (_temp4) { + _temp4->getTemp(&_ftemp[3]) ; + } + _sampled_time = edge_time ; +} + +int edge_temp::deliver(void) +{ + int result ; + print_time() ; + printf(" temp: ") ; + if (_temp1) { + printf("LM75B1 = %.2f ", _ftemp[0]) ; + } + if (_temp2) { + printf("before = %.2f ", _ftemp[1]) ; + } + if (_temp3) { + printf("after = %.2f ", _ftemp[2]) ; + } + if (_temp4) { + printf("LM75B2 = %.2f ", _ftemp[3]) ; + } + printf("\n") ; + sprintf(_str_buf, + "{\"DEVICE\":\"TEMP04\",\"VAL_1\":\"%.1f\",\"VAL_2\":\"%.1f\",\"VAL_3\":\"%.1f\",\"S\":\"%06d\",\"E\":\"%d\"}", + _ftemp[0], _ftemp[1], _ftemp[2], time2seq(_sampled_time), _error_count) ; + result = afero->setAttribute(1, _str_buf) ; + return( result == afSUCCESS ) ; +} + +void edge_temp::send_config(void) +{ +} + +void edge_temp::recv_config(void) +{ +}