SRK Version of mDot LoRa_Sensormode_SRK

Dependencies:   libmDot mbed-rtos mbed

Fork of mDot_LoRa_Sensornode by Adrian Mitevski

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers main.h Source File

main.h

00001 /*
00002  * main.h
00003  *
00004  *  Created on: May 27, 2016
00005  *      Author: Adrian
00006  */
00007 #ifndef MAIN_H_
00008 #define MAIN_H_
00009 
00010 #include <Queue.h>
00011 #include "BME280.h"
00012 #include "BME280TemperatureMessage.h "
00013 #include "BME280PressureMessage.h "
00014 #include "BME280HumidityMessage.h "
00015 #include "MAX44009.h "
00016 #include "MAX44009Message.h "
00017 #include "MPU9250.h "
00018 #include "MPU9250AccelerationMessage.h "
00019 #include "MPU9250GyroscopeMessage.h "
00020 #include "MPU9250TeslaMessage.h "
00021 #include "SI1143ProximityMessage.h "
00022 #include "uBlox.h "
00023 #include "UBloxGPSMessage.h "
00024 #include "LoRaMeasuermentMessage.h "
00025 #include "CommandMessage.h"
00026 
00027 
00028 #define GPS_MESSAGE_LENGTH  36
00029 #define BAUD_UART   9600
00030 #define BAUD_USB    9600
00031 
00032 /**
00033  * @defgroup Queue Lenghts
00034  * @{
00035  */
00036 
00037 #define LIGHT_QUEUE_LENGHT                  1
00038 #define ACCELERATION_QUEUE_LENGHT           1
00039 #define GYROSCOPE_QUEUE_LENGHT              1
00040 #define TESLA_QUEUE_LENGHT                  1
00041 #define TEMPERATURE_QUEUE_LENGHT            1
00042 #define PRESSURE_QUEUE_LENGHT               1
00043 #define HUMIDITY_QUEUE_LENGHT               1
00044 #define PROXIMITY_QUEUE_LENGHT              1
00045 #define GPS_QUEUE_LENGHT                    1
00046 #define LORA_MEASUREMENT_QUEUE_LENGHT       1
00047 #define COMMAND_QUEUE_LENGHT                1
00048 
00049 /** @} */
00050 
00051 /**
00052  * @defgroup Task Delays
00053  * @{
00054  */
00055 
00056 #define LIGHT_TASK_DELAY_MS             15000
00057 #define TEMPERATURE_TASK_DELAY_MS       15000
00058 #define HUMIDITY_TASK_DELAY_MS          15000
00059 #define PRESSURE_TASK_DELAY_MS          15000
00060 #define ACCELERATION_TASK_DELAY_MS      15000
00061 #define GYROSCOPE_TASK_DELAY_MS         15000
00062 #define TESLA_TASK_DELAY_MS             15000
00063 #define PROXIMITY_TASK_DELAY_MS         15000
00064 #define GPS_TASK_DELAY_MS               15000
00065 #define LORA_MEASUREMENT_TASK_DELAY_MS  15000
00066 #define DATAHANLDER_TASK_DELAY_MS       15000
00067 
00068 /** @} */
00069 
00070 /**
00071  * @defgroup LoRa Message IDs
00072  * @{
00073  */
00074 
00075 #define MAX44009_MESSAGE_ID                             "L"
00076 #define UBLOX_GPS_MESSAGE_ITOW_ID                       "G1"
00077 #define UBLOX_GPS_MESSAGE_LONGITUDE_ID                  "G2"
00078 #define UBLOX_GPS_MESSAGE_LATITUDE_ID                   "G3"
00079 #define UBLOX_GPS_MESSAGE_HEIGHT_ID                     "G4"
00080 #define UBLOX_GPS_MESSAGE_HMSL_ID                       "G5"
00081 #define UBLOX_GPS_MESSAGE_HACC_ID                       "G6"
00082 #define UBLOX_GPS_MESSAGE_VACC_ID                       "G7"
00083 #define BME280_TEMPERATURE_MESSAGE_ID                   "B1"
00084 #define BME280_PRESSURE_MESSAGE_ID                      "B2"
00085 #define BME280_HUMIDITY_MESSAGE_ID                      "B3"
00086 #define MPU9250_X_ACCELERATION_MESSAGE_ID               "M1"
00087 #define MPU9250_Y_ACCELERATION_MESSAGE_ID               "M2"
00088 #define MPU9250_Z_ACCELERATION_MESSAGE_ID               "M3"
00089 #define MPU9250_X_GYROSCOPE_MESSAGE_ID                  "M4"
00090 #define MPU9250_Y_GYROSCOPE_MESSAGE_ID                  "M5"
00091 #define MPU9250_Z_GYROSCOPE_MESSAGE_ID                  "M6"
00092 #define MPU9250_X_TESLA_MESSAGE_ID                      "M7"
00093 #define MPU9250_Y_TESLA_MESSAGE_ID                      "M8"
00094 #define MPU9250_Z_TESLA_MESSAGE_ID                      "M9"
00095 #define SI1143_PROXIMITY_MESSAGE_ID                     "P1"
00096 
00097 #define LORA_MEASURMENT_RSSI_MESSAGE_ID                 "Z1"
00098 #define LORA_MEASURMENT_SNR_MESSAGE_ID                  "Z2"
00099 #define LORA_MEASURMENT_SPREADING_FACTOR_MESSAGE_ID     "Z3"
00100 #define LORA_MEASURMENT_TX_POWER_MESSAGE_ID             "Z4"
00101 
00102 /** @} */
00103 
00104 #define LORA_NETWORK_NAME                   "conduitgwy"
00105 #define LORA_NETWORK_PASSPHRASE             "conduitgwy"
00106 
00107 #define LORA_COMMAND_APPLICATION_MODE_1     "AM1"
00108 #define LORA_COMMAND_APPLICATION_MODE_2     "AM2"
00109 #define LORA_COMMAND_APPLICATION_MODE_3     "AM3"
00110 #define LORA_COMMAND_APPLICATION_MODE_4     "AM4"
00111 
00112 /**
00113  * @brief Special Bundle that can hold references to all queues. Used especially by the TaskDatahandler
00114  */
00115 typedef struct QueueBundle{
00116     Queue<MAX44009Message,LIGHT_QUEUE_LENGHT>* queueLight;
00117     Queue<BME280TemperatureMessage,TEMPERATURE_QUEUE_LENGHT>* queueTemperature;
00118     Queue<BME280PressureMessage,PRESSURE_QUEUE_LENGHT>* queuePressure;
00119     Queue<BME280HumidityMessage,HUMIDITY_QUEUE_LENGHT>* queueHumidity;
00120     Queue<MPU9250AccelerationMessage,ACCELERATION_QUEUE_LENGHT>* queueAcceleration;
00121     Queue<MPU9250GyroscopeMessage,GYROSCOPE_QUEUE_LENGHT>* queueGyro;
00122     Queue<MPU9250TeslaMessage,TESLA_QUEUE_LENGHT>* queueTesla;
00123     Queue<SI1143ProximityMessage,PROXIMITY_QUEUE_LENGHT>* queueProximity;
00124     Queue<UBloxGPSMessage,GPS_QUEUE_LENGHT>* queueGps;
00125     Queue<LoRaMeasurementMessage,LORA_MEASUREMENT_QUEUE_LENGHT>* queueLoRaMeasurments;
00126     Queue<CommandMessage,COMMAND_QUEUE_LENGHT>* queueCommands;
00127 }OueueBundle;
00128 
00129 /**
00130  * Task States. Define different States in which a task can be on the ApplicationConfig Level
00131  * Each task is either RUNNING or SLEEPING
00132  */
00133 enum TASK_STATE {
00134     RUNNING = 1,//!< RUNNING
00135     SLEEPING = 0//!< SLEEPING
00136 };
00137 
00138 /**
00139  * LoRa States. Define different States in wich the LoRa Modul can be on the ApplicationConfig Level
00140  * It's either ON or OFF
00141  */
00142 enum LORA_STATE {
00143     ON = 1,//!< ON
00144     OFF = 0//!< OFF
00145 };
00146 
00147 
00148 #endif /* MAIN_H_ */