Data sendback over ethernet from mbed
Dependencies: EthernetInterface FastAnalogIn mbed-rtos mbed
Fork of Ananlog_in_test by
main.cpp@0:e066babe3c39, 2014-10-21 (annotated)
- Committer:
- michaelcoe
- Date:
- Tue Oct 21 19:53:05 2014 +0000
- Revision:
- 0:e066babe3c39
- Child:
- 1:27168b548705
Commit code for testing
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
michaelcoe | 0:e066babe3c39 | 1 | #include "mbed.h" |
michaelcoe | 0:e066babe3c39 | 2 | #include "FastAnalogIn.h" |
michaelcoe | 0:e066babe3c39 | 3 | #include "EthernetInterface.h" |
michaelcoe | 0:e066babe3c39 | 4 | |
michaelcoe | 0:e066babe3c39 | 5 | AnalogIn input1(p15); |
michaelcoe | 0:e066babe3c39 | 6 | AnalogIn input2(p16); |
michaelcoe | 0:e066babe3c39 | 7 | AnalogIn input3(p17); |
michaelcoe | 0:e066babe3c39 | 8 | AnalogIn input4(p18); |
michaelcoe | 0:e066babe3c39 | 9 | DigitalOut led1(LED1); |
michaelcoe | 0:e066babe3c39 | 10 | Timer t; |
michaelcoe | 0:e066babe3c39 | 11 | |
michaelcoe | 0:e066babe3c39 | 12 | const int BROADCAST_PORT = 58083; |
michaelcoe | 0:e066babe3c39 | 13 | |
michaelcoe | 0:e066babe3c39 | 14 | struct packet{ |
michaelcoe | 0:e066babe3c39 | 15 | int times[512]; |
michaelcoe | 0:e066babe3c39 | 16 | uint16_t samples1[512]; |
michaelcoe | 0:e066babe3c39 | 17 | uint16_t samples2[512]; |
michaelcoe | 0:e066babe3c39 | 18 | uint16_t samples3[512]; |
michaelcoe | 0:e066babe3c39 | 19 | uint16_t samples4[512]; |
michaelcoe | 0:e066babe3c39 | 20 | }; |
michaelcoe | 0:e066babe3c39 | 21 | |
michaelcoe | 0:e066babe3c39 | 22 | int main() { |
michaelcoe | 0:e066babe3c39 | 23 | //Setting up the Ethernet |
michaelcoe | 0:e066babe3c39 | 24 | EthernetInterface eth; |
michaelcoe | 0:e066babe3c39 | 25 | eth.init(); //Use DHCP |
michaelcoe | 0:e066babe3c39 | 26 | eth.connect(); |
michaelcoe | 0:e066babe3c39 | 27 | |
michaelcoe | 0:e066babe3c39 | 28 | UDPSocket sock; |
michaelcoe | 0:e066babe3c39 | 29 | sock.init(); |
michaelcoe | 0:e066babe3c39 | 30 | sock.set_broadcasting(); |
michaelcoe | 0:e066babe3c39 | 31 | |
michaelcoe | 0:e066babe3c39 | 32 | Endpoint broadcast; |
michaelcoe | 0:e066babe3c39 | 33 | broadcast.set_address("255.255.255.255", BROADCAST_PORT); |
michaelcoe | 0:e066babe3c39 | 34 | |
michaelcoe | 0:e066babe3c39 | 35 | // uint16_t sample_buffer[2560]; |
michaelcoe | 0:e066babe3c39 | 36 | t.start(); |
michaelcoe | 0:e066babe3c39 | 37 | t.reset(); |
michaelcoe | 0:e066babe3c39 | 38 | t.start(); |
michaelcoe | 0:e066babe3c39 | 39 | while(1){ |
michaelcoe | 0:e066babe3c39 | 40 | packet sample_data; |
michaelcoe | 0:e066babe3c39 | 41 | printf("Executing Read Loop"); |
michaelcoe | 0:e066babe3c39 | 42 | for(int i=0; i<512; i++) { |
michaelcoe | 0:e066babe3c39 | 43 | sample_data.times[i] = 6; |
michaelcoe | 0:e066babe3c39 | 44 | //t.read_us(); |
michaelcoe | 0:e066babe3c39 | 45 | sample_data.samples1[i] = 1; |
michaelcoe | 0:e066babe3c39 | 46 | //input1.read_u16(); |
michaelcoe | 0:e066babe3c39 | 47 | sample_data.samples2[i] = 2; |
michaelcoe | 0:e066babe3c39 | 48 | //input2.read_u16(); |
michaelcoe | 0:e066babe3c39 | 49 | sample_data.samples3[i] = 3; |
michaelcoe | 0:e066babe3c39 | 50 | //input3.read_u16(); |
michaelcoe | 0:e066babe3c39 | 51 | sample_data.samples4[i] = 4; |
michaelcoe | 0:e066babe3c39 | 52 | //input4.read_u16(); |
michaelcoe | 0:e066babe3c39 | 53 | //wait_ms(1); |
michaelcoe | 0:e066babe3c39 | 54 | } |
michaelcoe | 0:e066babe3c39 | 55 | |
michaelcoe | 0:e066babe3c39 | 56 | printf("Size of struct: %i \n", sizeof(sample_data)); |
michaelcoe | 0:e066babe3c39 | 57 | printf("Copying to char array \n"); |
michaelcoe | 0:e066babe3c39 | 58 | char* data = static_cast<char*>(static_cast<void*>(&sample_data)); |
michaelcoe | 0:e066babe3c39 | 59 | //unsigned char *out_buffer = (char*) &sample_data; |
michaelcoe | 0:e066babe3c39 | 60 | |
michaelcoe | 0:e066babe3c39 | 61 | char out_buffer[6144]; |
michaelcoe | 0:e066babe3c39 | 62 | memcpy(&out_buffer,&data,sizeof(packet)); |
michaelcoe | 0:e066babe3c39 | 63 | //out_buffer[6144] = '\0'; |
michaelcoe | 0:e066babe3c39 | 64 | |
michaelcoe | 0:e066babe3c39 | 65 | printf("Sending to Ethernet \n"); |
michaelcoe | 0:e066babe3c39 | 66 | sock.sendTo(broadcast, out_buffer, sizeof(out_buffer)); |
michaelcoe | 0:e066babe3c39 | 67 | } |
michaelcoe | 0:e066babe3c39 | 68 | } |