SRK Version of mDot LoRa_Sensormode_SRK
Dependencies: libmDot mbed-rtos mbed
Fork of mDot_LoRa_Sensornode by
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_ */
Generated on Wed Jul 13 2022 09:23:47 by 1.7.2