Simon Hawe / D7_MLX_AND_BAT

Dependencies:   X_NUCLEO_IKS01A1 MLX90614 d7a_1x wizzi-utils

Fork of D7A_1x_demo_sensors_OS5 by WizziLab

Committer:
yordan
Date:
Fri Feb 03 14:36:58 2017 +0000
Revision:
8:01f0225408cf
Parent:
7:8de29807f970
Child:
10:3d3dfc12f674
added light sensor

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