8#include "event_groups.h"
9#include "message_buffer.h"
13#include "stateupdate.h"
15#include "devicelist.h"
21#include "kx134_1211.h"
26extern EventGroupHandle_t xMsgReadyGroup;
27extern MessageBufferHandle_t xLoRaTxBuff;
28extern EventGroupHandle_t xSystemStatusGroup;
37void vLoRaTransmit(
void *argument) {
38 const TickType_t blockTime = portMAX_DELAY;
39 uint8_t rxData[LORA_MSG_LENGTH];
46 EventBits_t uxBits = xEventGroupWaitBits(xMsgReadyGroup, GROUP_MESSAGE_READY_LORA, pdFALSE, pdFALSE, blockTime);
47 if ((uxBits & GROUP_MESSAGE_READY_LORA)) {
49 size_t xReceivedBytes = xMessageBufferReceive(
57 rfToggle.
reset(&rfToggle);
59 xEventGroupClearBits(xMsgReadyGroup, GROUP_MESSAGE_READY_LORA);
73void vLoRaSample(
void *argument) {
74 const TickType_t xFrequency = pdMS_TO_TICKS(250);
75 const TickType_t blockTime = pdMS_TO_TICKS(125);
81 enum State *flightState = StateHandle_getHandle(
"FlightState").state;
82 float *altitude = StateHandle_getHandle(
"Altitude").state;
83 float *velocity = StateHandle_getHandle(
"Velocity").state;
87 TickType_t xLastWakeTime = xTaskGetTickCount();
88 vTaskDelayUntil(&xLastWakeTime, xFrequency);
90 uint8_t systemStatus = xEventGroupGetBits(xSystemStatusGroup);
95 *flightState | systemStatus,
98 KX134_1211_DATA_TOTAL,
106 xMessageBufferSend(xLoRaTxBuff, &avData, LORA_MSG_LENGTH, blockTime);
117void EXTI1_IRQHandler(
void) {
118 BaseType_t xHigherPriorityTaskWoken = pdFALSE, xResult;
124 xResult = xEventGroupSetBitsFromISR(
126 GROUP_MESSAGE_READY_LORA,
127 &xHigherPriorityTaskWoken
130 if (xResult != pdFAIL)
131 portYIELD_FROM_ISR(xHigherPriorityTaskWoken);
DeviceHandle_t DeviceList_getDeviceHandle(DeviceKey)
Retrieve device handle from list by key.
void(* reset)(struct GPIOpin *)
GPIOpin_t GPIOpin_init(GPIO_TypeDef *, GPIO_Pin, GPIO_Config *)
Initialiser for a GPIO peripheral pin interface.
Struct definition for a GPIO pin.
void(* transmit)(struct SX1272 *, uint8_t *)
SX1272 LoRa transmit method.
Struct definition for SX1272. Provides the interface for API consumers to interact with the SX1272 Lo...
CMSIS STM32F439xx Device Peripheral Access Layer Header File.
uint8_t rawGyroData[A3G4250D_DATA_TOTAL]
Raw gyro rates array.
uint8_t rawAccelData[KX134_1211_DATA_TOTAL]
Raw accelerations array.