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

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?

UserRevisionLine numberNew 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 }