Complete sensor demo.

Dependencies:   modem_ref_helper CRC X_NUCLEO_IKS01A1 DebouncedInterrupt

Committer:
marin_wizzi
Date:
Fri Oct 29 12:55:52 2021 +0000
Revision:
18:51b15d8bf2fe
Parent:
0:87c57e1b1e1c
Compatible with 6.2 modem version

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Jeej 0:87c57e1b1e1c 1 #ifndef _FILES_H_
Jeej 0:87c57e1b1e1c 2 #define _FILES_H_
Jeej 0:87c57e1b1e1c 3
Jeej 0:87c57e1b1e1c 4 #include "mbed.h"
Jeej 0:87c57e1b1e1c 5 #include "revision.h"
Jeej 0:87c57e1b1e1c 6 #include "alp_spec.h"
Jeej 0:87c57e1b1e1c 7 #include "alp_helpers.h"
Jeej 0:87c57e1b1e1c 8 #include "modem_ref.h"
Jeej 0:87c57e1b1e1c 9
marin_wizzi 18:51b15d8bf2fe 10 TYPEDEF_STRUCT_PACKED {
marin_wizzi 18:51b15d8bf2fe 11 uint8_t fid;
marin_wizzi 18:51b15d8bf2fe 12 uint32_t offset;
marin_wizzi 18:51b15d8bf2fe 13 uint32_t length;
marin_wizzi 18:51b15d8bf2fe 14 } touch_t;
marin_wizzi 18:51b15d8bf2fe 15
marin_wizzi 18:51b15d8bf2fe 16 extern Queue<touch_t, 8> g_file_modified;
marin_wizzi 18:51b15d8bf2fe 17
Jeej 0:87c57e1b1e1c 18 // Types of reporting
Jeej 0:87c57e1b1e1c 19 typedef enum
Jeej 0:87c57e1b1e1c 20 {
Jeej 0:87c57e1b1e1c 21 REPORT_ALWAYS,
Jeej 0:87c57e1b1e1c 22 REPORT_ON_DIFFERENCE,
Jeej 0:87c57e1b1e1c 23 REPORT_ON_THRESHOLD,
Jeej 0:87c57e1b1e1c 24 } report_type_t;
Jeej 0:87c57e1b1e1c 25
Jeej 0:87c57e1b1e1c 26 // Sensor reporting configuration
Jeej 0:87c57e1b1e1c 27 TYPEDEF_STRUCT_PACKED
Jeej 0:87c57e1b1e1c 28 {
Jeej 0:87c57e1b1e1c 29 uint8_t report_type; // Type of report asked
Jeej 0:87c57e1b1e1c 30 uint32_t read_period; // Measure period (ms)
Jeej 0:87c57e1b1e1c 31 uint32_t max_period; // Maximum time between reports (s)
Jeej 0:87c57e1b1e1c 32 uint32_t max_diff; // Maximum difference allowed between two reported values
Jeej 0:87c57e1b1e1c 33 int32_t threshold_high; // High threshold value triggering a report
Jeej 0:87c57e1b1e1c 34 int32_t threshold_low; // Low threshold value triggering a report
Jeej 0:87c57e1b1e1c 35 } sensor_config_t;
Jeej 0:87c57e1b1e1c 36
Jeej 0:87c57e1b1e1c 37 #define FID_HOST_REV 65
Jeej 0:87c57e1b1e1c 38 #define SIZE_HOST_REV sizeof(revision_t)
Jeej 0:87c57e1b1e1c 39 extern alp_file_header_t h_rev;
Jeej 0:87c57e1b1e1c 40 extern revision_t f_rev;
Jeej 0:87c57e1b1e1c 41
Jeej 0:87c57e1b1e1c 42 #define FID_ALARM 131
Jeej 0:87c57e1b1e1c 43 #define SIZE_ALARM sizeof(uint8_t)
Jeej 0:87c57e1b1e1c 44 extern alp_file_header_t h_alarm;
Jeej 0:87c57e1b1e1c 45 extern uint8_t f_alarm;
Jeej 0:87c57e1b1e1c 46
Jeej 0:87c57e1b1e1c 47 #define FILE_DECLARE_SENSOR_CONFIG(name) extern const alp_file_header_t h_sensor_config_##name;\
Jeej 0:87c57e1b1e1c 48 extern sensor_config_t f_sensor_config_##name
Jeej 0:87c57e1b1e1c 49
marin_wizzi 18:51b15d8bf2fe 50 #define FILE_DECLARE_SENSOR_VALUE(name) extern const alp_file_header_t h_sensor_value_##name;\
marin_wizzi 18:51b15d8bf2fe 51 extern int32_t f_sensor_value_##name[]
Jeej 0:87c57e1b1e1c 52
Jeej 0:87c57e1b1e1c 53 #define FID_SENSOR_CONFIG_MAG 132
Jeej 0:87c57e1b1e1c 54 #define FID_SENSOR_CONFIG_ACC 133
Jeej 0:87c57e1b1e1c 55 #define FID_SENSOR_CONFIG_GYR 134
Jeej 0:87c57e1b1e1c 56 #define FID_SENSOR_CONFIG_PRE 135
Jeej 0:87c57e1b1e1c 57 #define FID_SENSOR_CONFIG_HUM 136
Jeej 0:87c57e1b1e1c 58 #define FID_SENSOR_CONFIG_TEM1 137
Jeej 0:87c57e1b1e1c 59 #define FID_SENSOR_CONFIG_TEM2 138
Jeej 0:87c57e1b1e1c 60 #define FID_SENSOR_CONFIG_LIGHT 139
Jeej 0:87c57e1b1e1c 61
Jeej 0:87c57e1b1e1c 62 #define FID_SENSOR_VALUE_MAG 150
Jeej 0:87c57e1b1e1c 63 #define FID_SENSOR_VALUE_ACC 151
Jeej 0:87c57e1b1e1c 64 #define FID_SENSOR_VALUE_GYR 152
Jeej 0:87c57e1b1e1c 65 #define FID_SENSOR_VALUE_PRE 153
Jeej 0:87c57e1b1e1c 66 #define FID_SENSOR_VALUE_HUM 154
Jeej 0:87c57e1b1e1c 67 #define FID_SENSOR_VALUE_TEM1 155
Jeej 0:87c57e1b1e1c 68 #define FID_SENSOR_VALUE_TEM2 156
Jeej 0:87c57e1b1e1c 69 #define FID_SENSOR_VALUE_LIGHT 157
Jeej 0:87c57e1b1e1c 70
Jeej 0:87c57e1b1e1c 71 FILE_DECLARE_SENSOR_CONFIG(mag);
Jeej 0:87c57e1b1e1c 72 FILE_DECLARE_SENSOR_CONFIG(acc);
Jeej 0:87c57e1b1e1c 73 FILE_DECLARE_SENSOR_CONFIG(gyr);
Jeej 0:87c57e1b1e1c 74 FILE_DECLARE_SENSOR_CONFIG(pre);
Jeej 0:87c57e1b1e1c 75 FILE_DECLARE_SENSOR_CONFIG(hum);
Jeej 0:87c57e1b1e1c 76 FILE_DECLARE_SENSOR_CONFIG(tem1);
Jeej 0:87c57e1b1e1c 77 FILE_DECLARE_SENSOR_CONFIG(tem2);
Jeej 0:87c57e1b1e1c 78 FILE_DECLARE_SENSOR_CONFIG(light);
Jeej 0:87c57e1b1e1c 79
Jeej 0:87c57e1b1e1c 80 FILE_DECLARE_SENSOR_VALUE(mag);
Jeej 0:87c57e1b1e1c 81 FILE_DECLARE_SENSOR_VALUE(acc);
Jeej 0:87c57e1b1e1c 82 FILE_DECLARE_SENSOR_VALUE(gyr);
Jeej 0:87c57e1b1e1c 83 FILE_DECLARE_SENSOR_VALUE(pre);
Jeej 0:87c57e1b1e1c 84 FILE_DECLARE_SENSOR_VALUE(hum);
Jeej 0:87c57e1b1e1c 85 FILE_DECLARE_SENSOR_VALUE(tem1);
Jeej 0:87c57e1b1e1c 86 FILE_DECLARE_SENSOR_VALUE(tem2);
Jeej 0:87c57e1b1e1c 87 FILE_DECLARE_SENSOR_VALUE(light);
Jeej 0:87c57e1b1e1c 88
Jeej 0:87c57e1b1e1c 89
Jeej 0:87c57e1b1e1c 90 #endif // _FILE_H_