Zi Qi Yap / Mbed OS SPS30_TEST

Dependencies:   SPS30-sensor

Committer:
ziqiyap
Date:
Wed Mar 27 06:08:17 2019 +0000
Revision:
4:91fa1c5ebbe1
working copy with sps30 lib integrated with sensordriver;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
ziqiyap 4:91fa1c5ebbe1 1 /**
ziqiyap 4:91fa1c5ebbe1 2 * @defgroup sensor_control Sensor Control API
ziqiyap 4:91fa1c5ebbe1 3 * @{
ziqiyap 4:91fa1c5ebbe1 4 */
ziqiyap 4:91fa1c5ebbe1 5
ziqiyap 4:91fa1c5ebbe1 6 #include "sensor_driver.h"
ziqiyap 4:91fa1c5ebbe1 7 //#include "mbed-trace/mbed_trace.h"
ziqiyap 4:91fa1c5ebbe1 8 //#include "src/SensorProfile/sensor_profile.h"
ziqiyap 4:91fa1c5ebbe1 9 #include "src/DatastructConversion/conversions.h"
ziqiyap 4:91fa1c5ebbe1 10 //#include "src/TimeEngine/time_engine.h"
ziqiyap 4:91fa1c5ebbe1 11 //#include "src/TraceManager/trace_manager.h"
ziqiyap 4:91fa1c5ebbe1 12 //#include "src/TraceManager/trace_macro.h"
ziqiyap 4:91fa1c5ebbe1 13
ziqiyap 4:91fa1c5ebbe1 14 //#define TRACE_GROUP "SensorDriver"
ziqiyap 4:91fa1c5ebbe1 15
ziqiyap 4:91fa1c5ebbe1 16 /* General Functions for type conversions */
ziqiyap 4:91fa1c5ebbe1 17
ziqiyap 4:91fa1c5ebbe1 18 std::string SensorDriver::ConvertSerialNumber(uint8_t sn_arr[])
ziqiyap 4:91fa1c5ebbe1 19 {
ziqiyap 4:91fa1c5ebbe1 20 std::string sn_str = "";
ziqiyap 4:91fa1c5ebbe1 21 for (int i = 0; i < sizeof(sn_arr); i++)
ziqiyap 4:91fa1c5ebbe1 22 {
ziqiyap 4:91fa1c5ebbe1 23 std::string str = IntToHex(sn_arr[i]);
ziqiyap 4:91fa1c5ebbe1 24 sn_str.append(str);
ziqiyap 4:91fa1c5ebbe1 25 }
ziqiyap 4:91fa1c5ebbe1 26 return sn_str;
ziqiyap 4:91fa1c5ebbe1 27 }
ziqiyap 4:91fa1c5ebbe1 28
ziqiyap 4:91fa1c5ebbe1 29
ziqiyap 4:91fa1c5ebbe1 30 std::string SensorDriver::ConvertDataToString(float data)
ziqiyap 4:91fa1c5ebbe1 31 {
ziqiyap 4:91fa1c5ebbe1 32 char buf[32];
ziqiyap 4:91fa1c5ebbe1 33 std::string data_str = DoubleToChar(buf, data, 2);
ziqiyap 4:91fa1c5ebbe1 34 return data_str;
ziqiyap 4:91fa1c5ebbe1 35 }
ziqiyap 4:91fa1c5ebbe1 36
ziqiyap 4:91fa1c5ebbe1 37
ziqiyap 4:91fa1c5ebbe1 38 int SensorDriver::ValidateData(float data, float data_min, float data_max)
ziqiyap 4:91fa1c5ebbe1 39 {
ziqiyap 4:91fa1c5ebbe1 40 if (data > data_max | data < data_min)
ziqiyap 4:91fa1c5ebbe1 41 {
ziqiyap 4:91fa1c5ebbe1 42 return SENSOR_DATAOOR;
ziqiyap 4:91fa1c5ebbe1 43 }
ziqiyap 4:91fa1c5ebbe1 44 else return SENSOR_DATAOK;
ziqiyap 4:91fa1c5ebbe1 45 }
ziqiyap 4:91fa1c5ebbe1 46
ziqiyap 4:91fa1c5ebbe1 47
ziqiyap 4:91fa1c5ebbe1 48 void SensorDriver::SendSensorEmTrace(int err, std::string trace_string)
ziqiyap 4:91fa1c5ebbe1 49 {
ziqiyap 4:91fa1c5ebbe1 50 if (err == SENSOR_DCN)
ziqiyap 4:91fa1c5ebbe1 51 {
ziqiyap 4:91fa1c5ebbe1 52 // EmTrace(trace_level[WARN], trace_name[P1_DISCONN], RtcTimeNow()); // trace macro too specific to port
ziqiyap 4:91fa1c5ebbe1 53 pc.printf("Warning: Sensor Disconnect\r\n");
ziqiyap 4:91fa1c5ebbe1 54 }
ziqiyap 4:91fa1c5ebbe1 55
ziqiyap 4:91fa1c5ebbe1 56 if (err == SENSOR_CN)
ziqiyap 4:91fa1c5ebbe1 57 {
ziqiyap 4:91fa1c5ebbe1 58 // EmTrace(trace_level[INFO], trace_name[P1_CONN], RtcTimeNow()); // trace macro too specific to port
ziqiyap 4:91fa1c5ebbe1 59 pc.printf("Info: Sensor Connect\r\n");
ziqiyap 4:91fa1c5ebbe1 60 }
ziqiyap 4:91fa1c5ebbe1 61
ziqiyap 4:91fa1c5ebbe1 62 if (err == SENSOR_DATAERR)
ziqiyap 4:91fa1c5ebbe1 63 {
ziqiyap 4:91fa1c5ebbe1 64 // EmTrace(trace_level[WARN], trace_name[SEN_DATA_NOT_RDY], RtcTimeNow()); // trace macro not specific to port
ziqiyap 4:91fa1c5ebbe1 65 pc.printf("Warning: Sensor Data Error\r\n");
ziqiyap 4:91fa1c5ebbe1 66 }
ziqiyap 4:91fa1c5ebbe1 67
ziqiyap 4:91fa1c5ebbe1 68 if (err == SENSOR_DATAOOR)
ziqiyap 4:91fa1c5ebbe1 69 {
ziqiyap 4:91fa1c5ebbe1 70 // EmTrace(trace_level[WARN], trace_string, RtcTimeNow());
ziqiyap 4:91fa1c5ebbe1 71 pc.printf("Warning: Sensor Data Out of Range\r\n");
ziqiyap 4:91fa1c5ebbe1 72 }
ziqiyap 4:91fa1c5ebbe1 73
ziqiyap 4:91fa1c5ebbe1 74 return;
ziqiyap 4:91fa1c5ebbe1 75 }
ziqiyap 4:91fa1c5ebbe1 76
ziqiyap 4:91fa1c5ebbe1 77 /** @}*/