Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: libmDot mbed-rtos mbed
Fork of mDot_LoRa_Sensornode by
app/main.h@1:fe242f3e341b, 2016-08-12 (annotated)
- Committer:
 - mitea1
 - Date:
 - Fri Aug 12 11:19:14 2016 +0000
 - Revision:
 - 1:fe242f3e341b
 - Parent:
 - 0:f2815503561f
 - Child:
 - 2:641a67ff243f
 
added OTAA Join Mode for LoRa Connection
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 | 1:fe242f3e341b | 56 | #define LIGHT_TASK_DELAY_MS 15000 | 
| mitea1 | 1:fe242f3e341b | 57 | #define TEMPERATURE_TASK_DELAY_MS 15000 | 
| mitea1 | 1:fe242f3e341b | 58 | #define HUMIDITY_TASK_DELAY_MS 15000 | 
| mitea1 | 1:fe242f3e341b | 59 | #define PRESSURE_TASK_DELAY_MS 15000 | 
| mitea1 | 1:fe242f3e341b | 60 | #define ACCELERATION_TASK_DELAY_MS 15000 | 
| mitea1 | 1:fe242f3e341b | 61 | #define GYROSCOPE_TASK_DELAY_MS 15000 | 
| mitea1 | 1:fe242f3e341b | 62 | #define TESLA_TASK_DELAY_MS 15000 | 
| mitea1 | 1:fe242f3e341b | 63 | #define PROXIMITY_TASK_DELAY_MS 15000 | 
| mitea1 | 1:fe242f3e341b | 64 | #define GPS_TASK_DELAY_MS 15000 | 
| mitea1 | 1:fe242f3e341b | 65 | #define LORA_MEASUREMENT_TASK_DELAY_MS 15000 | 
| mitea1 | 1:fe242f3e341b | 66 | #define DATAHANLDER_TASK_DELAY_MS 15000 | 
| 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_ */ | 
