mirror of
https://github.com/markqvist/RNode_Firmware.git
synced 2024-10-01 03:15:39 -04:00
commit
9dbba03a67
@ -363,7 +363,7 @@ void transmit(uint16_t size) {
|
|||||||
LoRa.beginPacket();
|
LoRa.beginPacket();
|
||||||
LoRa.write(header); written++;
|
LoRa.write(header); written++;
|
||||||
|
|
||||||
for (uint16_t i; i < size; i++) {
|
for (int i=0; i < size; i++) {
|
||||||
LoRa.write(tbuf[i]);
|
LoRa.write(tbuf[i]);
|
||||||
|
|
||||||
written++;
|
written++;
|
||||||
@ -400,7 +400,7 @@ void transmit(uint16_t size) {
|
|||||||
LoRa.beginPacket(size);
|
LoRa.beginPacket(size);
|
||||||
}
|
}
|
||||||
|
|
||||||
for (uint16_t i; i < size; i++) {
|
for (int i=0; i < size; i++) {
|
||||||
LoRa.write(tbuf[i]);
|
LoRa.write(tbuf[i]);
|
||||||
|
|
||||||
written++;
|
written++;
|
||||||
@ -422,7 +422,7 @@ void serialCallback(uint8_t sbyte) {
|
|||||||
|
|
||||||
if (!fifo16_isfull(&packet_starts) && queued_bytes < CONFIG_QUEUE_SIZE) {
|
if (!fifo16_isfull(&packet_starts) && queued_bytes < CONFIG_QUEUE_SIZE) {
|
||||||
uint16_t s = current_packet_start;
|
uint16_t s = current_packet_start;
|
||||||
uint16_t e = queue_cursor-1; if (e == -1) e = CONFIG_QUEUE_SIZE-1;
|
int e = queue_cursor-1; if (e == -1) e = CONFIG_QUEUE_SIZE-1;
|
||||||
uint16_t l;
|
uint16_t l;
|
||||||
|
|
||||||
if (s != e) {
|
if (s != e) {
|
||||||
@ -631,9 +631,9 @@ void serialCallback(uint8_t sbyte) {
|
|||||||
void updateModemStatus() {
|
void updateModemStatus() {
|
||||||
uint8_t status = LoRa.modemStatus();
|
uint8_t status = LoRa.modemStatus();
|
||||||
last_status_update = millis();
|
last_status_update = millis();
|
||||||
if (status & SIG_DETECT == SIG_DETECT) { stat_signal_detected = true; } else { stat_signal_detected = false; }
|
if ((status & SIG_DETECT) == SIG_DETECT) { stat_signal_detected = true; } else { stat_signal_detected = false; }
|
||||||
if (status & SIG_SYNCED == SIG_SYNCED) { stat_signal_synced = true; } else { stat_signal_synced = false; }
|
if ((status & SIG_SYNCED) == SIG_SYNCED) { stat_signal_synced = true; } else { stat_signal_synced = false; }
|
||||||
if (status & RX_ONGOING == RX_ONGOING) { stat_rx_ongoing = true; } else { stat_rx_ongoing = false; }
|
if ((status & RX_ONGOING) == RX_ONGOING) { stat_rx_ongoing = true; } else { stat_rx_ongoing = false; }
|
||||||
|
|
||||||
if (stat_signal_detected || stat_signal_synced || stat_rx_ongoing) {
|
if (stat_signal_detected || stat_signal_synced || stat_rx_ongoing) {
|
||||||
if (dcd_count < dcd_threshold) {
|
if (dcd_count < dcd_threshold) {
|
||||||
@ -805,7 +805,7 @@ void buffer_serial() {
|
|||||||
// Discard GPS data for now
|
// Discard GPS data for now
|
||||||
c = 0;
|
c = 0;
|
||||||
while (c < MAX_CYCLES && Serial1.available()) {
|
while (c < MAX_CYCLES && Serial1.available()) {
|
||||||
uint8_t void_c = Serial1.read();
|
Serial1.read();
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@ -849,4 +849,4 @@ void serial_interrupt_init() {
|
|||||||
ISR(TIMER3_CAPT_vect) {
|
ISR(TIMER3_CAPT_vect) {
|
||||||
buffer_serial();
|
buffer_serial();
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
42
Utilities.h
42
Utilities.h
@ -210,10 +210,10 @@ int8_t led_standby_direction = 0;
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
void escapedSerialWrite(uint8_t byte) {
|
void escapedSerialWrite(uint8_t vbyte) {
|
||||||
if (byte == FEND) { Serial.write(FESC); byte = TFEND; }
|
if (vbyte == FEND) { Serial.write(FESC); vbyte = TFEND; }
|
||||||
if (byte == FESC) { Serial.write(FESC); byte = TFESC; }
|
if (vbyte == FESC) { Serial.write(FESC); vbyte = TFESC; }
|
||||||
Serial.write(byte);
|
Serial.write(vbyte);
|
||||||
}
|
}
|
||||||
|
|
||||||
void kiss_indicate_reset() {
|
void kiss_indicate_reset() {
|
||||||
@ -327,10 +327,10 @@ void kiss_indicate_frequency() {
|
|||||||
Serial.write(FEND);
|
Serial.write(FEND);
|
||||||
}
|
}
|
||||||
|
|
||||||
void kiss_indicate_random(uint8_t byte) {
|
void kiss_indicate_random(uint8_t vbyte) {
|
||||||
Serial.write(FEND);
|
Serial.write(FEND);
|
||||||
Serial.write(CMD_RANDOM);
|
Serial.write(CMD_RANDOM);
|
||||||
Serial.write(byte);
|
Serial.write(vbyte);
|
||||||
Serial.write(FEND);
|
Serial.write(FEND);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -474,22 +474,22 @@ bool eeprom_info_locked() {
|
|||||||
|
|
||||||
void eeprom_dump_info() {
|
void eeprom_dump_info() {
|
||||||
for (int addr = ADDR_PRODUCT; addr <= ADDR_INFO_LOCK; addr++) {
|
for (int addr = ADDR_PRODUCT; addr <= ADDR_INFO_LOCK; addr++) {
|
||||||
uint8_t byte = EEPROM.read(eeprom_addr(addr));
|
uint8_t vbyte = EEPROM.read(eeprom_addr(addr));
|
||||||
escapedSerialWrite(byte);
|
escapedSerialWrite(vbyte);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void eeprom_dump_config() {
|
void eeprom_dump_config() {
|
||||||
for (int addr = ADDR_CONF_SF; addr <= ADDR_CONF_OK; addr++) {
|
for (int addr = ADDR_CONF_SF; addr <= ADDR_CONF_OK; addr++) {
|
||||||
uint8_t byte = EEPROM.read(eeprom_addr(addr));
|
uint8_t vbyte = EEPROM.read(eeprom_addr(addr));
|
||||||
escapedSerialWrite(byte);
|
escapedSerialWrite(vbyte);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void eeprom_dump_all() {
|
void eeprom_dump_all() {
|
||||||
for (int addr = 0; addr < EEPROM_RESERVED; addr++) {
|
for (int addr = 0; addr < EEPROM_RESERVED; addr++) {
|
||||||
uint8_t byte = EEPROM.read(eeprom_addr(addr));
|
uint8_t vbyte = EEPROM.read(eeprom_addr(addr));
|
||||||
escapedSerialWrite(byte);
|
escapedSerialWrite(vbyte);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -500,21 +500,21 @@ void kiss_dump_eeprom() {
|
|||||||
Serial.write(FEND);
|
Serial.write(FEND);
|
||||||
}
|
}
|
||||||
|
|
||||||
void eeprom_update(int mapped_addr, uint8_t byte) {
|
void eeprom_update(int mapped_addr, uint8_t vbyte) {
|
||||||
#if MCU_VARIANT == MCU_1284P || MCU_VARIANT == MCU_2560
|
#if MCU_VARIANT == MCU_1284P || MCU_VARIANT == MCU_2560
|
||||||
EEPROM.update(mapped_addr, byte);
|
EEPROM.update(mapped_addr, vbyte);
|
||||||
#elif MCU_VARIANT == MCU_ESP32
|
#elif MCU_VARIANT == MCU_ESP32
|
||||||
if (EEPROM.read(mapped_addr) != byte) {
|
if (EEPROM.read(mapped_addr) != vbyte) {
|
||||||
EEPROM.write(mapped_addr, byte);
|
EEPROM.write(mapped_addr, vbyte);
|
||||||
EEPROM.commit();
|
EEPROM.commit();
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void eeprom_write(uint8_t addr, uint8_t byte) {
|
void eeprom_write(int addr, uint8_t vbyte) {
|
||||||
if (!eeprom_info_locked() && addr >= 0 && addr < EEPROM_RESERVED) {
|
if (!eeprom_info_locked() && (addr >= 0) && (addr < EEPROM_RESERVED)) {
|
||||||
eeprom_update(eeprom_addr(addr), byte);
|
eeprom_update(eeprom_addr(addr), vbyte);
|
||||||
} else {
|
} else {
|
||||||
kiss_indicate_error(ERROR_EEPROM_LOCKED);
|
kiss_indicate_error(ERROR_EEPROM_LOCKED);
|
||||||
}
|
}
|
||||||
@ -565,8 +565,8 @@ bool eeprom_hwrev_valid() {
|
|||||||
bool eeprom_checksum_valid() {
|
bool eeprom_checksum_valid() {
|
||||||
char *data = (char*)malloc(CHECKSUMMED_SIZE);
|
char *data = (char*)malloc(CHECKSUMMED_SIZE);
|
||||||
for (uint8_t i = 0; i < CHECKSUMMED_SIZE; i++) {
|
for (uint8_t i = 0; i < CHECKSUMMED_SIZE; i++) {
|
||||||
char byte = EEPROM.read(eeprom_addr(i));
|
char vbyte = EEPROM.read(eeprom_addr(i));
|
||||||
data[i] = byte;
|
data[i] = vbyte;
|
||||||
}
|
}
|
||||||
|
|
||||||
unsigned char *hash = MD5::make_hash(data, CHECKSUMMED_SIZE);
|
unsigned char *hash = MD5::make_hash(data, CHECKSUMMED_SIZE);
|
||||||
|
Loading…
Reference in New Issue
Block a user