lora sensnode

Dependencies:   libmDot mbed-rtos mbed

Fork of mDot_LoRa_Sensornode by Adrian Mitevski

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?

UserRevisionLine numberNew 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_ */