Data sendback over ethernet from mbed
Dependencies: EthernetInterface FastAnalogIn mbed-rtos mbed
Fork of Ananlog_in_test by
main2.txt@1:27168b548705, 2014-10-24 (annotated)
- Committer:
- apullin
- Date:
- Fri Oct 24 23:05:27 2014 +0000
- Revision:
- 1:27168b548705
- Parent:
- 0:e066babe3c39
Fixes to memory copy and pointers.
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, t2; |
michaelcoe | 0:e066babe3c39 | 11 | |
michaelcoe | 0:e066babe3c39 | 12 | const int BROADCAST_PORT = 58083; |
michaelcoe | 0:e066babe3c39 | 13 | |
michaelcoe | 0:e066babe3c39 | 14 | struct data{ |
michaelcoe | 0:e066babe3c39 | 15 | int times[512]; |
michaelcoe | 0:e066babe3c39 | 16 | uint16_t sample_buffer[2048]; |
michaelcoe | 0:e066babe3c39 | 17 | int send_time; |
michaelcoe | 0:e066babe3c39 | 18 | }sample_data; |
michaelcoe | 0:e066babe3c39 | 19 | |
michaelcoe | 0:e066babe3c39 | 20 | int main() { |
michaelcoe | 0:e066babe3c39 | 21 | //Setting up the Ethernet |
michaelcoe | 0:e066babe3c39 | 22 | EthernetInterface eth; |
michaelcoe | 0:e066babe3c39 | 23 | eth.init(); //Use DHCP |
michaelcoe | 0:e066babe3c39 | 24 | eth.connect(); |
michaelcoe | 0:e066babe3c39 | 25 | |
michaelcoe | 0:e066babe3c39 | 26 | UDPSocket sock; |
michaelcoe | 0:e066babe3c39 | 27 | sock.init(); |
michaelcoe | 0:e066babe3c39 | 28 | sock.set_broadcasting(); |
michaelcoe | 0:e066babe3c39 | 29 | |
michaelcoe | 0:e066babe3c39 | 30 | Endpoint broadcast; |
michaelcoe | 0:e066babe3c39 | 31 | broadcast.set_address("255.255.255.255", BROADCAST_PORT); |
michaelcoe | 0:e066babe3c39 | 32 | |
michaelcoe | 0:e066babe3c39 | 33 | // uint16_t sample_buffer[2560]; |
michaelcoe | 0:e066babe3c39 | 34 | sample_data.send_time = 0; |
michaelcoe | 0:e066babe3c39 | 35 | |
michaelcoe | 0:e066babe3c39 | 36 | while(1){ |
michaelcoe | 0:e066babe3c39 | 37 | printf("Executing Read Loop"); |
michaelcoe | 0:e066babe3c39 | 38 | t.start(); |
michaelcoe | 0:e066babe3c39 | 39 | for(int i=0; i<512; i++) { |
michaelcoe | 0:e066babe3c39 | 40 | sample_data.times[i] = t.read_us(); |
michaelcoe | 0:e066babe3c39 | 41 | sample_data.sample_buffer[i+512] = input1.read_u16(); |
michaelcoe | 0:e066babe3c39 | 42 | sample_data.sample_buffer[i+1024] = input2.read_u16(); |
michaelcoe | 0:e066babe3c39 | 43 | sample_data.sample_buffer[i+1536] = input3.read_u16(); |
michaelcoe | 0:e066babe3c39 | 44 | sample_data.sample_buffer[i+2048] = input4.read_u16(); |
michaelcoe | 0:e066babe3c39 | 45 | //wait_ms(1); |
michaelcoe | 0:e066babe3c39 | 46 | } |
michaelcoe | 0:e066babe3c39 | 47 | t.stop(); |
michaelcoe | 0:e066babe3c39 | 48 | t.reset(); |
michaelcoe | 0:e066babe3c39 | 49 | t2.start(); |
michaelcoe | 0:e066babe3c39 | 50 | |
michaelcoe | 0:e066babe3c39 | 51 | printf("Copying to char array \n"); |
michaelcoe | 0:e066babe3c39 | 52 | int len = sizeof(struct data); |
michaelcoe | 0:e066babe3c39 | 53 | char out_buffer[len]; |
michaelcoe | 0:e066babe3c39 | 54 | memcpy(&out_buffer, &sample_data, len); |
michaelcoe | 0:e066babe3c39 | 55 | |
michaelcoe | 0:e066babe3c39 | 56 | // char out_buffer[5120]; |
michaelcoe | 0:e066babe3c39 | 57 | // memcpy(&out_buffer,&sample_buffer,sizeof(sample_buffer)); |
michaelcoe | 0:e066babe3c39 | 58 | |
michaelcoe | 0:e066babe3c39 | 59 | printf("Sending to Ethernet \n"); |
michaelcoe | 0:e066babe3c39 | 60 | sock.sendTo(broadcast, out_buffer, sizeof(out_buffer)); |
michaelcoe | 0:e066babe3c39 | 61 | sample_data.send_time = t2.read_us(); |
michaelcoe | 0:e066babe3c39 | 62 | |
michaelcoe | 0:e066babe3c39 | 63 | t2.stop(); |
michaelcoe | 0:e066babe3c39 | 64 | t2.reset(); |
michaelcoe | 0:e066babe3c39 | 65 | } |
michaelcoe | 0:e066babe3c39 | 66 | } |