From 868882f81e5a93f34ba0dff2ad5f7aa4fcd362fc Mon Sep 17 00:00:00 2001 From: Nigel Vander Houwen Date: Sun, 5 Jun 2016 11:53:49 -0700 Subject: [PATCH] Cleanup on AFSK-PacketTester example, verified working with current library and hardware v09 --- .../AFSK-PacketTester/AFSK-PacketTester.ino | 95 ++++++++----------- 1 file changed, 40 insertions(+), 55 deletions(-) diff --git a/examples/AFSK-PacketTester/AFSK-PacketTester.ino b/examples/AFSK-PacketTester/AFSK-PacketTester.ino index 3089bc7..47d9bf6 100644 --- a/examples/AFSK-PacketTester/AFSK-PacketTester.ino +++ b/examples/AFSK-PacketTester/AFSK-PacketTester.ino @@ -4,7 +4,6 @@ * */ - #define DDS_REFCLK_DEFAULT 9600 #include @@ -14,7 +13,6 @@ #define RESET_PIN A3 #define SWITCH_PIN 2 - HamShield radio; DDS dds; String messagebuff = ""; @@ -47,70 +45,61 @@ void setup() { Serial.println("HELLO"); } -String temp[1] = ""; - - void loop() { messagebuff = "KC7IBT,KC7IBT,:HAMSHIELD TEST"; prepMessage(); delay(10000); -} - +} void prepMessage() { - radio.setModeTransmit(); - delay(500); - origin_call = messagebuff.substring(0,messagebuff.indexOf(',')); // get originating callsign - destination_call = messagebuff.substring(messagebuff.indexOf(',')+1,messagebuff.indexOf(',',messagebuff.indexOf(',')+1)); // get the destination call - textmessage = messagebuff.substring(messagebuff.indexOf(":")+1); - - Serial.print("From: "); Serial.print(origin_call); Serial.print(" To: "); Serial.println(destination_call); Serial.println("Text: "); Serial.println(textmessage); + radio.setModeTransmit(); + delay(500); + origin_call = messagebuff.substring(0,messagebuff.indexOf(',')); // get originating callsign + destination_call = messagebuff.substring(messagebuff.indexOf(',')+1,messagebuff.indexOf(',',messagebuff.indexOf(',')+1)); // get the destination call + textmessage = messagebuff.substring(messagebuff.indexOf(":")+1); + + Serial.print("From: "); Serial.print(origin_call); Serial.print(" To: "); Serial.println(destination_call); Serial.println("Text: "); Serial.println(textmessage); - AFSK::Packet *packet = AFSK::PacketBuffer::makePacket(22 + 32); + AFSK::Packet *packet = AFSK::PacketBuffer::makePacket(22 + 32); - packet->start(); - packet->appendCallsign(origin_call.c_str(),0); - packet->appendCallsign(destination_call.c_str(),15,true); - packet->appendFCS(0x03); - packet->appendFCS(0xf0); - packet->print(textmessage); - packet->finish(); - - - bool ret = radio.afsk.putTXPacket(packet); + packet->start(); + packet->appendCallsign(origin_call.c_str(),0); + packet->appendCallsign(destination_call.c_str(),15,true); + packet->appendFCS(0x03); + packet->appendFCS(0xf0); + packet->print(textmessage); + packet->finish(); - if(radio.afsk.txReady()) { - Serial.println(F("txReady")); - radio.setModeTransmit(); - //delay(100); - if(radio.afsk.txStart()) { - Serial.println(F("txStart")); - } else { - radio.setModeReceive(); - } + bool ret = radio.afsk.putTXPacket(packet); + + if(radio.afsk.txReady()) { + Serial.println(F("txReady")); + radio.setModeTransmit(); + //delay(100); + if(radio.afsk.txStart()) { + Serial.println(F("txStart")); + } else { + radio.setModeReceive(); } - // Wait 2 seconds before we send our beacon again. - Serial.println("tick"); - // Wait up to 2.5 seconds to finish sending, and stop transmitter. - // TODO: This is hackery. - for(int i = 0; i < 500; i++) { - if(radio.afsk.encoder.isDone()) - break; - delay(50); - } - Serial.println("Done sending"); - delay(3000); - radio.setModeReceive(); -} - + } + // Wait 2 seconds before we send our beacon again. + Serial.println("tick"); + // Wait up to 2.5 seconds to finish sending, and stop transmitter. + // TODO: This is hackery. + for(int i = 0; i < 500; i++) { + if(radio.afsk.encoder.isDone()) + break; + delay(50); + } + Serial.println("Done sending"); + radio.setModeReceive(); +} ISR(TIMER2_OVF_vect) { TIFR2 = _BV(TOV2); static uint8_t tcnt = 0; if(++tcnt == 8) { - digitalWrite(2, HIGH); - dds.clockTick(); - digitalWrite(2, LOW); + dds.clockTick(); tcnt = 0; } } @@ -118,7 +107,6 @@ ISR(TIMER2_OVF_vect) { ISR(ADC_vect) { static uint8_t tcnt = 0; TIFR1 = _BV(ICF1); // Clear the timer flag - PORTD |= _BV(2); // Diagnostic pin (D2) dds.clockTick(); if(++tcnt == 1) { if(radio.afsk.encoder.isSending()) { @@ -126,7 +114,4 @@ ISR(ADC_vect) { } tcnt = 0; } - PORTD &= ~(_BV(2)); // Pin D2 off again } - -