lora sensnode
Dependencies: libmDot mbed-rtos mbed
Fork of mDot_LoRa_Sensornode by
app/main.h@1:e67174cc4953, 2016-08-10 (annotated)
- Committer:
- socie123
- Date:
- Wed Aug 10 12:54:10 2016 +0000
- Revision:
- 1:e67174cc4953
- Parent:
- 0:f2815503561f
lora sensnode
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
mitea1 | 0:f2815503561f | 1 | /* |
mitea1 | 0:f2815503561f | 2 | * main.h |
mitea1 | 0:f2815503561f | 3 | * |
mitea1 | 0:f2815503561f | 4 | * Created on: May 27, 2016 |
mitea1 | 0:f2815503561f | 5 | * Author: Adrian |
mitea1 | 0:f2815503561f | 6 | */ |
mitea1 | 0:f2815503561f | 7 | #ifndef MAIN_H_ |
mitea1 | 0:f2815503561f | 8 | #define MAIN_H_ |
mitea1 | 0:f2815503561f | 9 | |
mitea1 | 0:f2815503561f | 10 | #include <Queue.h> |
mitea1 | 0:f2815503561f | 11 | #include "BME280.h" |
mitea1 | 0:f2815503561f | 12 | #include "BME280TemperatureMessage.h" |
mitea1 | 0:f2815503561f | 13 | #include "BME280PressureMessage.h" |
mitea1 | 0:f2815503561f | 14 | #include "BME280HumidityMessage.h" |
mitea1 | 0:f2815503561f | 15 | #include "MAX44009.h" |
mitea1 | 0:f2815503561f | 16 | #include "MAX44009Message.h" |
mitea1 | 0:f2815503561f | 17 | #include "MPU9250.h" |
mitea1 | 0:f2815503561f | 18 | #include "MPU9250AccelerationMessage.h" |
mitea1 | 0:f2815503561f | 19 | #include "MPU9250GyroscopeMessage.h" |
mitea1 | 0:f2815503561f | 20 | #include "MPU9250TeslaMessage.h" |
mitea1 | 0:f2815503561f | 21 | #include "SI1143ProximityMessage.h" |
mitea1 | 0:f2815503561f | 22 | #include "uBlox.h" |
mitea1 | 0:f2815503561f | 23 | #include "UBloxGPSMessage.h" |
mitea1 | 0:f2815503561f | 24 | #include "LoRaMeasuermentMessage.h" |
mitea1 | 0:f2815503561f | 25 | #include "CommandMessage.h" |
mitea1 | 0:f2815503561f | 26 | |
mitea1 | 0:f2815503561f | 27 | |
mitea1 | 0:f2815503561f | 28 | #define GPS_MESSAGE_LENGTH 36 |
mitea1 | 0:f2815503561f | 29 | #define BAUD_UART 9600 |
mitea1 | 0:f2815503561f | 30 | #define BAUD_USB 9600 |
mitea1 | 0:f2815503561f | 31 | |
mitea1 | 0:f2815503561f | 32 | /** |
mitea1 | 0:f2815503561f | 33 | * @defgroup Queue Lenghts |
mitea1 | 0:f2815503561f | 34 | * @{ |
mitea1 | 0:f2815503561f | 35 | */ |
mitea1 | 0:f2815503561f | 36 | |
mitea1 | 0:f2815503561f | 37 | #define LIGHT_QUEUE_LENGHT 1 |
mitea1 | 0:f2815503561f | 38 | #define ACCELERATION_QUEUE_LENGHT 1 |
mitea1 | 0:f2815503561f | 39 | #define GYROSCOPE_QUEUE_LENGHT 1 |
mitea1 | 0:f2815503561f | 40 | #define TESLA_QUEUE_LENGHT 1 |
mitea1 | 0:f2815503561f | 41 | #define TEMPERATURE_QUEUE_LENGHT 1 |
mitea1 | 0:f2815503561f | 42 | #define PRESSURE_QUEUE_LENGHT 1 |
mitea1 | 0:f2815503561f | 43 | #define HUMIDITY_QUEUE_LENGHT 1 |
mitea1 | 0:f2815503561f | 44 | #define PROXIMITY_QUEUE_LENGHT 1 |
mitea1 | 0:f2815503561f | 45 | #define GPS_QUEUE_LENGHT 1 |
mitea1 | 0:f2815503561f | 46 | #define LORA_MEASUREMENT_QUEUE_LENGHT 1 |
mitea1 | 0:f2815503561f | 47 | #define COMMAND_QUEUE_LENGHT 1 |
mitea1 | 0:f2815503561f | 48 | |
mitea1 | 0:f2815503561f | 49 | /** @} */ |
mitea1 | 0:f2815503561f | 50 | |
mitea1 | 0:f2815503561f | 51 | /** |
mitea1 | 0:f2815503561f | 52 | * @defgroup Task Delays |
mitea1 | 0:f2815503561f | 53 | * @{ |
mitea1 | 0:f2815503561f | 54 | */ |
mitea1 | 0:f2815503561f | 55 | |
mitea1 | 0:f2815503561f | 56 | #define LIGHT_TASK_DELAY_MS 2000 |
mitea1 | 0:f2815503561f | 57 | #define TEMPERATURE_TASK_DELAY_MS 2000 |
mitea1 | 0:f2815503561f | 58 | #define HUMIDITY_TASK_DELAY_MS 2000 |
mitea1 | 0:f2815503561f | 59 | #define PRESSURE_TASK_DELAY_MS 2000 |
mitea1 | 0:f2815503561f | 60 | #define ACCELERATION_TASK_DELAY_MS 2000 |
mitea1 | 0:f2815503561f | 61 | #define GYROSCOPE_TASK_DELAY_MS 2000 |
mitea1 | 0:f2815503561f | 62 | #define TESLA_TASK_DELAY_MS 2000 |
mitea1 | 0:f2815503561f | 63 | #define PROXIMITY_TASK_DELAY_MS 2000 |
mitea1 | 0:f2815503561f | 64 | #define GPS_TASK_DELAY_MS 2000 |
mitea1 | 0:f2815503561f | 65 | #define LORA_MEASUREMENT_TASK_DELAY_MS 2000 |
mitea1 | 0:f2815503561f | 66 | #define DATAHANLDER_TASK_DELAY_MS 2000 |
mitea1 | 0:f2815503561f | 67 | |
mitea1 | 0:f2815503561f | 68 | /** @} */ |
mitea1 | 0:f2815503561f | 69 | |
mitea1 | 0:f2815503561f | 70 | /** |
mitea1 | 0:f2815503561f | 71 | * @defgroup LoRa Message IDs |
mitea1 | 0:f2815503561f | 72 | * @{ |
mitea1 | 0:f2815503561f | 73 | */ |
mitea1 | 0:f2815503561f | 74 | |
mitea1 | 0:f2815503561f | 75 | #define MAX44009_MESSAGE_ID "L" |
mitea1 | 0:f2815503561f | 76 | #define UBLOX_GPS_MESSAGE_ITOW_ID "G1" |
mitea1 | 0:f2815503561f | 77 | #define UBLOX_GPS_MESSAGE_LONGITUDE_ID "G2" |
mitea1 | 0:f2815503561f | 78 | #define UBLOX_GPS_MESSAGE_LATITUDE_ID "G3" |
mitea1 | 0:f2815503561f | 79 | #define UBLOX_GPS_MESSAGE_HEIGHT_ID "G4" |
mitea1 | 0:f2815503561f | 80 | #define UBLOX_GPS_MESSAGE_HMSL_ID "G5" |
mitea1 | 0:f2815503561f | 81 | #define UBLOX_GPS_MESSAGE_HACC_ID "G6" |
mitea1 | 0:f2815503561f | 82 | #define UBLOX_GPS_MESSAGE_VACC_ID "G7" |
mitea1 | 0:f2815503561f | 83 | #define BME280_TEMPERATURE_MESSAGE_ID "B1" |
mitea1 | 0:f2815503561f | 84 | #define BME280_PRESSURE_MESSAGE_ID "B2" |
mitea1 | 0:f2815503561f | 85 | #define BME280_HUMIDITY_MESSAGE_ID "B3" |
mitea1 | 0:f2815503561f | 86 | #define MPU9250_X_ACCELERATION_MESSAGE_ID "M1" |
mitea1 | 0:f2815503561f | 87 | #define MPU9250_Y_ACCELERATION_MESSAGE_ID "M2" |
mitea1 | 0:f2815503561f | 88 | #define MPU9250_Z_ACCELERATION_MESSAGE_ID "M3" |
mitea1 | 0:f2815503561f | 89 | #define MPU9250_X_GYROSCOPE_MESSAGE_ID "M4" |
mitea1 | 0:f2815503561f | 90 | #define MPU9250_Y_GYROSCOPE_MESSAGE_ID "M5" |
mitea1 | 0:f2815503561f | 91 | #define MPU9250_Z_GYROSCOPE_MESSAGE_ID "M6" |
mitea1 | 0:f2815503561f | 92 | #define MPU9250_X_TESLA_MESSAGE_ID "M7" |
mitea1 | 0:f2815503561f | 93 | #define MPU9250_Y_TESLA_MESSAGE_ID "M8" |
mitea1 | 0:f2815503561f | 94 | #define MPU9250_Z_TESLA_MESSAGE_ID "M9" |
mitea1 | 0:f2815503561f | 95 | #define SI1143_PROXIMITY_MESSAGE_ID "P1" |
mitea1 | 0:f2815503561f | 96 | |
mitea1 | 0:f2815503561f | 97 | #define LORA_MEASURMENT_RSSI_MESSAGE_ID "Z1" |
mitea1 | 0:f2815503561f | 98 | #define LORA_MEASURMENT_SNR_MESSAGE_ID "Z2" |
mitea1 | 0:f2815503561f | 99 | #define LORA_MEASURMENT_SPREADING_FACTOR_MESSAGE_ID "Z3" |
mitea1 | 0:f2815503561f | 100 | #define LORA_MEASURMENT_TX_POWER_MESSAGE_ID "Z4" |
mitea1 | 0:f2815503561f | 101 | |
mitea1 | 0:f2815503561f | 102 | /** @} */ |
mitea1 | 0:f2815503561f | 103 | |
mitea1 | 0:f2815503561f | 104 | #define LORA_NETWORK_NAME "conduitgwy" |
mitea1 | 0:f2815503561f | 105 | #define LORA_NETWORK_PASSPHRASE "conduitgwy" |
mitea1 | 0:f2815503561f | 106 | |
mitea1 | 0:f2815503561f | 107 | #define LORA_COMMAND_APPLICATION_MODE_1 "AM1" |
mitea1 | 0:f2815503561f | 108 | #define LORA_COMMAND_APPLICATION_MODE_2 "AM2" |
mitea1 | 0:f2815503561f | 109 | #define LORA_COMMAND_APPLICATION_MODE_3 "AM3" |
mitea1 | 0:f2815503561f | 110 | #define LORA_COMMAND_APPLICATION_MODE_4 "AM4" |
mitea1 | 0:f2815503561f | 111 | |
mitea1 | 0:f2815503561f | 112 | /** |
mitea1 | 0:f2815503561f | 113 | * @brief Special Bundle that can hold references to all queues. Used especially by the TaskDatahandler |
mitea1 | 0:f2815503561f | 114 | */ |
mitea1 | 0:f2815503561f | 115 | typedef struct QueueBundle{ |
mitea1 | 0:f2815503561f | 116 | Queue<MAX44009Message,LIGHT_QUEUE_LENGHT>* queueLight; |
mitea1 | 0:f2815503561f | 117 | Queue<BME280TemperatureMessage,TEMPERATURE_QUEUE_LENGHT>* queueTemperature; |
mitea1 | 0:f2815503561f | 118 | Queue<BME280PressureMessage,PRESSURE_QUEUE_LENGHT>* queuePressure; |
mitea1 | 0:f2815503561f | 119 | Queue<BME280HumidityMessage,HUMIDITY_QUEUE_LENGHT>* queueHumidity; |
mitea1 | 0:f2815503561f | 120 | Queue<MPU9250AccelerationMessage,ACCELERATION_QUEUE_LENGHT>* queueAcceleration; |
mitea1 | 0:f2815503561f | 121 | Queue<MPU9250GyroscopeMessage,GYROSCOPE_QUEUE_LENGHT>* queueGyro; |
mitea1 | 0:f2815503561f | 122 | Queue<MPU9250TeslaMessage,TESLA_QUEUE_LENGHT>* queueTesla; |
mitea1 | 0:f2815503561f | 123 | Queue<SI1143ProximityMessage,PROXIMITY_QUEUE_LENGHT>* queueProximity; |
mitea1 | 0:f2815503561f | 124 | Queue<UBloxGPSMessage,GPS_QUEUE_LENGHT>* queueGps; |
mitea1 | 0:f2815503561f | 125 | Queue<LoRaMeasurementMessage,LORA_MEASUREMENT_QUEUE_LENGHT>* queueLoRaMeasurments; |
mitea1 | 0:f2815503561f | 126 | Queue<CommandMessage,COMMAND_QUEUE_LENGHT>* queueCommands; |
mitea1 | 0:f2815503561f | 127 | }; |
mitea1 | 0:f2815503561f | 128 | |
mitea1 | 0:f2815503561f | 129 | /** |
mitea1 | 0:f2815503561f | 130 | * Task States. Define different States in which a task can be on the ApplicationConfig Level |
mitea1 | 0:f2815503561f | 131 | * Each task is either RUNNING or SLEEPING |
mitea1 | 0:f2815503561f | 132 | */ |
mitea1 | 0:f2815503561f | 133 | enum TASK_STATE { |
mitea1 | 0:f2815503561f | 134 | RUNNING = 1,//!< RUNNING |
mitea1 | 0:f2815503561f | 135 | SLEEPING = 0//!< SLEEPING |
mitea1 | 0:f2815503561f | 136 | }; |
mitea1 | 0:f2815503561f | 137 | |
mitea1 | 0:f2815503561f | 138 | /** |
mitea1 | 0:f2815503561f | 139 | * LoRa States. Define different States in wich the LoRa Modul can be on the ApplicationConfig Level |
mitea1 | 0:f2815503561f | 140 | * It's either ON or OFF |
mitea1 | 0:f2815503561f | 141 | */ |
mitea1 | 0:f2815503561f | 142 | enum LORA_STATE { |
mitea1 | 0:f2815503561f | 143 | ON = 1,//!< ON |
mitea1 | 0:f2815503561f | 144 | OFF = 0//!< OFF |
mitea1 | 0:f2815503561f | 145 | }; |
mitea1 | 0:f2815503561f | 146 | |
mitea1 | 0:f2815503561f | 147 | |
mitea1 | 0:f2815503561f | 148 | #endif /* MAIN_H_ */ |