![](/media/cache/group/WIZnet_logo_001.jpg.50x50_q85.jpg)
Ethernet Voice Streaming code
Dependencies: WIZnetInterface mbed
Fork of UDPEchoServer_TEST by
Revision 9:2593d6010881, committed 2015-08-25
- 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 }