A program that sends a image saved to the sd card to a server through a tcp socket connection
Dependencies: EthernetInterface SDFileSystem mbed-rtos mbed
main.cpp@0:5cbd9389d9ca, 2015-05-01 (annotated)
- Committer:
- pwilson39
- Date:
- Fri May 01 15:37:20 2015 +0000
- Revision:
- 0:5cbd9389d9ca
Initial commit of program sending an image through tcp socket
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
pwilson39 | 0:5cbd9389d9ca | 1 | #include "mbed.h" |
pwilson39 | 0:5cbd9389d9ca | 2 | #include "EthernetInterface.h" |
pwilson39 | 0:5cbd9389d9ca | 3 | #include "SDFileSystem.h" |
pwilson39 | 0:5cbd9389d9ca | 4 | |
pwilson39 | 0:5cbd9389d9ca | 5 | const char* SERVER_ADDRESS = ""; |
pwilson39 | 0:5cbd9389d9ca | 6 | const int SERVER_PORT = 5005; |
pwilson39 | 0:5cbd9389d9ca | 7 | SDFileSystem fs(p5, p6, p7, p8, "sd"); |
pwilson39 | 0:5cbd9389d9ca | 8 | //LocalFileSystem local("local"); // Create the local filesystem under the name "local" |
pwilson39 | 0:5cbd9389d9ca | 9 | |
pwilson39 | 0:5cbd9389d9ca | 10 | |
pwilson39 | 0:5cbd9389d9ca | 11 | int main() { |
pwilson39 | 0:5cbd9389d9ca | 12 | EthernetInterface eth; |
pwilson39 | 0:5cbd9389d9ca | 13 | eth.init(); //Use DHCP |
pwilson39 | 0:5cbd9389d9ca | 14 | eth.connect(); |
pwilson39 | 0:5cbd9389d9ca | 15 | printf("IP Address is %s\n\r", eth.getIPAddress()); |
pwilson39 | 0:5cbd9389d9ca | 16 | |
pwilson39 | 0:5cbd9389d9ca | 17 | TCPSocketConnection socket; |
pwilson39 | 0:5cbd9389d9ca | 18 | while (socket.connect(SERVER_ADDRESS, SERVER_PORT) < 0) { |
pwilson39 | 0:5cbd9389d9ca | 19 | printf("Unable to connect to (%s) on port (%d)\n\r", SERVER_ADDRESS, SERVER_PORT); |
pwilson39 | 0:5cbd9389d9ca | 20 | wait(1); |
pwilson39 | 0:5cbd9389d9ca | 21 | } |
pwilson39 | 0:5cbd9389d9ca | 22 | |
pwilson39 | 0:5cbd9389d9ca | 23 | FILE *file; |
pwilson39 | 0:5cbd9389d9ca | 24 | char *buffer; |
pwilson39 | 0:5cbd9389d9ca | 25 | unsigned long fileLen; |
pwilson39 | 0:5cbd9389d9ca | 26 | |
pwilson39 | 0:5cbd9389d9ca | 27 | //Open file |
pwilson39 | 0:5cbd9389d9ca | 28 | file = fopen("/sd/IMG_0001.jpg", "rb"); |
pwilson39 | 0:5cbd9389d9ca | 29 | if (!file) |
pwilson39 | 0:5cbd9389d9ca | 30 | { |
pwilson39 | 0:5cbd9389d9ca | 31 | fprintf(stderr, "Unable to open file"); |
pwilson39 | 0:5cbd9389d9ca | 32 | exit(0); |
pwilson39 | 0:5cbd9389d9ca | 33 | } |
pwilson39 | 0:5cbd9389d9ca | 34 | |
pwilson39 | 0:5cbd9389d9ca | 35 | //Get file length |
pwilson39 | 0:5cbd9389d9ca | 36 | int size; |
pwilson39 | 0:5cbd9389d9ca | 37 | |
pwilson39 | 0:5cbd9389d9ca | 38 | fseek(file, 0, SEEK_END); |
pwilson39 | 0:5cbd9389d9ca | 39 | size=ftell(file); |
pwilson39 | 0:5cbd9389d9ca | 40 | fseek(file, 0, SEEK_SET); |
pwilson39 | 0:5cbd9389d9ca | 41 | |
pwilson39 | 0:5cbd9389d9ca | 42 | char send_buffer[size]; |
pwilson39 | 0:5cbd9389d9ca | 43 | while(!feof(file)) { |
pwilson39 | 0:5cbd9389d9ca | 44 | fread(send_buffer, 1, sizeof(send_buffer), file); |
pwilson39 | 0:5cbd9389d9ca | 45 | socket.send(send_buffer, sizeof(send_buffer)); |
pwilson39 | 0:5cbd9389d9ca | 46 | } |
pwilson39 | 0:5cbd9389d9ca | 47 | |
pwilson39 | 0:5cbd9389d9ca | 48 | free(buffer); |
pwilson39 | 0:5cbd9389d9ca | 49 | printf("Done Sending\n\r"); |
pwilson39 | 0:5cbd9389d9ca | 50 | |
pwilson39 | 0:5cbd9389d9ca | 51 | |
pwilson39 | 0:5cbd9389d9ca | 52 | socket.close(); |
pwilson39 | 0:5cbd9389d9ca | 53 | eth.disconnect(); |
pwilson39 | 0:5cbd9389d9ca | 54 | |
pwilson39 | 0:5cbd9389d9ca | 55 | while(true) {} |
pwilson39 | 0:5cbd9389d9ca | 56 | } |