// Copyright 2017 Rob Riggs // All rights reserved. #include "Digipeater.hpp" #include "Digipeater.h" #include "IOEventTask.h" void startDigipeaterTask(void* arg) { using mobilinkd::tnc::Digipeater; using mobilinkd::tnc::hdlc::IoFrame; auto digi = static_cast(arg); for(;;) { osEvent evt = osMessageGet(digipeaterQueueHandle, osWaitForever); if (evt.status != osEventMessage) continue; uint32_t cmd = evt.value.v; if (cmd < FLASH_BASE) // Assumes FLASH_BASE < SRAM_BASE. { // this is a command, not a packet. return; } digi->clean_history(); auto frame = static_cast(evt.value.p); if (!digi->can_repeat(frame)) continue; auto digi_frame = digi->rewrite_frame(frame); } } void beacon(void* arg) { } namespace mobilinkd { namespace tnc { }} // mobilinkd::tnc