#include #include #include #include #define DEFAULT_RADIO_NODE DT_ALIAS(lora0) BUILD_ASSERT(DT_NODE_HAS_STATUS(DEFAULT_RADIO_NODE, okay), "Board has no LoRa modem"); #define LOG_LEVEL CONFIG_LOG_DEFAULT_LEVEL #include LOG_MODULE_REGISTER(lora); void lora_rx_cb(const struct device *dev, uint8_t *data, uint16_t size, int16_t rssi, int8_t snr) { ARG_UNUSED(dev); ARG_UNUSED(size); LOG_INF("rx: %s (RSSI: %d dBm, SNR: %d dBm)", data, rssi, snr); } int main(void) { const struct device *const lora_dev = DEVICE_DT_GET(DEFAULT_RADIO_NODE); struct lora_modem_config config; int ret; if (!device_is_ready(lora_dev)) { LOG_ERR("%s Device not ready", lora_dev->name); return 0; } config.frequency = 433175000; config.bandwidth = BW_125_KHZ; config.datarate = SF_10; config.preamble_len = 8; config.coding_rate = CR_4_5; config.iq_inverted = false; config.public_network = false; config.tx_power = 14; config.tx = false; ret = lora_config(lora_dev, &config); if (ret < 0) { LOG_ERR("LoRa config failed"); return 0; } lora_recv_async(lora_dev, lora_rx_cb); k_sleep(K_FOREVER); return 0; }