Merge pull request #16185 from aabadie/pr/drivers/sx127x_uncrustify
drivers/sx127x: uncrustify code
This commit is contained in:
commit
9b449fba98
3
dist/tools/uncrustify/whitelist.txt
vendored
3
dist/tools/uncrustify/whitelist.txt
vendored
@ -6,6 +6,8 @@ cpu/fe310/periph/.*\.c
|
||||
cpu/riscv_common/.*\.c
|
||||
cpu/riscv_common/include/.*\.h
|
||||
cpu/riscv_common/periph/.*\.c
|
||||
drivers/include/sx127x.h
|
||||
drivers/sx127x/.*\.c
|
||||
sys/riotboot/.*\.h
|
||||
sys/riotboot/.*\.c
|
||||
sys/congure.*\.c
|
||||
@ -16,3 +18,4 @@ sys/test_utils/result_output/*/.*\h
|
||||
sys/test_utils/include/result_output.h
|
||||
sys/ztimer/.*\.c
|
||||
sys/include/ztimer.*\.h
|
||||
tests/driver_sx127x/.*\.c
|
||||
|
||||
@ -87,12 +87,12 @@ extern "C" {
|
||||
#define SX127X_RADIO_TX_POWER (14U) /**< Radio power in dBm */
|
||||
|
||||
#define SX127X_EVENT_HANDLER_STACK_SIZE (2048U) /**< Stack size event handler */
|
||||
#define SX127X_IRQ_DIO0 (1<<0) /**< DIO0 IRQ */
|
||||
#define SX127X_IRQ_DIO1 (1<<1) /**< DIO1 IRQ */
|
||||
#define SX127X_IRQ_DIO2 (1<<2) /**< DIO2 IRQ */
|
||||
#define SX127X_IRQ_DIO3 (1<<3) /**< DIO3 IRQ */
|
||||
#define SX127X_IRQ_DIO4 (1<<4) /**< DIO4 IRQ */
|
||||
#define SX127X_IRQ_DIO5 (1<<5) /**< DIO5 IRQ */
|
||||
#define SX127X_IRQ_DIO0 (1 << 0) /**< DIO0 IRQ */
|
||||
#define SX127X_IRQ_DIO1 (1 << 1) /**< DIO1 IRQ */
|
||||
#define SX127X_IRQ_DIO2 (1 << 2) /**< DIO2 IRQ */
|
||||
#define SX127X_IRQ_DIO3 (1 << 3) /**< DIO3 IRQ */
|
||||
#define SX127X_IRQ_DIO4 (1 << 4) /**< DIO4 IRQ */
|
||||
#define SX127X_IRQ_DIO5 (1 << 5) /**< DIO5 IRQ */
|
||||
/** @} */
|
||||
|
||||
/**
|
||||
|
||||
@ -75,7 +75,8 @@ static void sx127x_on_dio3_isr(void *arg);
|
||||
|
||||
void sx127x_setup(sx127x_t *dev, const sx127x_params_t *params, uint8_t index)
|
||||
{
|
||||
netdev_t *netdev = (netdev_t*) dev;
|
||||
netdev_t *netdev = (netdev_t *)dev;
|
||||
|
||||
netdev->driver = &sx127x_driver;
|
||||
dev->params = *params;
|
||||
netdev_register(&dev->netdev, NETDEV_SX127X, index);
|
||||
@ -148,7 +149,7 @@ int sx127x_init(sx127x_t *dev)
|
||||
|
||||
/* wait till device signals end of POR cycle */
|
||||
while ((gpio_read(dev->params.reset_pin) > 0) ==
|
||||
SX127X_POR_ACTIVE_LOGIC_LEVEL ) {};
|
||||
SX127X_POR_ACTIVE_LOGIC_LEVEL) {}
|
||||
}
|
||||
|
||||
/* wait for the device to become ready */
|
||||
@ -214,7 +215,7 @@ uint32_t sx127x_random(sx127x_t *dev)
|
||||
ztimer_sleep(ZTIMER_MSEC, 1); /* wait one millisecond */
|
||||
|
||||
/* Non-filtered RSSI value reading. Only takes the LSB value */
|
||||
rnd |= ((uint32_t) sx127x_reg_read(dev, SX127X_REG_LR_RSSIWIDEBAND) & 0x01) << i;
|
||||
rnd |= ((uint32_t)sx127x_reg_read(dev, SX127X_REG_LR_RSSIWIDEBAND) & 0x01) << i;
|
||||
}
|
||||
|
||||
sx127x_set_sleep(dev);
|
||||
@ -238,22 +239,22 @@ static void sx127x_on_dio_isr(sx127x_t *dev, sx127x_flags_t flag)
|
||||
|
||||
static void sx127x_on_dio0_isr(void *arg)
|
||||
{
|
||||
sx127x_on_dio_isr((sx127x_t*) arg, SX127X_IRQ_DIO0);
|
||||
sx127x_on_dio_isr((sx127x_t *)arg, SX127X_IRQ_DIO0);
|
||||
}
|
||||
|
||||
static void sx127x_on_dio1_isr(void *arg)
|
||||
{
|
||||
sx127x_on_dio_isr((sx127x_t*) arg, SX127X_IRQ_DIO1);
|
||||
sx127x_on_dio_isr((sx127x_t *)arg, SX127X_IRQ_DIO1);
|
||||
}
|
||||
|
||||
static void sx127x_on_dio2_isr(void *arg)
|
||||
{
|
||||
sx127x_on_dio_isr((sx127x_t*) arg, SX127X_IRQ_DIO2);
|
||||
sx127x_on_dio_isr((sx127x_t *)arg, SX127X_IRQ_DIO2);
|
||||
}
|
||||
|
||||
static void sx127x_on_dio3_isr(void *arg)
|
||||
{
|
||||
sx127x_on_dio_isr((sx127x_t*) arg, SX127X_IRQ_DIO3);
|
||||
sx127x_on_dio_isr((sx127x_t *)arg, SX127X_IRQ_DIO3);
|
||||
}
|
||||
|
||||
/* Internal event handlers */
|
||||
@ -315,14 +316,14 @@ static int _init_gpios(sx127x_t *dev)
|
||||
|
||||
static void _on_tx_timeout(void *arg)
|
||||
{
|
||||
netdev_t *dev = (netdev_t *) arg;
|
||||
netdev_t *dev = (netdev_t *)arg;
|
||||
|
||||
dev->event_callback(dev, NETDEV_EVENT_TX_TIMEOUT);
|
||||
}
|
||||
|
||||
static void _on_rx_timeout(void *arg)
|
||||
{
|
||||
netdev_t *dev = (netdev_t *) arg;
|
||||
netdev_t *dev = (netdev_t *)arg;
|
||||
|
||||
dev->event_callback(dev, NETDEV_EVENT_RX_TIMEOUT);
|
||||
}
|
||||
|
||||
@ -129,7 +129,7 @@ void sx127x_set_channel(sx127x_t *dev, uint32_t channel)
|
||||
/* Save current operating mode */
|
||||
dev->settings.channel = channel;
|
||||
|
||||
channel = (uint32_t)((double) channel / (double)LORA_FREQUENCY_RESOLUTION_DEFAULT);
|
||||
channel = (uint32_t)((double)channel / (double)LORA_FREQUENCY_RESOLUTION_DEFAULT);
|
||||
|
||||
/* Write frequency settings into chip */
|
||||
sx127x_reg_write(dev, SX127X_REG_FRFMSB, (uint8_t)((channel >> 16) & 0xFF));
|
||||
@ -178,7 +178,7 @@ uint32_t sx127x_get_time_on_air(const sx127x_t *dev, uint8_t pkt_len)
|
||||
(8 * pkt_len - 4 * dev->settings.lora.datarate + 28
|
||||
+ 16 * (dev->settings.lora.flags & SX127X_ENABLE_CRC_FLAG)
|
||||
- (!(dev->settings.lora.flags & SX127X_ENABLE_FIXED_HEADER_LENGTH_FLAG) ? 20 : 0))
|
||||
/ (double) (4 * dev->settings.lora.datarate
|
||||
/ (double)(4 * dev->settings.lora.datarate
|
||||
- (((dev->settings.lora.flags & SX127X_LOW_DATARATE_OPTIMIZE_FLAG)
|
||||
> 0) ? 2 : 0)))
|
||||
* (dev->settings.lora.coderate + 4);
|
||||
@ -243,10 +243,15 @@ void sx127x_set_rx(sx127x_t *dev)
|
||||
((sx127x_reg_read(dev, SX127X_REG_LR_INVERTIQ) &
|
||||
SX127X_RF_LORA_INVERTIQ_TX_MASK &
|
||||
SX127X_RF_LORA_INVERTIQ_RX_MASK) |
|
||||
((dev->settings.lora.flags & SX127X_IQ_INVERTED_FLAG) ? SX127X_RF_LORA_INVERTIQ_RX_ON :SX127X_RF_LORA_INVERTIQ_RX_OFF) |
|
||||
((dev->settings.lora.flags &
|
||||
SX127X_IQ_INVERTED_FLAG) ? SX127X_RF_LORA_INVERTIQ_RX_ON :
|
||||
SX127X_RF_LORA_INVERTIQ_RX_OFF)
|
||||
|
|
||||
SX127X_RF_LORA_INVERTIQ_TX_OFF));
|
||||
sx127x_reg_write(dev, SX127X_REG_LR_INVERTIQ2,
|
||||
((dev->settings.lora.flags & SX127X_IQ_INVERTED_FLAG) ? SX127X_RF_LORA_INVERTIQ2_ON : SX127X_RF_LORA_INVERTIQ2_OFF));
|
||||
((dev->settings.lora.flags &
|
||||
SX127X_IQ_INVERTED_FLAG) ? SX127X_RF_LORA_INVERTIQ2_ON :
|
||||
SX127X_RF_LORA_INVERTIQ2_OFF));
|
||||
|
||||
#if defined(MODULE_SX1276)
|
||||
/* ERRATA 2.3 - Receiver Spurious Reception of a LoRa Signal */
|
||||
@ -370,8 +375,7 @@ void sx127x_set_tx(sx127x_t *dev)
|
||||
SX127X_RF_LORA_DIOMAPPING1_DIO0_01 |
|
||||
SX127X_RF_LORA_DIOMAPPING1_DIO2_00);
|
||||
}
|
||||
else
|
||||
{
|
||||
else {
|
||||
/* Enable TXDONE interrupt */
|
||||
sx127x_reg_write(dev, SX127X_REG_LR_IRQFLAGSMASK,
|
||||
SX127X_RF_LORA_IRQFLAGS_RXTIMEOUT |
|
||||
@ -441,7 +445,7 @@ uint8_t sx127x_get_op_mode(const sx127x_t *dev)
|
||||
void sx127x_set_op_mode(const sx127x_t *dev, uint8_t op_mode)
|
||||
{
|
||||
if (IS_ACTIVE(ENABLE_DEBUG)) {
|
||||
switch(op_mode) {
|
||||
switch (op_mode) {
|
||||
case SX127X_RF_OPMODE_SLEEP:
|
||||
DEBUG("[sx127x] Set op mode: SLEEP\n");
|
||||
break;
|
||||
@ -475,13 +479,14 @@ uint8_t sx127x_get_bandwidth(const sx127x_t *dev)
|
||||
|
||||
static void _low_datarate_optimize(sx127x_t *dev)
|
||||
{
|
||||
if ( ((dev->settings.lora.bandwidth == LORA_BW_125_KHZ) &&
|
||||
if (((dev->settings.lora.bandwidth == LORA_BW_125_KHZ) &&
|
||||
((dev->settings.lora.datarate == LORA_SF11) ||
|
||||
(dev->settings.lora.datarate == LORA_SF12))) ||
|
||||
((dev->settings.lora.bandwidth == LORA_BW_250_KHZ) &&
|
||||
(dev->settings.lora.datarate == LORA_SF12))) {
|
||||
dev->settings.lora.flags |= SX127X_LOW_DATARATE_OPTIMIZE_FLAG;
|
||||
} else {
|
||||
}
|
||||
else {
|
||||
dev->settings.lora.flags &= ~SX127X_LOW_DATARATE_OPTIMIZE_FLAG;
|
||||
}
|
||||
|
||||
@ -501,6 +506,7 @@ static void _low_datarate_optimize(sx127x_t *dev)
|
||||
static void _update_bandwidth(const sx127x_t *dev)
|
||||
{
|
||||
uint8_t config1_reg = sx127x_reg_read(dev, SX127X_REG_LR_MODEMCONFIG1);
|
||||
|
||||
#if defined(MODULE_SX1272)
|
||||
config1_reg &= SX1272_RF_LORA_MODEMCONFIG1_BW_MASK;
|
||||
switch (dev->settings.lora.bandwidth) {
|
||||
@ -587,13 +593,14 @@ void sx127x_set_spreading_factor(sx127x_t *dev, uint8_t datarate)
|
||||
dev->settings.lora.datarate = datarate;
|
||||
|
||||
uint8_t config2_reg = sx127x_reg_read(dev, SX127X_REG_LR_MODEMCONFIG2);
|
||||
|
||||
config2_reg &= SX127X_RF_LORA_MODEMCONFIG2_SF_MASK;
|
||||
config2_reg |= datarate << 4;
|
||||
sx127x_reg_write(dev, SX127X_REG_LR_MODEMCONFIG2, config2_reg);
|
||||
|
||||
_low_datarate_optimize(dev);
|
||||
|
||||
switch(dev->settings.lora.datarate) {
|
||||
switch (dev->settings.lora.datarate) {
|
||||
case LORA_SF6:
|
||||
sx127x_reg_write(dev, SX127X_REG_LR_DETECTOPTIMIZE,
|
||||
SX127X_RF_LORA_DETECTIONOPTIMIZE_SF6);
|
||||
@ -694,6 +701,7 @@ void sx127x_set_hop_period(sx127x_t *dev, uint8_t hop_period)
|
||||
dev->settings.lora.freq_hop_period = hop_period;
|
||||
|
||||
uint8_t tmp = sx127x_reg_read(dev, SX127X_REG_LR_PLLHOP);
|
||||
|
||||
if (dev->settings.lora.flags & SX127X_CHANNEL_HOPPING_FLAG) {
|
||||
tmp |= SX127X_RF_LORA_PLLHOP_FASTHOP_ON;
|
||||
sx127x_reg_write(dev, SX127X_REG_LR_PLLHOP, tmp);
|
||||
@ -713,6 +721,7 @@ void sx127x_set_fixed_header_len_mode(sx127x_t *dev, bool fixed_len)
|
||||
_set_flag(dev, SX127X_ENABLE_FIXED_HEADER_LENGTH_FLAG, fixed_len);
|
||||
|
||||
uint8_t config1_reg = sx127x_reg_read(dev, SX127X_REG_LR_MODEMCONFIG1);
|
||||
|
||||
#if defined(MODULE_SX1272)
|
||||
config1_reg &= SX1272_RF_LORA_MODEMCONFIG1_IMPLICITHEADER_MASK;
|
||||
config1_reg |= fixed_len << 2;
|
||||
@ -725,7 +734,7 @@ void sx127x_set_fixed_header_len_mode(sx127x_t *dev, bool fixed_len)
|
||||
|
||||
uint8_t sx127x_get_payload_length(const sx127x_t *dev)
|
||||
{
|
||||
return sx127x_reg_read(dev, SX127X_REG_LR_PAYLOADLENGTH);;
|
||||
return sx127x_reg_read(dev, SX127X_REG_LR_PAYLOADLENGTH);
|
||||
}
|
||||
|
||||
void sx127x_set_payload_length(sx127x_t *dev, uint8_t len)
|
||||
@ -756,6 +765,7 @@ void sx127x_set_tx_power(sx127x_t *dev, int8_t power)
|
||||
dev->settings.lora.power = power;
|
||||
|
||||
uint8_t pa_config = sx127x_reg_read(dev, SX127X_REG_PACONFIG);
|
||||
|
||||
#if defined(MODULE_SX1272)
|
||||
uint8_t pa_dac = sx127x_reg_read(dev, SX1272_REG_PADAC);
|
||||
#else /* MODULE_SX1276 */
|
||||
@ -777,7 +787,8 @@ void sx127x_set_tx_power(sx127x_t *dev, int8_t power)
|
||||
if (power > 17) {
|
||||
pa_dac = ((pa_dac & SX127X_RF_PADAC_20DBM_MASK) |
|
||||
SX127X_RF_PADAC_20DBM_ON);
|
||||
} else {
|
||||
}
|
||||
else {
|
||||
pa_dac = ((pa_dac & SX127X_RF_PADAC_20DBM_MASK) |
|
||||
SX127X_RF_PADAC_20DBM_OFF);
|
||||
}
|
||||
@ -791,7 +802,8 @@ void sx127x_set_tx_power(sx127x_t *dev, int8_t power)
|
||||
|
||||
pa_config = ((pa_config & SX127X_RF_PACONFIG_OUTPUTPOWER_MASK) |
|
||||
(uint8_t)((uint16_t)(power - 5) & 0x0F));
|
||||
} else {
|
||||
}
|
||||
else {
|
||||
if (power < 2) {
|
||||
power = 2;
|
||||
}
|
||||
@ -802,7 +814,8 @@ void sx127x_set_tx_power(sx127x_t *dev, int8_t power)
|
||||
pa_config = ((pa_config & SX127X_RF_PACONFIG_OUTPUTPOWER_MASK) |
|
||||
(uint8_t)((uint16_t)(power - 2) & 0x0F));
|
||||
}
|
||||
} else {
|
||||
}
|
||||
else {
|
||||
if (power < -1) {
|
||||
power = -1;
|
||||
}
|
||||
@ -858,6 +871,7 @@ void sx127x_set_symbol_timeout(sx127x_t *dev, uint16_t timeout)
|
||||
DEBUG("[sx127x] Set symbol timeout: %d\n", timeout);
|
||||
|
||||
uint8_t config2_reg = sx127x_reg_read(dev, SX127X_REG_LR_MODEMCONFIG2);
|
||||
|
||||
config2_reg &= SX127X_RF_LORA_MODEMCONFIG2_SYMBTIMEOUTMSB_MASK;
|
||||
config2_reg |= (timeout >> 8) & ~SX127X_RF_LORA_MODEMCONFIG2_SYMBTIMEOUTMSB_MASK;
|
||||
sx127x_reg_write(dev, SX127X_REG_LR_MODEMCONFIG2, config2_reg);
|
||||
|
||||
@ -86,7 +86,7 @@ void sx127x_reg_write_burst(const sx127x_t *dev, uint8_t addr, uint8_t *buffer,
|
||||
spi_acquire(dev->params.spi, SPI_CS_UNDEF, SX127X_SPI_MODE, SX127X_SPI_SPEED);
|
||||
|
||||
gpio_clear(dev->params.nss_pin);
|
||||
spi_transfer_regs(dev->params.spi, SPI_CS_UNDEF, addr | 0x80, (char *) buffer, NULL, size);
|
||||
spi_transfer_regs(dev->params.spi, SPI_CS_UNDEF, addr | 0x80, (char *)buffer, NULL, size);
|
||||
gpio_set(dev->params.nss_pin);
|
||||
|
||||
spi_release(dev->params.spi);
|
||||
@ -98,7 +98,7 @@ void sx127x_reg_read_burst(const sx127x_t *dev, uint8_t addr, uint8_t *buffer,
|
||||
spi_acquire(dev->params.spi, SPI_CS_UNDEF, SX127X_SPI_MODE, SX127X_SPI_SPEED);
|
||||
|
||||
gpio_clear(dev->params.nss_pin);
|
||||
spi_transfer_regs(dev->params.spi, SPI_CS_UNDEF, addr & 0x7F, NULL, (char *) buffer, size);
|
||||
spi_transfer_regs(dev->params.spi, SPI_CS_UNDEF, addr & 0x7F, NULL, (char *)buffer, size);
|
||||
gpio_set(dev->params.nss_pin);
|
||||
|
||||
spi_release(dev->params.spi);
|
||||
@ -122,9 +122,11 @@ void sx1276_rx_chain_calibration(sx127x_t *dev)
|
||||
|
||||
/* Save context */
|
||||
reg_pa_config_init_val = sx127x_reg_read(dev, SX127X_REG_PACONFIG);
|
||||
initial_freq = (double) (((uint32_t) sx127x_reg_read(dev, SX127X_REG_FRFMSB) << 16)
|
||||
| ((uint32_t) sx127x_reg_read(dev, SX127X_REG_FRFMID) << 8)
|
||||
| ((uint32_t) sx127x_reg_read(dev, SX127X_REG_FRFLSB))) * (double)LORA_FREQUENCY_RESOLUTION_DEFAULT;
|
||||
initial_freq = (double)(((uint32_t)sx127x_reg_read(dev, SX127X_REG_FRFMSB) << 16)
|
||||
| ((uint32_t)sx127x_reg_read(dev, SX127X_REG_FRFMID) << 8)
|
||||
| ((uint32_t)sx127x_reg_read(dev,
|
||||
SX127X_REG_FRFLSB))) *
|
||||
(double)LORA_FREQUENCY_RESOLUTION_DEFAULT;
|
||||
|
||||
/* Cut the PA just in case, RFO output, power = -1 dBm */
|
||||
sx127x_reg_write(dev, SX127X_REG_PACONFIG, 0x00);
|
||||
@ -136,8 +138,7 @@ void sx1276_rx_chain_calibration(sx127x_t *dev)
|
||||
| SX127X_RF_IMAGECAL_IMAGECAL_START);
|
||||
|
||||
while ((sx127x_reg_read(dev, SX127X_REG_IMAGECAL) & SX127X_RF_IMAGECAL_IMAGECAL_RUNNING)
|
||||
== SX127X_RF_IMAGECAL_IMAGECAL_RUNNING) {
|
||||
}
|
||||
== SX127X_RF_IMAGECAL_IMAGECAL_RUNNING) {}
|
||||
|
||||
/* Set a frequency in HF band */
|
||||
sx127x_set_channel(dev, SX127X_HF_CHANNEL_DEFAULT);
|
||||
@ -148,8 +149,7 @@ void sx1276_rx_chain_calibration(sx127x_t *dev)
|
||||
(sx127x_reg_read(dev, SX127X_REG_IMAGECAL) & SX127X_RF_IMAGECAL_IMAGECAL_MASK)
|
||||
| SX127X_RF_IMAGECAL_IMAGECAL_START);
|
||||
while ((sx127x_reg_read(dev, SX127X_REG_IMAGECAL) & SX127X_RF_IMAGECAL_IMAGECAL_RUNNING)
|
||||
== SX127X_RF_IMAGECAL_IMAGECAL_RUNNING) {
|
||||
}
|
||||
== SX127X_RF_IMAGECAL_IMAGECAL_RUNNING) {}
|
||||
|
||||
/* Restore context */
|
||||
sx127x_reg_write(dev, SX127X_REG_PACONFIG, reg_pa_config_init_val);
|
||||
|
||||
@ -48,7 +48,7 @@ void _on_dio3_irq(void *arg);
|
||||
static int _send(netdev_t *netdev, const iolist_t *iolist)
|
||||
{
|
||||
DEBUG("[sx127x] Sending packet now.\n");
|
||||
sx127x_t *dev = (sx127x_t*) netdev;
|
||||
sx127x_t *dev = (sx127x_t *)netdev;
|
||||
|
||||
if (sx127x_get_state(dev) == SX127X_RF_TX_RUNNING) {
|
||||
DEBUG("[sx127x] Cannot send packet: radio already in transmitting "
|
||||
@ -88,7 +88,7 @@ static int _send(netdev_t *netdev, const iolist_t *iolist)
|
||||
|
||||
/* Write payload buffer */
|
||||
for (const iolist_t *iol = iolist; iol; iol = iol->iol_next) {
|
||||
if(iol->iol_len > 0) {
|
||||
if (iol->iol_len > 0) {
|
||||
sx127x_write_fifo(dev, iol->iol_base, iol->iol_len);
|
||||
DEBUG("[sx127x] Wrote to payload buffer.\n");
|
||||
}
|
||||
@ -107,9 +107,10 @@ static int _send(netdev_t *netdev, const iolist_t *iolist)
|
||||
|
||||
static int _recv(netdev_t *netdev, void *buf, size_t len, void *info)
|
||||
{
|
||||
sx127x_t *dev = (sx127x_t*) netdev;
|
||||
sx127x_t *dev = (sx127x_t *)netdev;
|
||||
volatile uint8_t irq_flags = 0;
|
||||
uint8_t size = 0;
|
||||
|
||||
switch (dev->settings.modem) {
|
||||
case SX127X_MODEM_FSK:
|
||||
/* todo */
|
||||
@ -119,7 +120,7 @@ static int _recv(netdev_t *netdev, void *buf, size_t len, void *info)
|
||||
sx127x_reg_write(dev, SX127X_REG_LR_IRQFLAGS, SX127X_RF_LORA_IRQFLAGS_RXDONE);
|
||||
|
||||
irq_flags = sx127x_reg_read(dev, SX127X_REG_LR_IRQFLAGS);
|
||||
if ( (irq_flags & SX127X_RF_LORA_IRQFLAGS_PAYLOADCRCERROR_MASK) ==
|
||||
if ((irq_flags & SX127X_RF_LORA_IRQFLAGS_PAYLOADCRCERROR_MASK) ==
|
||||
SX127X_RF_LORA_IRQFLAGS_PAYLOADCRCERROR) {
|
||||
/* Clear IRQ */
|
||||
sx127x_reg_write(dev, SX127X_REG_LR_IRQFLAGS,
|
||||
@ -153,10 +154,12 @@ static int _recv(netdev_t *netdev, void *buf, size_t len, void *info)
|
||||
packet_info->rssi = SX127X_RSSI_OFFSET + rssi + (rssi >> 4) + packet_info->snr;
|
||||
#else /* MODULE_SX1276 */
|
||||
if (dev->settings.channel > SX127X_RF_MID_BAND_THRESH) {
|
||||
packet_info->rssi = SX127X_RSSI_OFFSET_HF + rssi + (rssi >> 4) + packet_info->snr;
|
||||
packet_info->rssi = SX127X_RSSI_OFFSET_HF + rssi + (rssi >> 4) +
|
||||
packet_info->snr;
|
||||
}
|
||||
else {
|
||||
packet_info->rssi = SX127X_RSSI_OFFSET_LF + rssi + (rssi >> 4) + packet_info->snr;
|
||||
packet_info->rssi = SX127X_RSSI_OFFSET_LF + rssi + (rssi >> 4) +
|
||||
packet_info->snr;
|
||||
}
|
||||
#endif
|
||||
}
|
||||
@ -191,7 +194,7 @@ static int _recv(netdev_t *netdev, void *buf, size_t len, void *info)
|
||||
/* Read the last packet from FIFO */
|
||||
uint8_t last_rx_addr = sx127x_reg_read(dev, SX127X_REG_LR_FIFORXCURRENTADDR);
|
||||
sx127x_reg_write(dev, SX127X_REG_LR_FIFOADDRPTR, last_rx_addr);
|
||||
sx127x_read_fifo(dev, (uint8_t*)buf, size);
|
||||
sx127x_read_fifo(dev, (uint8_t *)buf, size);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
@ -202,10 +205,11 @@ static int _recv(netdev_t *netdev, void *buf, size_t len, void *info)
|
||||
|
||||
static int _init(netdev_t *netdev)
|
||||
{
|
||||
sx127x_t *sx127x = (sx127x_t*) netdev;
|
||||
sx127x_t *sx127x = (sx127x_t *)netdev;
|
||||
|
||||
sx127x->irq = 0;
|
||||
sx127x_radio_settings_t settings;
|
||||
|
||||
settings.channel = SX127X_CHANNEL_DEFAULT;
|
||||
settings.modem = SX127X_MODEM_DEFAULT;
|
||||
settings.state = SX127X_RF_IDLE;
|
||||
@ -256,91 +260,93 @@ static void _isr(netdev_t *netdev)
|
||||
|
||||
static int _get(netdev_t *netdev, netopt_t opt, void *val, size_t max_len)
|
||||
{
|
||||
(void) max_len; /* unused when compiled without debug, assert empty */
|
||||
sx127x_t *dev = (sx127x_t*) netdev;
|
||||
(void)max_len; /* unused when compiled without debug, assert empty */
|
||||
sx127x_t *dev = (sx127x_t *)netdev;
|
||||
|
||||
if (dev == NULL) {
|
||||
return -ENODEV;
|
||||
}
|
||||
|
||||
switch(opt) {
|
||||
switch (opt) {
|
||||
case NETOPT_STATE:
|
||||
assert(max_len >= sizeof(netopt_state_t));
|
||||
return _get_state(dev, val);
|
||||
|
||||
case NETOPT_DEVICE_TYPE:
|
||||
assert(max_len >= sizeof(uint16_t));
|
||||
*((uint16_t*) val) = NETDEV_TYPE_LORA;
|
||||
*((uint16_t *)val) = NETDEV_TYPE_LORA;
|
||||
return sizeof(uint16_t);
|
||||
|
||||
case NETOPT_CHANNEL_FREQUENCY:
|
||||
assert(max_len >= sizeof(uint32_t));
|
||||
*((uint32_t*) val) = sx127x_get_channel(dev);
|
||||
*((uint32_t *)val) = sx127x_get_channel(dev);
|
||||
return sizeof(uint32_t);
|
||||
|
||||
case NETOPT_BANDWIDTH:
|
||||
assert(max_len >= sizeof(uint8_t));
|
||||
*((uint8_t*) val) = sx127x_get_bandwidth(dev);
|
||||
*((uint8_t *)val) = sx127x_get_bandwidth(dev);
|
||||
return sizeof(uint8_t);
|
||||
|
||||
case NETOPT_SPREADING_FACTOR:
|
||||
assert(max_len >= sizeof(uint8_t));
|
||||
*((uint8_t*) val) = sx127x_get_spreading_factor(dev);
|
||||
*((uint8_t *)val) = sx127x_get_spreading_factor(dev);
|
||||
return sizeof(uint8_t);
|
||||
|
||||
case NETOPT_CODING_RATE:
|
||||
assert(max_len >= sizeof(uint8_t));
|
||||
*((uint8_t*) val) = sx127x_get_coding_rate(dev);
|
||||
*((uint8_t *)val) = sx127x_get_coding_rate(dev);
|
||||
return sizeof(uint8_t);
|
||||
|
||||
case NETOPT_MAX_PDU_SIZE:
|
||||
assert(max_len >= sizeof(uint8_t));
|
||||
*((uint8_t*) val) = sx127x_get_max_payload_len(dev);
|
||||
*((uint8_t *)val) = sx127x_get_max_payload_len(dev);
|
||||
return sizeof(uint8_t);
|
||||
|
||||
case NETOPT_INTEGRITY_CHECK:
|
||||
assert(max_len >= sizeof(netopt_enable_t));
|
||||
*((netopt_enable_t*) val) = sx127x_get_crc(dev) ? NETOPT_ENABLE : NETOPT_DISABLE;
|
||||
*((netopt_enable_t *)val) = sx127x_get_crc(dev) ? NETOPT_ENABLE : NETOPT_DISABLE;
|
||||
return sizeof(netopt_enable_t);
|
||||
|
||||
case NETOPT_CHANNEL_HOP:
|
||||
assert(max_len >= sizeof(netopt_enable_t));
|
||||
*((netopt_enable_t*) val) = (dev->settings.lora.flags & SX127X_CHANNEL_HOPPING_FLAG) ? NETOPT_ENABLE : NETOPT_DISABLE;
|
||||
*((netopt_enable_t *)val) =
|
||||
(dev->settings.lora.flags &
|
||||
SX127X_CHANNEL_HOPPING_FLAG) ? NETOPT_ENABLE : NETOPT_DISABLE;
|
||||
return sizeof(netopt_enable_t);
|
||||
|
||||
case NETOPT_CHANNEL_HOP_PERIOD:
|
||||
assert(max_len >= sizeof(uint8_t));
|
||||
*((uint8_t*) val) = sx127x_get_hop_period(dev);
|
||||
*((uint8_t *)val) = sx127x_get_hop_period(dev);
|
||||
return sizeof(uint8_t);
|
||||
|
||||
case NETOPT_SINGLE_RECEIVE:
|
||||
assert(max_len >= sizeof(uint8_t));
|
||||
*((netopt_enable_t*) val) = sx127x_get_rx_single(dev) ? NETOPT_ENABLE : NETOPT_DISABLE;
|
||||
*((netopt_enable_t *)val) = sx127x_get_rx_single(dev) ? NETOPT_ENABLE : NETOPT_DISABLE;
|
||||
return sizeof(netopt_enable_t);
|
||||
|
||||
case NETOPT_TX_POWER:
|
||||
assert(max_len >= sizeof(int16_t));
|
||||
*((int16_t*) val) = (int16_t)sx127x_get_tx_power(dev);
|
||||
*((int16_t *)val) = (int16_t)sx127x_get_tx_power(dev);
|
||||
return sizeof(int16_t);
|
||||
|
||||
case NETOPT_SYNCWORD:
|
||||
assert(max_len >= sizeof(uint8_t));
|
||||
*((uint8_t*) val) = (uint8_t) sx127x_get_syncword(dev);
|
||||
*((uint8_t *)val) = (uint8_t)sx127x_get_syncword(dev);
|
||||
return sizeof(uint8_t);
|
||||
|
||||
case NETOPT_RANDOM:
|
||||
assert(max_len >= sizeof(uint32_t));
|
||||
*((uint32_t*) val) = (uint32_t) sx127x_random(dev);
|
||||
*((uint32_t *)val) = (uint32_t)sx127x_random(dev);
|
||||
return sizeof(uint32_t);
|
||||
|
||||
case NETOPT_IQ_INVERT:
|
||||
assert(max_len >= sizeof(uint8_t));
|
||||
*((netopt_enable_t*) val) = sx127x_get_iq_invert(dev) ? NETOPT_ENABLE : NETOPT_DISABLE;
|
||||
*((netopt_enable_t *)val) = sx127x_get_iq_invert(dev) ? NETOPT_ENABLE : NETOPT_DISABLE;
|
||||
return sizeof(netopt_enable_t);
|
||||
|
||||
case NETOPT_RSSI:
|
||||
assert(max_len >= sizeof(int8_t));
|
||||
*((int8_t*) val) = sx127x_read_rssi(dev);
|
||||
*((int8_t *)val) = sx127x_read_rssi(dev);
|
||||
return sizeof(int8_t);
|
||||
|
||||
default:
|
||||
@ -354,22 +360,22 @@ static int _set(netdev_t *netdev, netopt_t opt, const void *val, size_t len)
|
||||
{
|
||||
(void)len; /* unused when compiled without debug, assert empty */
|
||||
|
||||
sx127x_t *dev = (sx127x_t*) netdev;
|
||||
sx127x_t *dev = (sx127x_t *)netdev;
|
||||
int res = -ENOTSUP;
|
||||
|
||||
if (dev == NULL) {
|
||||
return -ENODEV;
|
||||
}
|
||||
|
||||
switch(opt) {
|
||||
switch (opt) {
|
||||
case NETOPT_STATE:
|
||||
assert(len == sizeof(netopt_state_t));
|
||||
return _set_state(dev, *((const netopt_state_t*) val));
|
||||
return _set_state(dev, *((const netopt_state_t *)val));
|
||||
|
||||
case NETOPT_DEVICE_TYPE:
|
||||
assert(len <= sizeof(uint16_t));
|
||||
/* Only LoRa modem is supported for the moment */
|
||||
if (*(const uint16_t*) val == NETDEV_TYPE_LORA) {
|
||||
if (*(const uint16_t *)val == NETDEV_TYPE_LORA) {
|
||||
sx127x_set_modem(dev, SX127X_MODEM_LORA);
|
||||
return sizeof(uint16_t);
|
||||
}
|
||||
@ -379,7 +385,7 @@ static int _set(netdev_t *netdev, netopt_t opt, const void *val, size_t len)
|
||||
|
||||
case NETOPT_CHANNEL_FREQUENCY:
|
||||
assert(len <= sizeof(uint32_t));
|
||||
sx127x_set_channel(dev, *((const uint32_t*) val));
|
||||
sx127x_set_channel(dev, *((const uint32_t *)val));
|
||||
return sizeof(uint32_t);
|
||||
|
||||
case NETOPT_BANDWIDTH:
|
||||
@ -414,42 +420,42 @@ static int _set(netdev_t *netdev, netopt_t opt, const void *val, size_t len)
|
||||
|
||||
case NETOPT_MAX_PDU_SIZE:
|
||||
assert(len <= sizeof(uint8_t));
|
||||
sx127x_set_max_payload_len(dev, *((const uint8_t*) val));
|
||||
sx127x_set_max_payload_len(dev, *((const uint8_t *)val));
|
||||
return sizeof(uint8_t);
|
||||
|
||||
case NETOPT_INTEGRITY_CHECK:
|
||||
assert(len <= sizeof(netopt_enable_t));
|
||||
sx127x_set_crc(dev, *((const netopt_enable_t*) val) ? true : false);
|
||||
sx127x_set_crc(dev, *((const netopt_enable_t *)val) ? true : false);
|
||||
return sizeof(netopt_enable_t);
|
||||
|
||||
case NETOPT_CHANNEL_HOP:
|
||||
assert(len <= sizeof(netopt_enable_t));
|
||||
sx127x_set_freq_hop(dev, *((const netopt_enable_t*) val) ? true : false);
|
||||
sx127x_set_freq_hop(dev, *((const netopt_enable_t *)val) ? true : false);
|
||||
return sizeof(netopt_enable_t);
|
||||
|
||||
case NETOPT_CHANNEL_HOP_PERIOD:
|
||||
assert(len <= sizeof(uint8_t));
|
||||
sx127x_set_hop_period(dev, *((const uint8_t*) val));
|
||||
sx127x_set_hop_period(dev, *((const uint8_t *)val));
|
||||
return sizeof(uint8_t);
|
||||
|
||||
case NETOPT_SINGLE_RECEIVE:
|
||||
assert(len <= sizeof(netopt_enable_t));
|
||||
sx127x_set_rx_single(dev, *((const netopt_enable_t*) val) ? true : false);
|
||||
sx127x_set_rx_single(dev, *((const netopt_enable_t *)val) ? true : false);
|
||||
return sizeof(netopt_enable_t);
|
||||
|
||||
case NETOPT_RX_SYMBOL_TIMEOUT:
|
||||
assert(len <= sizeof(uint16_t));
|
||||
sx127x_set_symbol_timeout(dev, *((const uint16_t*) val));
|
||||
sx127x_set_symbol_timeout(dev, *((const uint16_t *)val));
|
||||
return sizeof(uint16_t);
|
||||
|
||||
case NETOPT_RX_TIMEOUT:
|
||||
assert(len <= sizeof(uint32_t));
|
||||
sx127x_set_rx_timeout(dev, *((const uint32_t*) val));
|
||||
sx127x_set_rx_timeout(dev, *((const uint32_t *)val));
|
||||
return sizeof(uint32_t);
|
||||
|
||||
case NETOPT_TX_TIMEOUT:
|
||||
assert(len <= sizeof(uint32_t));
|
||||
sx127x_set_tx_timeout(dev, *((const uint32_t*) val));
|
||||
sx127x_set_tx_timeout(dev, *((const uint32_t *)val));
|
||||
return sizeof(uint32_t);
|
||||
|
||||
case NETOPT_TX_POWER:
|
||||
@ -464,27 +470,27 @@ static int _set(netdev_t *netdev, netopt_t opt, const void *val, size_t len)
|
||||
|
||||
case NETOPT_FIXED_HEADER:
|
||||
assert(len <= sizeof(netopt_enable_t));
|
||||
sx127x_set_fixed_header_len_mode(dev, *((const netopt_enable_t*) val) ? true : false);
|
||||
sx127x_set_fixed_header_len_mode(dev, *((const netopt_enable_t *)val) ? true : false);
|
||||
return sizeof(netopt_enable_t);
|
||||
|
||||
case NETOPT_PDU_SIZE:
|
||||
assert(len <= sizeof(uint16_t));
|
||||
sx127x_set_payload_length(dev, *((const uint16_t*) val));
|
||||
sx127x_set_payload_length(dev, *((const uint16_t *)val));
|
||||
return sizeof(uint16_t);
|
||||
|
||||
case NETOPT_PREAMBLE_LENGTH:
|
||||
assert(len <= sizeof(uint16_t));
|
||||
sx127x_set_preamble_length(dev, *((const uint16_t*) val));
|
||||
sx127x_set_preamble_length(dev, *((const uint16_t *)val));
|
||||
return sizeof(uint16_t);
|
||||
|
||||
case NETOPT_SYNCWORD:
|
||||
assert(len <= sizeof(uint8_t));
|
||||
sx127x_set_syncword(dev, *((uint8_t*) val));
|
||||
sx127x_set_syncword(dev, *((uint8_t *)val));
|
||||
return sizeof(uint8_t);
|
||||
|
||||
case NETOPT_IQ_INVERT:
|
||||
assert(len <= sizeof(netopt_enable_t));
|
||||
sx127x_set_iq_invert(dev, *((const netopt_enable_t*) val) ? true : false);
|
||||
sx127x_set_iq_invert(dev, *((const netopt_enable_t *)val) ? true : false);
|
||||
return sizeof(bool);
|
||||
|
||||
default:
|
||||
@ -532,9 +538,11 @@ static int _set_state(sx127x_t *dev, netopt_state_t state)
|
||||
static int _get_state(sx127x_t *dev, void *val)
|
||||
{
|
||||
uint8_t op_mode;
|
||||
|
||||
op_mode = sx127x_get_op_mode(dev);
|
||||
netopt_state_t state = NETOPT_STATE_OFF;
|
||||
switch(op_mode) {
|
||||
|
||||
switch (op_mode) {
|
||||
case SX127X_RF_OPMODE_SLEEP:
|
||||
state = NETOPT_STATE_SLEEP;
|
||||
break;
|
||||
@ -569,8 +577,8 @@ static int _get_state(sx127x_t *dev, void *val)
|
||||
|
||||
void _on_dio0_irq(void *arg)
|
||||
{
|
||||
sx127x_t *dev = (sx127x_t *) arg;
|
||||
netdev_t *netdev = (netdev_t*) &dev->netdev;
|
||||
sx127x_t *dev = (sx127x_t *)arg;
|
||||
netdev_t *netdev = (netdev_t *)&dev->netdev;
|
||||
|
||||
switch (dev->settings.state) {
|
||||
case SX127X_RF_RX_RUNNING:
|
||||
@ -604,8 +612,8 @@ void _on_dio0_irq(void *arg)
|
||||
void _on_dio1_irq(void *arg)
|
||||
{
|
||||
/* Get interrupt context */
|
||||
sx127x_t *dev = (sx127x_t *) arg;
|
||||
netdev_t *netdev = (netdev_t*) &dev->netdev;
|
||||
sx127x_t *dev = (sx127x_t *)arg;
|
||||
netdev_t *netdev = (netdev_t *)&dev->netdev;
|
||||
|
||||
switch (dev->settings.state) {
|
||||
case SX127X_RF_RX_RUNNING:
|
||||
@ -644,8 +652,8 @@ void _on_dio1_irq(void *arg)
|
||||
void _on_dio2_irq(void *arg)
|
||||
{
|
||||
/* Get interrupt context */
|
||||
sx127x_t *dev = (sx127x_t *) arg;
|
||||
netdev_t *netdev = (netdev_t*) dev;
|
||||
sx127x_t *dev = (sx127x_t *)arg;
|
||||
netdev_t *netdev = (netdev_t *)dev;
|
||||
|
||||
switch (dev->settings.state) {
|
||||
case SX127X_RF_RX_RUNNING:
|
||||
@ -697,8 +705,8 @@ void _on_dio2_irq(void *arg)
|
||||
void _on_dio3_irq(void *arg)
|
||||
{
|
||||
/* Get interrupt context */
|
||||
sx127x_t *dev = (sx127x_t *) arg;
|
||||
netdev_t *netdev = (netdev_t *) dev;
|
||||
sx127x_t *dev = (sx127x_t *)arg;
|
||||
netdev_t *netdev = (netdev_t *)dev;
|
||||
|
||||
switch (dev->settings.state) {
|
||||
case SX127X_RF_CAD:
|
||||
|
||||
@ -67,6 +67,7 @@ int lora_setup_cmd(int argc, char **argv)
|
||||
/* Check bandwidth value */
|
||||
int bw = atoi(argv[1]);
|
||||
uint8_t lora_bw;
|
||||
|
||||
switch (bw) {
|
||||
case 125:
|
||||
puts("setup: setting 125KHz bandwidth");
|
||||
@ -91,6 +92,7 @@ int lora_setup_cmd(int argc, char **argv)
|
||||
|
||||
/* Check spreading factor value */
|
||||
uint8_t lora_sf = atoi(argv[2]);
|
||||
|
||||
if (lora_sf < 7 || lora_sf > 12) {
|
||||
puts("[Error] setup: invalid spreading factor value given");
|
||||
return -1;
|
||||
@ -98,6 +100,7 @@ int lora_setup_cmd(int argc, char **argv)
|
||||
|
||||
/* Check coding rate value */
|
||||
int cr = atoi(argv[3]);
|
||||
|
||||
if (cr < 5 || cr > 8) {
|
||||
puts("[Error ]setup: invalid coding rate value given");
|
||||
return -1;
|
||||
@ -106,6 +109,7 @@ int lora_setup_cmd(int argc, char **argv)
|
||||
|
||||
/* Configure radio device */
|
||||
netdev_t *netdev = (netdev_t *)&sx127x;
|
||||
|
||||
netdev->driver->set(netdev, NETOPT_BANDWIDTH,
|
||||
&lora_bw, sizeof(lora_bw));
|
||||
netdev->driver->set(netdev, NETOPT_SPREADING_FACTOR,
|
||||
@ -125,6 +129,7 @@ int random_cmd(int argc, char **argv)
|
||||
|
||||
netdev_t *netdev = (netdev_t *)&sx127x;
|
||||
uint32_t rand;
|
||||
|
||||
netdev->driver->get(netdev, NETOPT_RANDOM, &rand, sizeof(rand));
|
||||
printf("random: number from sx127x: %u\n",
|
||||
(unsigned int)rand);
|
||||
@ -245,6 +250,7 @@ int send_cmd(int argc, char **argv)
|
||||
};
|
||||
|
||||
netdev_t *netdev = (netdev_t *)&sx127x;
|
||||
|
||||
if (netdev->driver->send(netdev, &iolist) == -ENOTSUP) {
|
||||
puts("Cannot send: radio is still transmitting");
|
||||
}
|
||||
@ -260,12 +266,15 @@ int listen_cmd(int argc, char **argv)
|
||||
netdev_t *netdev = (netdev_t *)&sx127x;
|
||||
/* Switch to continuous listen mode */
|
||||
const netopt_enable_t single = false;
|
||||
|
||||
netdev->driver->set(netdev, NETOPT_SINGLE_RECEIVE, &single, sizeof(single));
|
||||
const uint32_t timeout = 0;
|
||||
|
||||
netdev->driver->set(netdev, NETOPT_RX_TIMEOUT, &timeout, sizeof(timeout));
|
||||
|
||||
/* Switch to RX state */
|
||||
netopt_state_t state = NETOPT_STATE_RX;
|
||||
|
||||
netdev->driver->set(netdev, NETOPT_STATE, &state, sizeof(state));
|
||||
|
||||
printf("Listen mode set\n");
|
||||
@ -282,6 +291,7 @@ int syncword_cmd(int argc, char **argv)
|
||||
|
||||
netdev_t *netdev = (netdev_t *)&sx127x;
|
||||
uint8_t syncword;
|
||||
|
||||
if (strstr(argv[1], "get") != NULL) {
|
||||
netdev->driver->get(netdev, NETOPT_SYNCWORD, &syncword,
|
||||
sizeof(syncword));
|
||||
@ -315,6 +325,7 @@ int channel_cmd(int argc, char **argv)
|
||||
|
||||
netdev_t *netdev = (netdev_t *)&sx127x;
|
||||
uint32_t chan;
|
||||
|
||||
if (strstr(argv[1], "get") != NULL) {
|
||||
netdev->driver->get(netdev, NETOPT_CHANNEL_FREQUENCY, &chan,
|
||||
sizeof(chan));
|
||||
@ -349,6 +360,7 @@ int rx_timeout_cmd(int argc, char **argv)
|
||||
|
||||
netdev_t *netdev = (netdev_t *)&sx127x;
|
||||
uint16_t rx_timeout;
|
||||
|
||||
if (strstr(argv[1], "set") != NULL) {
|
||||
if (argc < 3) {
|
||||
puts("usage: rx_timeout set <rx_timeout>");
|
||||
@ -372,15 +384,18 @@ int reset_cmd(int argc, char **argv)
|
||||
(void)argc;
|
||||
(void)argv;
|
||||
netdev_t *netdev = (netdev_t *)&sx127x;
|
||||
|
||||
puts("resetting sx127x...");
|
||||
netopt_state_t state = NETOPT_STATE_RESET;
|
||||
|
||||
netdev->driver->set(netdev, NETOPT_STATE, &state, sizeof(netopt_state_t));
|
||||
return 0;
|
||||
}
|
||||
|
||||
static void _set_opt(netdev_t *netdev, netopt_t opt, bool val, char* str_help)
|
||||
static void _set_opt(netdev_t *netdev, netopt_t opt, bool val, char *str_help)
|
||||
{
|
||||
netopt_enable_t en = val ? NETOPT_ENABLE : NETOPT_DISABLE;
|
||||
|
||||
netdev->driver->set(netdev, opt, &en, sizeof(en));
|
||||
printf("Successfully ");
|
||||
if (val) {
|
||||
@ -395,12 +410,14 @@ static void _set_opt(netdev_t *netdev, netopt_t opt, bool val, char* str_help)
|
||||
int crc_cmd(int argc, char **argv)
|
||||
{
|
||||
netdev_t *netdev = (netdev_t *)&sx127x;
|
||||
|
||||
if (argc < 3 || strcmp(argv[1], "set") != 0) {
|
||||
printf("usage: %s set <1|0>\n", argv[0]);
|
||||
return 1;
|
||||
}
|
||||
|
||||
int tmp = atoi(argv[2]);
|
||||
|
||||
_set_opt(netdev, NETOPT_INTEGRITY_CHECK, tmp, "CRC check");
|
||||
return 0;
|
||||
}
|
||||
@ -408,12 +425,14 @@ int crc_cmd(int argc, char **argv)
|
||||
int implicit_cmd(int argc, char **argv)
|
||||
{
|
||||
netdev_t *netdev = (netdev_t *)&sx127x;
|
||||
|
||||
if (argc < 3 || strcmp(argv[1], "set") != 0) {
|
||||
printf("usage: %s set <1|0>\n", argv[0]);
|
||||
return 1;
|
||||
}
|
||||
|
||||
int tmp = atoi(argv[2]);
|
||||
|
||||
_set_opt(netdev, NETOPT_FIXED_HEADER, tmp, "implicit header");
|
||||
return 0;
|
||||
}
|
||||
@ -421,12 +440,14 @@ int implicit_cmd(int argc, char **argv)
|
||||
int payload_cmd(int argc, char **argv)
|
||||
{
|
||||
netdev_t *netdev = (netdev_t *)&sx127x;
|
||||
|
||||
if (argc < 3 || strcmp(argv[1], "set") != 0) {
|
||||
printf("usage: %s set <payload length>\n", argv[0]);
|
||||
return 1;
|
||||
}
|
||||
|
||||
uint16_t tmp = atoi(argv[2]);
|
||||
|
||||
netdev->driver->set(netdev, NETOPT_PDU_SIZE, &tmp, sizeof(tmp));
|
||||
printf("Successfully set payload to %i\n", tmp);
|
||||
return 0;
|
||||
@ -444,7 +465,7 @@ static const shell_command_t shell_commands[] = {
|
||||
{ "register", "Get/Set value(s) of registers of sx127x", register_cmd },
|
||||
{ "send", "Send raw payload string", send_cmd },
|
||||
{ "listen", "Start raw payload listener", listen_cmd },
|
||||
{ "reset", "Reset the sx127x device", reset_cmd},
|
||||
{ "reset", "Reset the sx127x device", reset_cmd },
|
||||
{ NULL, NULL, NULL }
|
||||
};
|
||||
|
||||
@ -502,6 +523,7 @@ void *_recv_thread(void *arg)
|
||||
(void)arg;
|
||||
|
||||
static msg_t _msg_q[SX127X_LORA_MSG_QUEUE];
|
||||
|
||||
msg_init_queue(_msg_q, SX127X_LORA_MSG_QUEUE);
|
||||
|
||||
while (1) {
|
||||
@ -521,6 +543,7 @@ int main(void)
|
||||
{
|
||||
sx127x.params = sx127x_params[0];
|
||||
netdev_t *netdev = (netdev_t *)&sx127x;
|
||||
|
||||
netdev->driver = &sx127x_driver;
|
||||
|
||||
if (netdev->driver->init(netdev) < 0) {
|
||||
@ -542,6 +565,7 @@ int main(void)
|
||||
/* start the shell */
|
||||
puts("Initialization successful - starting the shell now");
|
||||
char line_buf[SHELL_DEFAULT_BUFSIZE];
|
||||
|
||||
shell_run(shell_commands, line_buf, SHELL_DEFAULT_BUFSIZE);
|
||||
|
||||
return 0;
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user