master
Mark Qvist 2 months ago
parent 7ce2ed6155
commit 4ab42c4269
  1. 30
      RNode_Firmware.ino

@ -529,9 +529,7 @@ void flush_queue(void) {
digitalWrite(PIN_TXSIG, HIGH); digitalWrite(PIN_TXSIG, HIGH);
queue_flushing = true; queue_flushing = true;
led_tx_on(); uint16_t processed = 0;
led_tx_on();
uint16_t processed = 0;
#if MCU_VARIANT == MCU_ESP32 || MCU_VARIANT == MCU_NRF52 #if MCU_VARIANT == MCU_ESP32 || MCU_VARIANT == MCU_NRF52
while (!fifo16_isempty(&packet_starts)) { while (!fifo16_isempty(&packet_starts)) {
@ -548,13 +546,11 @@ void flush_queue(void) {
tbuf[i] = packet_queue[pos]; tbuf[i] = packet_queue[pos];
} }
transmit(length); transmit(length); processed++;
processed++;
} }
} }
lora_receive(); lora_receive(); led_tx_off();
led_tx_off();
} }
queue_height = 0; queue_height = 0;
@ -682,7 +678,7 @@ void transmit(uint16_t size) {
} else { kiss_indicate_error(ERROR_TXFAILED); led_indicate_error(5); } } else { kiss_indicate_error(ERROR_TXFAILED); led_indicate_error(5); }
} }
void serialCallback(uint8_t sbyte) { void serial_callback(uint8_t sbyte) {
if (IN_FRAME && sbyte == FEND && command == CMD_DATA) { if (IN_FRAME && sbyte == FEND && command == CMD_DATA) {
IN_FRAME = false; IN_FRAME = false;
@ -691,21 +687,15 @@ void serialCallback(uint8_t sbyte) {
int16_t e = queue_cursor-1; if (e == -1) e = CONFIG_QUEUE_SIZE-1; int16_t e = queue_cursor-1; if (e == -1) e = CONFIG_QUEUE_SIZE-1;
uint16_t l; uint16_t l;
if (s != e) { if (s != e) { l = (s < e) ? e - s + 1 : CONFIG_QUEUE_SIZE - s + e + 1; }
l = (s < e) ? e - s + 1 : CONFIG_QUEUE_SIZE - s + e + 1; else { l = 1; }
} else {
l = 1;
}
if (l >= MIN_L) { if (l >= MIN_L) {
queue_height++; queue_height++;
fifo16_push(&packet_starts, s); fifo16_push(&packet_starts, s);
fifo16_push(&packet_lengths, l); fifo16_push(&packet_lengths, l);
current_packet_start = queue_cursor; current_packet_start = queue_cursor;
} }
} }
} else if (sbyte == FEND) { } else if (sbyte == FEND) {
@ -1641,7 +1631,7 @@ void serial_poll() {
while (!fifo_isempty(&serialFIFO)) { while (!fifo_isempty(&serialFIFO)) {
#endif #endif
char sbyte = fifo_pop(&serialFIFO); char sbyte = fifo_pop(&serialFIFO);
serialCallback(sbyte); serial_callback(sbyte);
} }
serial_polling = false; serial_polling = false;
@ -1703,7 +1693,6 @@ void serial_interrupt_init() {
// Buffer incoming frames every 1ms // Buffer incoming frames every 1ms
ICR3 = 16000; ICR3 = 16000;
TIMSK3 = _BV(ICIE3); TIMSK3 = _BV(ICIE3);
#elif MCU_VARIANT == MCU_2560 #elif MCU_VARIANT == MCU_2560
@ -1717,7 +1706,6 @@ void serial_interrupt_init() {
// Buffer incoming frames every 1ms // Buffer incoming frames every 1ms
ICR3 = 16000; ICR3 = 16000;
TIMSK3 = _BV(ICIE3); TIMSK3 = _BV(ICIE3);
#elif MCU_VARIANT == MCU_ESP32 #elif MCU_VARIANT == MCU_ESP32
@ -1727,7 +1715,5 @@ void serial_interrupt_init() {
} }
#if MCU_VARIANT == MCU_1284P || MCU_VARIANT == MCU_2560 #if MCU_VARIANT == MCU_1284P || MCU_VARIANT == MCU_2560
ISR(TIMER3_CAPT_vect) { ISR(TIMER3_CAPT_vect) { buffer_serial(); }
buffer_serial();
}
#endif #endif

Loading…
Cancel
Save