Simplify afsk testing harness.
authorbatt <batt@38d2e660-2303-0410-9eaa-f027e97ec537>
Sat, 10 Oct 2009 13:01:56 +0000 (13:01 +0000)
committerbatt <batt@38d2e660-2303-0410-9eaa-f027e97ec537>
Sat, 10 Oct 2009 13:01:56 +0000 (13:01 +0000)
git-svn-id: https://src.develer.com/svnoss/bertos/trunk@3072 38d2e660-2303-0410-9eaa-f027e97ec537

bertos/hw/hw_afsk.h
bertos/net/afsk_test.c

index 6737edb4f2eba0300ad3cab34fc538c800f444a4..ec9b8be2e71a8bc62e138c58221050e17a1528b0 100644 (file)
 
 #include "cfg/cfg_arch.h"
 
-#if !(ARCH & ARCH_UNITTEST)
-       #warning TODO:This is an example implementation, you must implement it!
+#warning TODO:This is an example implementation, you must implement it!
 
-       /**
-        * Initialize the specified channel of the ADC for AFSK needs.
-        * The adc should be configured to have a continuos stream of convertions.
-        * For every convertion there must be an ISR that read the sample
-        * and call afsk_adc_isr(), passing the context and the sample.
-        *
-        * \param ch channel to be used for AFSK demodulation.
-        * \param ctx AFSK context (\see Afsk). This parameter must be saved and
-        *            passed back to afsk_adc_isr() for every convertion.
-        */
-       #define AFSK_ADC_INIT(ch, ctx) do { (void)ch, (void)ctx; } while (0)
-
-       #define AFSK_STROBE_INIT() do { /* Implement me */ } while (0)
-       #define AFSK_STROBE_ON()   do { /* Implement me */ } while (0)
-       #define AFSK_STROBE_OFF()  do { /* Implement me */ } while (0)
-
-       /**
-        * Initialize the specified channel of the DAC for AFSK needs.
-        * The DAC has to be configured in order to call an ISR for every sample sent.
-        * The DAC doesn't have to start the IRQ immediatly but have to wait
-        * the AFSK driver to call AFSK_DAC_IRQ_START().
-        * The ISR must then call afsk_dac_isr() passing the AFSK context.
-        * \param ch DAC channel to be used for AFSK modulation.
-        * \param ctx AFSK context (\see Afsk).  This parameter must be saved and
-        *             passed back to afsk_dac_isr() for every convertion.
-        */
-       #define AFSK_DAC_INIT(ch, ctx)   do { (void)ch, (void)ctx; } while (0)
-
-       /**
-        * Start DAC convertions on channel \a ch.
-        * \param ch DAC channel.
-        */
-       #define AFSK_DAC_IRQ_START(ch)   do { (void)ch; /* Implement me */ } while (0)
-
-       /**
-        * Stop DAC convertions on channel \a ch.
-        * \param ch DAC channel.
-        */
-       #define AFSK_DAC_IRQ_STOP(ch)    do { (void)ch; /* Implement me */ } while (0)
-
-#else /* (ARCH & ARCH_UNITTEST) */
-
-       #include <cfg/compiler.h>
-
-       /* For test */
-       extern bool afsk_tx_test;
+/**
+ * Initialize the specified channel of the ADC for AFSK needs.
+ * The adc should be configured to have a continuos stream of convertions.
+ * For every convertion there must be an ISR that read the sample
+ * and call afsk_adc_isr(), passing the context and the sample.
+ *
+ * \param ch channel to be used for AFSK demodulation.
+ * \param ctx AFSK context (\see Afsk). This parameter must be saved and
+ *            passed back to afsk_adc_isr() for every convertion.
+ */
+#define AFSK_ADC_INIT(ch, ctx) do { (void)ch, (void)ctx; } while (0)
 
-       #define AFSK_ADC_INIT(ch, ctx)    do { (void)ch, (void)ctx; } while (0)
+#define AFSK_STROBE_INIT() do { /* Implement me */ } while (0)
+#define AFSK_STROBE_ON()   do { /* Implement me */ } while (0)
+#define AFSK_STROBE_OFF()  do { /* Implement me */ } while (0)
 
-       #define AFSK_STROBE_INIT()  /* Implement me */
-       #define AFSK_STROBE_ON()    /* Implement me */
-       #define AFSK_STROBE_OFF()   /* Implement me */
+/**
+ * Initialize the specified channel of the DAC for AFSK needs.
+ * The DAC has to be configured in order to call an ISR for every sample sent.
+ * The DAC doesn't have to start the IRQ immediatly but have to wait
+ * the AFSK driver to call AFSK_DAC_IRQ_START().
+ * The ISR must then call afsk_dac_isr() passing the AFSK context.
+ * \param ch DAC channel to be used for AFSK modulation.
+ * \param ctx AFSK context (\see Afsk).  This parameter must be saved and
+ *             passed back to afsk_dac_isr() for every convertion.
+ */
+#define AFSK_DAC_INIT(ch, ctx)   do { (void)ch, (void)ctx; } while (0)
 
-       #define AFSK_DAC_INIT(ch, ctx)   do { (void)ch, (void)ctx; } while (0)
-       #define AFSK_DAC_IRQ_START(ch)   do { (void)ch; afsk_tx_test = true; } while (0)
-       #define AFSK_DAC_IRQ_STOP(ch)    do { (void)ch; afsk_tx_test = false; } while (0)
+/**
+ * Start DAC convertions on channel \a ch.
+ * \param ch DAC channel.
+ */
+#define AFSK_DAC_IRQ_START(ch)   do { (void)ch; /* Implement me */ } while (0)
 
-#endif /* !(ARCH & ARCH_UNITTEST) */
+/**
+ * Stop DAC convertions on channel \a ch.
+ * \param ch DAC channel.
+ */
+#define AFSK_DAC_IRQ_STOP(ch)    do { (void)ch; /* Implement me */ } while (0)
 
 #endif /* HW_AFSK_H */
index 09c1ffdb1d6b9eccb65459e12ed0af73e2375054..9aa5083056187f2a336f1c8d857f7aa4f7b6d4a1 100644 (file)
@@ -61,12 +61,9 @@ FILE *fp_adc;
 FILE *fp_dac;
 uint32_t data_size;
 uint32_t data_written;
-bool afsk_tx_test;
 Afsk afsk_fd;
 AX25Ctx ax25;
 
-int8_t afsk_adc_val;
-
 int msg_cnt;
 static void message_hook(UNUSED_ARG(struct AX25Msg *, msg))
 {
@@ -183,12 +180,13 @@ int afsk_testRun(void)
 
        ax25_send(&ax25, AX25_CALL("abcdef", 0), AX25_CALL("123456", 1), buf, sizeof(buf));
 
-       while (afsk_tx_test)
+       do
        {
                int8_t val = afsk_dac_isr(&afsk_fd) - 128;
                ASSERT(fwrite(&val, 1, sizeof(val), fp_dac) == sizeof(val));
                data_written++;
        }
+       while (afsk_fd.sending);
 
        #define SND_DATASIZE_OFF 8
        #if CPU_AVR