This commit is contained in:
Mark Qvist 2025-01-08 16:50:29 +01:00
parent ae47b89b53
commit 254225e917
3 changed files with 4 additions and 49 deletions

View file

@ -59,16 +59,6 @@ char sbuf[128];
#endif
void setup() {
// TODO: Remove debug setup
pinMode(PIN_PREAMBLE, OUTPUT);
pinMode(PIN_HEADER, OUTPUT);
pinMode(PIN_DCD, OUTPUT);
pinMode(PIN_TXSIG, OUTPUT);
pinMode(PIN_DIFS, OUTPUT);
pinMode(PIN_CW, OUTPUT);
pinMode(PIN_FLUSH, OUTPUT);
///////////////////////////
#if MCU_VARIANT == MCU_ESP32
boot_seq();
EEPROM.begin(EEPROM_SIZE);
@ -524,10 +514,6 @@ bool queue_full() { return (queue_height >= CONFIG_QUEUE_MAX_LENGTH || queued_by
volatile bool queue_flushing = false;
void flush_queue(void) {
if (!queue_flushing) {
// TODO: Remove debug
digitalWrite(PIN_TXSIG, HIGH);
queue_flushing = true;
led_tx_on(); uint16_t processed = 0;
@ -1183,8 +1169,8 @@ void update_modem_status() {
portEXIT_CRITICAL();
#endif
if (carrier_detected) { dcd = true; digitalWrite(PIN_DCD, HIGH); /* TODO: Remove debug */ }
else { dcd = false; digitalWrite(PIN_DCD, LOW); /* TODO: Remove debug */ }
if (carrier_detected) { dcd = true; }
else { dcd = false; }
dcd_led = dcd;
if (dcd_led) { led_rx_on(); }
@ -1376,13 +1362,8 @@ void tx_queue_handler() {
cw_wait_target = csma_cw * csma_slot_ms;
}
// TODO: Remove metering signallers
if (difs_wait_start == -1) { digitalWrite(PIN_DIFS, LOW); }
if (cw_wait_start == -1) { digitalWrite(PIN_CW, LOW); } else { digitalWrite(PIN_CW, HIGH); }
////////////////////////////////
if (difs_wait_start == -1) { // DIFS wait not yet started
if (medium_free()) { difs_wait_start = millis(); digitalWrite(PIN_DIFS, HIGH); return; } // Set DIFS wait start time
if (medium_free()) { difs_wait_start = millis(); return; } // Set DIFS wait start time
else { return; } } // Medium not yet free, continue waiting
else { // We are waiting for DIFS or CW to pass
@ -1391,7 +1372,7 @@ void tx_queue_handler() {
if (millis() < difs_wait_start+difs_ms) { return; } // DIFS has not yet passed, continue waiting
else { // DIFS has passed, and we are now in CW wait
digitalWrite(PIN_DIFS, LOW);
if (cw_wait_start == -1) { cw_wait_start = millis(); digitalWrite(PIN_CW, HIGH); return; } // If we haven't started counting CW wait time, do it from now
if (cw_wait_start == -1) { cw_wait_start = millis(); return; } // If we haven't started counting CW wait time, do it from now
else { // If we are already counting CW wait time, add it to the counter
cw_wait_passed += millis()-cw_wait_start; cw_wait_start = millis();
if (cw_wait_passed < cw_wait_target) { return; } // Contention window wait time has not yet passed, continue waiting