convey driver start via lora32_handle_t

This commit is contained in:
Morgan 'ARR\!' Allen 2026-03-13 15:06:18 -07:00
parent ec1dc66f9b
commit a306ef17a8

View file

@ -109,12 +109,16 @@ void lora32_set_implicit_header(lora32_cfg_t *lora) {
void lora32_standby(lora32_cfg_t *lora) { void lora32_standby(lora32_cfg_t *lora) {
ESP_LOGV(TAG, "MODE_STANDBY"); ESP_LOGV(TAG, "MODE_STANDBY");
xEventGroupSetBits(lora->handle.state, MODE_STANDBY);
lora32_write_reg(lora, REG_OP_MODE, MODE_LONG_RANGE_MODE | MODE_STANDBY); lora32_write_reg(lora, REG_OP_MODE, MODE_LONG_RANGE_MODE | MODE_STANDBY);
} }
void lora32_sleep(lora32_cfg_t *lora) { void lora32_sleep(lora32_cfg_t *lora) {
ESP_LOGV(TAG, "MODE_SLEEP"); ESP_LOGV(TAG, "MODE_SLEEP");
xEventGroupSetBits(lora->handle.state, MODE_SLEEP);
lora32_write_reg(lora, REG_OP_MODE, MODE_LONG_RANGE_MODE | MODE_SLEEP); lora32_write_reg(lora, REG_OP_MODE, MODE_LONG_RANGE_MODE | MODE_SLEEP);
} }
@ -138,6 +142,8 @@ void lora32_enable_tx(lora32_cfg_t *lora) {
else else
lora32_set_explicit_header(lora); lora32_set_explicit_header(lora);
xEventGroupSetBits(lora->handle.state, MODE_TX);
// zero out receive buffer // zero out receive buffer
lora32_write_reg(lora, REG_FIFO_ADDR_PTR, 0); lora32_write_reg(lora, REG_FIFO_ADDR_PTR, 0);
lora32_write_reg(lora, REG_PAYLOAD_LENGTH, 0); lora32_write_reg(lora, REG_PAYLOAD_LENGTH, 0);
@ -294,6 +300,8 @@ void lora32_enable_single_rx(lora32_cfg_t *lora) {
lora32_update_dio_mapping(lora, REG_DIO_MAPPING_1, DIO0_MODE_RXDONE, DIO0_MODE_SHIFT); lora32_update_dio_mapping(lora, REG_DIO_MAPPING_1, DIO0_MODE_RXDONE, DIO0_MODE_SHIFT);
} }
xEventGroupSetBits(lora->handle.state, MODE_RX_SINGLE);
lora32_write_reg(lora, REG_OP_MODE, MODE_LONG_RANGE_MODE | MODE_RX_SINGLE); lora32_write_reg(lora, REG_OP_MODE, MODE_LONG_RANGE_MODE | MODE_RX_SINGLE);
} }
@ -305,6 +313,8 @@ void lora32_enable_continuous_rx(lora32_cfg_t *lora) {
lora32_update_dio_mapping(lora, REG_DIO_MAPPING_1, DIO0_MODE_RXDONE, DIO0_MODE_SHIFT); lora32_update_dio_mapping(lora, REG_DIO_MAPPING_1, DIO0_MODE_RXDONE, DIO0_MODE_SHIFT);
} }
xEventGroupSetBits(lora->handle.state, MODE_RX_CONTINUOUS);
lora32_write_reg(lora, REG_OP_MODE, MODE_LONG_RANGE_MODE | MODE_RX_CONTINUOUS); lora32_write_reg(lora, REG_OP_MODE, MODE_LONG_RANGE_MODE | MODE_RX_CONTINUOUS);
} }
@ -323,6 +333,8 @@ void lora32_enable_cad(lora32_cfg_t *lora) {
ESP_LOGV(TAG, "MODE_CAD_DETECT"); ESP_LOGV(TAG, "MODE_CAD_DETECT");
xEventGroupSetBits(lora->handle.state, MODE_CAD_DETECT);
lora32_write_reg(lora, REG_OP_MODE, MODE_LONG_RANGE_MODE | MODE_CAD_DETECT); lora32_write_reg(lora, REG_OP_MODE, MODE_LONG_RANGE_MODE | MODE_CAD_DETECT);
} }
@ -541,7 +553,8 @@ uint8_t lora32_init(lora32_cfg_t *lora) {
ESP_ERROR_CHECK(spi_bus_add_device(lora->spi_host, &devcfg, &lora->spi)); ESP_ERROR_CHECK(spi_bus_add_device(lora->spi_host, &devcfg, &lora->spi));
// initialize event groups // initialize event groups
lora->handle.events = xEventGroupCreate(); lora->handle.state = xEventGroupCreate();
xEventGroupSetBits(lora->handle.state, 0);
uint8_t version = lora32_read_reg(lora, REG_VERSION); uint8_t version = lora32_read_reg(lora, REG_VERSION);
ESP_LOGD(TAG, "lora32_get_id() == 0x%2X", version); ESP_LOGD(TAG, "lora32_get_id() == 0x%2X", version);