read and push

Dependencies:   X_NUCLEO_IKS01A1 MLX90614 d7a_1x wizzi-utils

Fork of D7A_1x_demo_sensors_OS5 by WizziLab

Committer:
shawe
Date:
Mon Feb 27 08:46:36 2017 +0000
Revision:
16:ad7842fcd376
Parent:
10:3d3dfc12f674
Add config for small nucleo;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Jeej 0:7e1fdc4d6e1c 1 #ifndef _FILES_H_
Jeej 0:7e1fdc4d6e1c 2 #define _FILES_H_
Jeej 0:7e1fdc4d6e1c 3
Jeej 0:7e1fdc4d6e1c 4 #include "mbed.h"
Jeej 0:7e1fdc4d6e1c 5 #include "d7a.h"
Jeej 0:7e1fdc4d6e1c 6
Jeej 0:7e1fdc4d6e1c 7 enum {
yordan 8:01f0225408cf 8 // Alarm
yordan 8:01f0225408cf 9 ALARM_FILE_ID = 224,
Jeej 0:7e1fdc4d6e1c 10 SIMUL_FILE_ID,
yordan 8:01f0225408cf 11
yordan 8:01f0225408cf 12 // RFU
yordan 8:01f0225408cf 13 RFU_FILE_ID_226,
yordan 8:01f0225408cf 14 RFU_FILE_ID_227,
yordan 8:01f0225408cf 15 RFU_FILE_ID_228,
yordan 8:01f0225408cf 16 RFU_FILE_ID_229,
yordan 8:01f0225408cf 17
yordan 8:01f0225408cf 18 // New cfg
yordan 8:01f0225408cf 19 LIGHT_CFG_FILE_ID = 230,
shawe 10:3d3dfc12f674 20 VOLT_CFG_FILE_ID,
yordan 8:01f0225408cf 21 RFU_CFG_FILE_ID_232,
yordan 8:01f0225408cf 22 RFU_CFG_FILE_ID_233,
yordan 8:01f0225408cf 23 RFU_CFG_FILE_ID_234,
yordan 8:01f0225408cf 24
yordan 8:01f0225408cf 25 // New value
yordan 8:01f0225408cf 26 LIGHT_VALUE_FILE_ID = 235,
shawe 10:3d3dfc12f674 27 VOLT_VALUE_FILE_ID,
yordan 8:01f0225408cf 28 RFU_VALUE_FILE_ID_237,
yordan 8:01f0225408cf 29 RFU_VALUE_FILE_ID_238,
yordan 8:01f0225408cf 30 RFU_VALUE_FILE_ID_239,
yordan 8:01f0225408cf 31
yordan 8:01f0225408cf 32 // Nucleo-64 default list
yordan 8:01f0225408cf 33 MAG_CFG_FILE_ID = 240,
Jeej 0:7e1fdc4d6e1c 34 ACC_CFG_FILE_ID,
Jeej 0:7e1fdc4d6e1c 35 GYR_CFG_FILE_ID,
yordan 8:01f0225408cf 36 PRE_CFG_FILE_ID, // 243
Jeej 0:7e1fdc4d6e1c 37 HUM_CFG_FILE_ID,
Jeej 0:7e1fdc4d6e1c 38 TEM1_CFG_FILE_ID,
Jeej 0:7e1fdc4d6e1c 39 TEM2_CFG_FILE_ID,
Jeej 0:7e1fdc4d6e1c 40 MAG_VALUE_FILE_ID, // 247
Jeej 0:7e1fdc4d6e1c 41 ACC_VALUE_FILE_ID,
Jeej 0:7e1fdc4d6e1c 42 GYR_VALUE_FILE_ID,
Jeej 0:7e1fdc4d6e1c 43 PRE_VALUE_FILE_ID, // 250
Jeej 0:7e1fdc4d6e1c 44 HUM_VALUE_FILE_ID,
Jeej 0:7e1fdc4d6e1c 45 TEM1_VALUE_FILE_ID,
yordan 8:01f0225408cf 46 TEM2_VALUE_FILE_ID,// 253
Jeej 0:7e1fdc4d6e1c 47 };
Jeej 0:7e1fdc4d6e1c 48
Jeej 0:7e1fdc4d6e1c 49 #define GENERIC_FILE(name,data) TYPEDEF_STRUCT_PACKED{\
Jeej 0:7e1fdc4d6e1c 50 data\
Jeej 0:7e1fdc4d6e1c 51 } name##_t;\
Jeej 0:7e1fdc4d6e1c 52 extern name##_t f_##name;
Jeej 0:7e1fdc4d6e1c 53
Jeej 0:7e1fdc4d6e1c 54 #define GENERIC_FILE_INIT(name,...) name##_t f_##name = {\
Jeej 0:7e1fdc4d6e1c 55 __VA_ARGS__\
Jeej 0:7e1fdc4d6e1c 56 }
Jeej 0:7e1fdc4d6e1c 57
Jeej 0:7e1fdc4d6e1c 58 #define GENERIC_FILE_MAP(fid,name) { (void*)fid, (void*)&f_##name }
Jeej 0:7e1fdc4d6e1c 59
yordan 7:8de29807f970 60 // Types of reporting
yordan 7:8de29807f970 61 typedef enum
yordan 7:8de29807f970 62 {
yordan 7:8de29807f970 63 REPORT_ALWAYS,
yordan 7:8de29807f970 64 REPORT_ON_DIFFERENCE,
yordan 7:8de29807f970 65 REPORT_ON_THRESHOLD,
yordan 7:8de29807f970 66
yordan 7:8de29807f970 67 } report_type_t;
Jeej 0:7e1fdc4d6e1c 68
yordan 7:8de29807f970 69 // Sensor reporting configuration
yordan 7:8de29807f970 70 TYPEDEF_STRUCT_PACKED
yordan 7:8de29807f970 71 {
yordan 7:8de29807f970 72 uint8_t report_type; // Type of report asked
yordan 7:8de29807f970 73 uint32_t period; // Measure period (ms)
yordan 7:8de29807f970 74 uint32_t max_period; // Maximum time between reports (s)
yordan 7:8de29807f970 75 uint32_t max_diff; // Maximum difference allowed between two reported values
yordan 7:8de29807f970 76 int32_t threshold_high; // High threshold value triggering a report
yordan 7:8de29807f970 77 int32_t threshold_low; // Low threshold value triggering a report
yordan 7:8de29807f970 78
yordan 7:8de29807f970 79 } sensor_config_t;
Jeej 0:7e1fdc4d6e1c 80
Jeej 0:7e1fdc4d6e1c 81 // Firmware revision for the Dash7board
Jeej 0:7e1fdc4d6e1c 82 GENERIC_FILE(dev_rev, d7a_revision_t rev;);
Jeej 0:7e1fdc4d6e1c 83 GENERIC_FILE(simul, uint32_t divider;);
Jeej 0:7e1fdc4d6e1c 84 GENERIC_FILE(tem1_cfg, sensor_config_t cfg;);
shawe 10:3d3dfc12f674 85 GENERIC_FILE(volt_cfg, sensor_config_t cfg;);
Jeej 0:7e1fdc4d6e1c 86
Jeej 0:7e1fdc4d6e1c 87 uint32_t fs_write_file(const uint8_t file_id,
Jeej 0:7e1fdc4d6e1c 88 const uint16_t offset,
Jeej 0:7e1fdc4d6e1c 89 const uint16_t size,
Jeej 0:7e1fdc4d6e1c 90 const uint8_t* const content);
Jeej 0:7e1fdc4d6e1c 91
Jeej 0:7e1fdc4d6e1c 92 uint32_t fs_read_file( const uint8_t file_id,
Jeej 0:7e1fdc4d6e1c 93 const uint16_t offset,
Jeej 0:7e1fdc4d6e1c 94 const uint16_t size,
Jeej 0:7e1fdc4d6e1c 95 uint8_t* buf);
Jeej 0:7e1fdc4d6e1c 96
Jeej 0:7e1fdc4d6e1c 97 #endif // _FILE_SYS_H_