diff --git a/RNode_Firmware.ino b/RNode_Firmware.ino index 4ee0619..eac60f3 100644 --- a/RNode_Firmware.ino +++ b/RNode_Firmware.ino @@ -995,9 +995,9 @@ void serialCallback(uint8_t sbyte) { if (sbyte == TFESC) sbyte = FESC; ESCAPE = false; } - npi = sbyte; - led_set_intensity(npi); - np_int_conf_save(npi); + sbyte; + led_set_intensity(sbyte); + np_int_conf_save(sbyte); } #endif diff --git a/Utilities.h b/Utilities.h index 07d63f2..7c9cbcc 100644 --- a/Utilities.h +++ b/Utilities.h @@ -117,8 +117,9 @@ uint8_t boot_vector = 0x00; } void led_init() { - if (EEPROM.read(eeprom_addr(ADDR_CONF_PSET)) != 0xFF) { - led_set_intensity(EEPROM.read(eeprom_addr(ADDR_CONF_PINT))); + if (EEPROM.read(eeprom_addr(ADDR_CONF_PSET)) == CONF_OK_BYTE) { + uint8_t int_val = EEPROM.read(eeprom_addr(ADDR_CONF_PINT)); + led_set_intensity(int_val); } } @@ -1181,11 +1182,11 @@ void promisc_disable() { #endif bool eeprom_info_locked() { - #if HAS_EEPROM - uint8_t lock_byte = EEPROM.read(eeprom_addr(ADDR_INFO_LOCK)); - #elif MCU_VARIANT == MCU_NRF52 - uint8_t lock_byte = eeprom_read(eeprom_addr(ADDR_INFO_LOCK)); - #endif + #if HAS_EEPROM + uint8_t lock_byte = EEPROM.read(eeprom_addr(ADDR_INFO_LOCK)); + #elif MCU_VARIANT == MCU_NRF52 + uint8_t lock_byte = eeprom_read(eeprom_addr(ADDR_INFO_LOCK)); + #endif if (lock_byte == INFO_LOCK_BYTE) { return true; } else { @@ -1250,31 +1251,31 @@ void eeprom_update(int mapped_addr, uint8_t byte) { EEPROM.write(mapped_addr, byte); EEPROM.commit(); } - #elif !HAS_EEPROM && MCU_VARIANT == MCU_NRF52 - // todo: clean up this implementation, writing one byte and syncing - // each time is really slow, but this is also suboptimal - uint8_t read_byte; - void* read_byte_ptr = &read_byte; - file.seek(mapped_addr); - file.read(read_byte_ptr, 1); - file.seek(mapped_addr); - if (read_byte != byte) { - file.write(byte); - } - written_bytes++; - - if ((mapped_addr - eeprom_addr(0)) == ADDR_INFO_LOCK) { - #if !HAS_EEPROM && MCU_VARIANT == MCU_NRF52 - // have to do a flush because we're only writing 1 byte and it syncs after 4 - eeprom_flush(); - #endif - } + #elif !HAS_EEPROM && MCU_VARIANT == MCU_NRF52 + // todo: clean up this implementation, writing one byte and syncing + // each time is really slow, but this is also suboptimal + uint8_t read_byte; + void* read_byte_ptr = &read_byte; + file.seek(mapped_addr); + file.read(read_byte_ptr, 1); + file.seek(mapped_addr); + if (read_byte != byte) { + file.write(byte); + } + written_bytes++; + + if ((mapped_addr - eeprom_addr(0)) == ADDR_INFO_LOCK) { + #if !HAS_EEPROM && MCU_VARIANT == MCU_NRF52 + // have to do a flush because we're only writing 1 byte and it syncs after 4 + eeprom_flush(); + #endif + } - if (written_bytes >= 4) { - file.close(); - file.open(EEPROM_FILE, FILE_O_WRITE); - written_bytes = 0; - } + if (written_bytes >= 4) { + file.close(); + file.open(EEPROM_FILE, FILE_O_WRITE); + written_bytes = 0; + } #endif } @@ -1416,16 +1417,16 @@ bool eeprom_checksum_valid() { void bt_conf_save(bool is_enabled) { if (is_enabled) { eeprom_update(eeprom_addr(ADDR_CONF_BT), BT_ENABLE_BYTE); - #if !HAS_EEPROM && MCU_VARIANT == MCU_NRF52 - // have to do a flush because we're only writing 1 byte and it syncs after 8 - eeprom_flush(); - #endif + #if !HAS_EEPROM && MCU_VARIANT == MCU_NRF52 + // have to do a flush because we're only writing 1 byte and it syncs after 8 + eeprom_flush(); + #endif } else { eeprom_update(eeprom_addr(ADDR_CONF_BT), 0x00); - #if !HAS_EEPROM && MCU_VARIANT == MCU_NRF52 - // have to do a flush because we're only writing 1 byte and it syncs after 8 - eeprom_flush(); - #endif + #if !HAS_EEPROM && MCU_VARIANT == MCU_NRF52 + // have to do a flush because we're only writing 1 byte and it syncs after 8 + eeprom_flush(); + #endif } } @@ -1442,7 +1443,7 @@ void db_conf_save(uint8_t val) { } void np_int_conf_save(uint8_t p_int) { - eeprom_update(eeprom_addr(ADDR_CONF_PSET), 0x01); + eeprom_update(eeprom_addr(ADDR_CONF_PSET), CONF_OK_BYTE); eeprom_update(eeprom_addr(ADDR_CONF_PINT), p_int); }