fix KISS TNC

This commit is contained in:
morgan 2016-12-27 12:09:02 -08:00
parent ca5f4002ea
commit d365fee768
2 changed files with 9 additions and 20 deletions

View File

@ -11,11 +11,11 @@ uint16_t kissLen = 0;
// KISS equipment, and look if we have anything to relay along
void KISS::loop() {
static bool currentlySending = false;
if(afsk.decoder.read() || afsk.rxPacketCount()) {
if(afsk->decoder.read() || afsk->rxPacketCount()) {
// A true return means something was put onto the packet FIFO
// If we actually have data packets in the buffer, process them all now
while(afsk.rxPacketCount()) {
AFSK::Packet *packet = afsk.getRXPacket();
while(afsk->rxPacketCount()) {
AFSK::Packet *packet = afsk->getRXPacket();
if(packet) {
writePacket(packet);
AFSK::PacketBuffer::freePacket(packet);
@ -34,7 +34,7 @@ void KISS::loop() {
packet->appendFCS(kissBuffer[i]);
}
packet->finish();
afsk.encoder.putPacket(packet);
afsk->encoder.putPacket(packet);
}
kissLen = 0;
inFrame = false;
@ -57,15 +57,15 @@ void KISS::loop() {
inFrame = true;
}
}
if(afsk.txReady()) {
if(afsk->txReady()) {
radio->setModeTransmit();
currentlySending = true;
if(!afsk.txStart()) { // Unable to start for some reason
if(!afsk->txStart()) { // Unable to start for some reason
radio->setModeReceive();
currentlySending = false;
}
}
if(currentlySending && afsk.encoder.isDone()) {
if(currentlySending && afsk->encoder.isDone()) {
radio->setModeReceive();
currentlySending = false;
}

View File

@ -11,26 +11,15 @@
class KISS {
public:
KISS(Stream *_io, HamShield *h, DDS *d) : io(_io), radio(h), dds(d) {}
KISS(Stream *_io, HamShield *h, DDS *d, AFSK *a) : io(_io), radio(h), dds(d), afsk(a) {}
bool read();
AFSK afsk;
void writePacket(AFSK::Packet *);
void loop();
inline void isr() {
static uint8_t tcnt = 0;
TIFR1 = _BV(ICF1); // Clear the timer flag
dds->clockTick();
if(++tcnt == (DDS_REFCLK_DEFAULT/9600)) {
//PORTD |= _BV(2); // Diagnostic pin (D2)
afsk.timer();
tcnt = 0;
}
//PORTD &= ~(_BV(2));
}
private:
Stream *io;
HamShield *radio;
DDS *dds;
AFSK *afsk;
};
#endif /* _KISS_H_ */