12#include "spp/hal/spi.h"
29 .consumerID = K_SX1262_SERVICE_APID,
31 .p_nameConsumer =
"sx1262",
32 .tiemoutMs = K_SX1262_TASK_TIMEOUT_MS,
81 char strICM20948[128];
86 sprintf(strBMP390,
"BMP390:-");
87 sprintf(strICM20948,
"ICM20948:-");
90 if (packetAPID == K_BMP390_SERVICE_APID){
97 sprintf(sensorsStr,
"%s,%s,", strBMP390, strICM20948);
171 float *payload = (
float *)p_pkt->payload;
173 float altitude = payload[0];
174 float pressure = payload[1];
175 float temperature = payload[2];
177 sprintf(dataStr,
"BMP390:alt=%.1f|P=%.1f|T=%.2f", altitude, pressure, temperature);
184 float *payload = (
float *)p_pkt->payload;
186 float ax = payload[0];
187 float ay = payload[1];
188 float az = payload[2];
189 float gx = payload[3];
190 float gy = payload[4];
191 float gz = payload[5];
192 float mx = payload[6];
193 float my = payload[7];
194 float mz = payload[8];
196 sprintf(dataStr,
"ICM20948:ax=%.2f|ay=%.2f|az=%.2f|gx=%.2f|gy=%.2f|gz=%.2f|mx=%.2f|my=%.2f|mz=%.2f", ax, ay, az, gx, gy, gz, mx, my, mz);
336 buffer[2 + i] = p_data[i];
374 buffer[4] = payloadLength;
435 if ((SPP_HAL_TIME_getMs() - startTime) >= TIMEOUT_MAX_MS)
460 if ((SPP_HAL_TIME_getMs() - startTime) >= TIMEOUT_MAX_MS)
SPP_RetVal_t SPP_HAL_GPIO_registerIsr(spp_uint32_t pin, void *p_isrCtx)
Register an ISR handler for a GPIO pin.
SPP_RetVal_t SPP_HAL_GPIO_configInterrupt(spp_uint32_t pin, spp_uint32_t intrType, spp_uint32_t pull)
Configure a GPIO pin as an interrupt input.
SPP GPIO HAL API — dispatches through the registered HAL port.
#define K_ICM20948_SERVICE_APID
Solaris Packet Protocol (SPP) packet structure definitions.
SPP_RetVal_t
Unified return type for all SPP API functions.
SPP_RetVal_t SPP_HAL_SPI_transmit(void *p_handle, spp_uint8_t *p_data, spp_uint8_t length)
Perform a full-duplex SPI transaction.
Context passed to the GPIO ISR handler.
Describes the contract of a consumer module. This module needs to have:
SPP_RetVal_t SX1262_SetTxParams(void *p_handle)
static SPP_Packet_t mailboxData[K_SX1262_MAILBOX_SIZE]
SPP_RetVal_t SX1262_SetDioIrqParams(void *p_handle, spp_uint16_t irqMask, spp_uint16_t dio1Mask, spp_uint16_t dio2Mask, spp_uint16_t dio3Mask)
static spp_uint32_t s_frame_number
static SPP_SERVICE_ConsumerContract_t SPP_SERVICES_SX1262_getConsumerContract()
void SX1262_InitInterrupts(void)
SPP_RetVal_t SX1262_SetPacketType(void *p_handle)
SPP_RetVal_t SX1262_SetModulationParams(void *p_handle, spp_uint8_t sf, spp_uint8_t bw, spp_uint8_t cr, spp_uint8_t ldro)
SPP_RetVal_t SX1262_ClearIrqStatus(void *p_handle, spp_uint16_t clearMask)
static spp_uint8_t mailboxTail
SPP_GpioIsrCtx_t g_dio1Ctx
SPP_RetVal_t SX1262_WriteBuffer(void *p_handle, spp_uint8_t *p_data, spp_uint8_t length)
SPP_RetVal_t SX1262_WaitForTxDone(void *p_handle)
SPP_RetVal_t SX1262_WaitBusy(void)
SPP_RetVal_t SX1262_SetRfFrequency(void *p_handle)
static void SPP_SERVICES_SX1262_icmPacket_to_text(SPP_Packet_t *p_pkt, char *dataStr)
static SPP_RetVal_t SPP_SERVICES_SX1262_consumeData(void *p_data)
static SPP_RetVal_t SPP_SERVICES_SX1262_deliverToMailbox(const SPP_Packet_t p_pkt)
static void SPP_SERVICES_SX1262_bmpPacket_to_text(SPP_Packet_t *p_pkt, char *dataStr)
SPP_RetVal_t SX1262_SetPaConfig(void *p_handle)
volatile spp_bool_t g_txDoneFlag
static SPP_SERVICE_ConsumerContract_t sx1262Contract
SPP_RetVal_t SX1262_SetTx(void *p_handle, spp_uint32_t timeout)
static spp_uint8_t mailboxHead
static SPP_RetVal_t SPP_SERVICES_SX1262_init(void)
SPP_RetVal_t SX1262_SetPacketParams(void *p_handle, spp_uint16_t preambleLength, spp_uint8_t payloadLength)
SPP_RetVal_t SX1262_SetStandby(void *p_handle)
SPP_RetVal_t SX1262_SetBufferBaseAddress(void *p_handle)
static spp_uint8_t mailboxCount
SPP_RetVal_t SX1262_Transmit(void *p_handle, spp_uint8_t *p_data, spp_uint8_t length)
SPP_RetVal_t SX1262_CalibrateImage(void *p_handle)
#define SX1262_OPCODE_SET_BUFFER_BASE_ADDRESS
#define SX1262_OPCODE_SET_PA_CONFIG
#define SX1262_OPCODE_SET_RF_FRECUENCY
#define SX1262_OPCODE_SET_STANDBY
#define SX1262_OPCODE_CALIBRATE_IMAGE
#define SX1262_OPCODE_WRITE_BUFFER
#define SX1262_OPCODE_SET_TX_PARAMS
#define SX1262_OPCODE_SET_MODULATION_PARAMS
#define SX1262_OPCODE_CLEAR_IRQ_STATUS
#define SX1262_OPCODE_SET_TX
#define SX1262_OPCODE_SET_PACKET_TYPE
#define SX1262_OPCODE_SET_PACKET_PARAMS
#define SX1262_OPCODE_SET_DIO_IRQ_PARAMS
SPP HAL time API — dispatches through the registered HAL port.