Simplify DAC ISR interface: now afsk_dac_isr() return the next sample.
[bertos.git] / bertos / net / afsk.h
index 020b2f9618a5f0f02f7bf89a0166f67d0f108a58..bd82e66012d72eb9d5d5163f00dfcb3bfdc0d195 100644 (file)
@@ -81,6 +81,10 @@ typedef struct Hdlc
        bool rxstart;       ///< True if an HDLC_FLAG char has been found in the bitstream.
 } Hdlc;
 
+/**
+ * RX FIFO buffer full error.
+ */
+#define AFSK_RXFIFO_OVERRUN BV(0)
 
 /**
  * AFSK1200 modem context.
@@ -165,6 +169,12 @@ typedef struct Afsk
        /** True while modem sends data */
        volatile bool sending;
 
+       /**
+        * AFSK modem status.
+        * If 0 all is ok, otherwise errors are present.
+        */
+       volatile int status;
+
        /** Hdlc context */
        Hdlc hdlc;
 
@@ -195,7 +205,7 @@ INLINE Afsk *AFSK_CAST(KFile *fd)
 
 
 void afsk_adc_isr(Afsk *af, int8_t sample);
-void afsk_dac_isr(Afsk *af);
+uint8_t afsk_dac_isr(Afsk *af);
 void afsk_init(Afsk *af, int adc_ch, int dac_ch);