Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Diff: radio_sx127x.cpp
- Revision:
- 10:db4e11a55bda
- Parent:
- 7:ea73b63b9eb1
- Child:
- 13:8ce61a1897ab
--- a/radio_sx127x.cpp Mon May 04 17:54:55 2020 -0700 +++ b/radio_sx127x.cpp Tue May 19 15:35:50 2020 -0700 @@ -452,7 +452,7 @@ radio.write_reg(REG_OCP, radio.RegOcp.octet); - return MENUMODE_REDRAW; + return false; } const value_item_t Radio::ocp_item = { _ITEM_VALUE, 4, ocp_print, ocp_write}; @@ -647,19 +647,50 @@ const button_item_t Radio::lora_cadrx_item = { _ITEM_BUTTON, "CADRX", cadrx_push }; +bool Radio::lora_ppm_offset_read() +{ + if (radio.type == SX1276) { + lora.RegModemConfig3.octet = radio.read_reg(REG_LR_MODEMCONFIG3); + return lora.RegModemConfig3.sx1276bits.LowDataRateOptimize; + } else if (radio.type == SX1272) { + lora.RegModemConfig.octet = radio.read_reg(REG_LR_MODEMCONFIG); + return lora.RegModemConfig.sx1272bits.LowDataRateOptimize; + } else + return false; +} + +bool Radio::lora_ppm_offset_push() +{ + if (radio.type == SX1276) { + lora.RegModemConfig3.octet = radio.read_reg(REG_LR_MODEMCONFIG3); + lora.RegModemConfig3.sx1276bits.LowDataRateOptimize ^= 1; + radio.write_reg(REG_LR_MODEMCONFIG3, lora.RegModemConfig3.octet); + return lora.RegModemConfig3.sx1276bits.LowDataRateOptimize; + } else if (radio.type == SX1272) { + lora.RegModemConfig.octet = radio.read_reg(REG_LR_MODEMCONFIG); + lora.RegModemConfig.sx1272bits.LowDataRateOptimize ^= 1; + radio.write_reg(REG_LR_MODEMCONFIG, lora.RegModemConfig.octet); + return lora.RegModemConfig.sx1272bits.LowDataRateOptimize; + } else + return false; +} + +const toggle_item_t Radio::lora_ppm_offset_item = { _ITEM_TOGGLE, "LowDatarateOptimize", NULL, lora_ppm_offset_read, lora_ppm_offset_push}; + const menu_t Radio::lora_menu[] = { { {FIRST_CHIP_MENU_ROW, 22}, "bw:", &lora_bw_item, FLAG_MSGTYPE_ALL }, { {FIRST_CHIP_MENU_ROW, 35}, "sf:", &lora_sf_item, FLAG_MSGTYPE_ALL }, { {FIRST_CHIP_MENU_ROW, 42}, "cr:", &lora_cr_item, FLAG_MSGTYPE_ALL }, { {FIRST_CHIP_MENU_ROW, 50}, "PreambleLength:", &lora_pblLen_item, FLAG_MSGTYPE_ALL }, - { {FIRST_CHIP_MENU_ROW+1, 1}, NULL, &lora_fixlen_item, FLAG_MSGTYPE_ALL }, - { {FIRST_CHIP_MENU_ROW+1, 10}, NULL, &lora_crcon_item, FLAG_MSGTYPE_ALL }, - { {FIRST_CHIP_MENU_ROW+1, 20}, NULL, &lora_iqinvTX_item, FLAG_MSGTYPE_ALL }, - { {FIRST_CHIP_MENU_ROW+1, 30}, NULL, &lora_iqinvRX_item, FLAG_MSGTYPE_ALL }, + { {FIRST_CHIP_MENU_ROW+1, 1}, NULL, &lora_fixlen_item, FLAG_MSGTYPE_ALL }, + { {FIRST_CHIP_MENU_ROW+1, 10}, NULL, &lora_crcon_item, FLAG_MSGTYPE_ALL }, + { {FIRST_CHIP_MENU_ROW+1, 20}, NULL, &lora_iqinvTX_item, FLAG_MSGTYPE_ALL }, + { {FIRST_CHIP_MENU_ROW+1, 30}, NULL, &lora_iqinvRX_item, FLAG_MSGTYPE_ALL }, { {FIRST_CHIP_MENU_ROW+1, 40}, "ppg:", &lora_ppg_item, FLAG_MSGTYPE_ALL }, + { {FIRST_CHIP_MENU_ROW+1, 48}, NULL, &lora_ppm_offset_item, FLAG_MSGTYPE_ALL }, - { {FIRST_CHIP_MENU_ROW+2, 1}, NULL, &lora_cadrx_item, FLAG_MSGTYPE_ALL }, + { {FIRST_CHIP_MENU_ROW+2, 1}, NULL, &lora_cadrx_item, FLAG_MSGTYPE_ALL }, { {0, 0}, NULL, NULL } };