Ethernet Voice Streaming code

Dependencies:   WIZnetInterface mbed

Fork of UDPEchoServer_TEST by eunkyoung kim

Files at this revision

API Documentation at this revision

Comitter:
WizLeo
Date:
Tue Aug 25 12:55:31 2015 +0000
Parent:
8:47e9d7df0582
Commit message:
Voice Streaming Project source code
; MIC / SPK / PWMOUT / UDP / Ethernet

Changed in this revision

SDFileSystem.lib Show diff for this revision Revisions of this file
main.cpp Show annotated file Show diff for this revision Revisions of this file
diff -r 47e9d7df0582 -r 2593d6010881 SDFileSystem.lib
--- a/SDFileSystem.lib	Fri Aug 21 03:34:25 2015 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-http://mbed.org/users/mbed_official/code/SDFileSystem/#c8f66dc765d4
diff -r 47e9d7df0582 -r 2593d6010881 main.cpp
--- a/main.cpp	Fri Aug 21 03:34:25 2015 +0000
+++ b/main.cpp	Tue Aug 25 12:55:31 2015 +0000
@@ -1,79 +1,120 @@
 #include "mbed.h"
 #include "EthernetInterface.h"
-#include "SDFileSystem.h"
-
 
 //#define UDPServer 1
-#define UDPClinet 1
+#define UDPClient 1
+
+#if defined (UDPServer)
+#define MAC     "\x00\x08\xDC\x11\x34\x78"
+#define IP      "192.168.99.100"
+#define MASK    "255.255.255.0"
+#define GATEWAY "192.168.99.1"
+
+#else // UDPClient
+#define MAC     "\x00\x08\xDC\x11\x34\x90"
+#define IP      "192.168.99.101"
+#define MASK    "255.255.255.0"
+#define GATEWAY "192.168.99.1"
+#endif
+
+#define MAX_BUF_SIZE 128
 
-#if defined(UDPServer)
-    #define MAC     "\x00\x08\xDC\x11\x34\x78"
-    #define IP      "192.168.99.100"
-    #define MASK    "255.255.255.0"
-    #define GATEWAY "192.168.99.1"
-#endif
-#if defined(UDPClinet)
-    #define MAC     "\x00\x08\xDC\x11\x34\x90"
-    #define IP      "192.168.99.101"
-    #define MASK    "255.255.255.0"
-    #define GATEWAY "192.168.99.1"
-#endif
+AnalogIn mic(A5);
+PwmOut trigger_o (D14);
+InterruptIn trigger_i (D15);
+DigitalIn button (A0);
+DigitalOut toggle (D0);
+DigitalOut sent (D1);
+PwmOut aout (D12);
+
+Serial pc (USBTX, USBRX);
+
+char ad_data_buf0[MAX_BUF_SIZE];
+char ad_data_buf1[MAX_BUF_SIZE];
+int i = 0;
+char buf_sel = 0;
+char send_udp = 0;
+
+int n; 
+
 const char* ECHO_SERVER_ADDRESS = "192.168.99.100";
 const int ECHO_SERVER_PORT = 3000;
 const int ECHO_CLIENT_PORT = 2000;
-int main (void) {
 
+void adcTickfunc() {
+# if defined (UDPServer)
+    if (buf_sel) aout.write((float)ad_data_buf1[i]/256*1.32);
+    else         aout.write((float)ad_data_buf0[i]/256*1.32);
+    i++;
+    
+    if (i == MAX_BUF_SIZE) i = MAX_BUF_SIZE - 1;
+# else
+    if (buf_sel == 0) ad_data_buf0[i] = mic.read_u16() >> 4;
+    else              ad_data_buf1[i] = mic.read_u16() >> 4;
+    i++;
+    
+    if (i == MAX_BUF_SIZE) { 
+        i = 0;
+        toggle = !toggle;
+        if (buf_sel) buf_sel = 0; else buf_sel = 1;
+        send_udp = 1;
+        sent = 1;
+    }
+#endif
+}    
+
+int main (void) {
+    // baud setting
+    pc.baud(460800);    
+    trigger_i.rise (&adcTickfunc);
+    
     EthernetInterface eth;
-    Serial (USBTX, USBRX);
     eth.init((uint8_t*)MAC,IP,MASK,GATEWAY);  //IP,mask,Gateway
-    printf("Connecting\n");
+    printf("\r\nConnecting");
     eth.connect();
-#if defined(UDPServer)
-    while (true) 
-    {
-        printf("\nServer IP Address is %s\n", eth.getIPAddress()); 
+#if defined UDPServer
+    while (true) {  
         UDPSocket server;
         server.bind(ECHO_SERVER_PORT);
-    
         Endpoint client;
-        char buffer[256];
+        
+        // Start acquisition (interval 100usec)
+        trigger_o.period_us(100);
+        trigger_o.write(0.50f);
+        
+        aout.period_us(50);
+             
         while (true) {
-            printf("\nWaiting for UDP packet...\n");
-            int n = server.receiveFrom(client, buffer, sizeof(buffer));
-            if (n <= 0) break;
-            // print received message to terminal
-            //buffer[n] = '\0';
-            
-            printf("Received packet from: %s\n", client.get_address());
-            printf("Packet contents : '%s'\n",buffer);
-            printf("Sending Packet back to Client\n");
-            server.sendTo(client, buffer, n);
+            if (buf_sel) n = server.receiveFrom(client, ad_data_buf0, sizeof(ad_data_buf0));
+            else         n = server.receiveFrom(client, ad_data_buf1, sizeof(ad_data_buf1));  
+            printf ("\r\n%d",i);
+            toggle = buf_sel;
+            //receive_udp = receive_udp + 1;
+            if (buf_sel) buf_sel = 0; else buf_sel = 1;
+            i = 0;
             if (n <= 0) break;
         }
     }
-#else   //Client
-    printf("\nClient IP Address is %s \n", eth.getIPAddress());
-    
+#else
+    printf("\r\nClient IP Address is %s", eth.getIPAddress());
     UDPSocket sock;
     sock.init();
     sock.bind(ECHO_CLIENT_PORT);
     Endpoint echo_server;
     echo_server.set_address(ECHO_SERVER_ADDRESS, ECHO_SERVER_PORT);
+    printf("\r\nip= %s,port=%d",echo_server.get_address(),echo_server.get_port());
     
-    char out_buffer[] = "Hello World";
-    printf("Sending  message '%s' to server (%s)\n",out_buffer,ECHO_SERVER_ADDRESS);
-    printf("ip= %s,port=%d\r\n",echo_server.get_address(),echo_server.get_port());
-    sock.sendTo(echo_server, out_buffer, sizeof(out_buffer));
+    // Start acquisition (interval 100usec)
+    trigger_o.period_us(100);
+    trigger_o.write(0.50f);
     
-    char in_buffer[256];
-   // int n = sock.receiveFrom(echo_server, in_buffer, sizeof(in_buffer));
-    
-   // in_buffer[n] = '\0';
-    //printf("Received message from server: '%s'\n", in_buffer);
-    
-    sock.close();
-    
-    eth.disconnect();
-    while(1) {}
+    while (1) {
+        if (send_udp) {
+            if (buf_sel == 1) sock.sendTo(echo_server, ad_data_buf0, MAX_BUF_SIZE);
+            else              sock.sendTo(echo_server, ad_data_buf1, MAX_BUF_SIZE);
+            send_udp = 0;
+            sent = 0;
+        }
+    }
 #endif
 }