for joel

Dependencies:   EthernetInterface mbed-rtos mbed

Files at this revision

API Documentation at this revision

Comitter:
idijoeteque
Date:
Thu Aug 03 10:17:41 2017 +0000
Commit message:
for joel

Changed in this revision

EthernetInterface.lib Show annotated file Show diff for this revision Revisions of this file
main.cpp Show annotated file Show diff for this revision Revisions of this file
mbed-rtos.lib Show annotated file Show diff for this revision Revisions of this file
mbed.bld Show annotated file Show diff for this revision Revisions of this file
diff -r 000000000000 -r 4f326062cb33 EthernetInterface.lib
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/EthernetInterface.lib	Thu Aug 03 10:17:41 2017 +0000
@@ -0,0 +1,1 @@
+http://mbed.org/users/mbed_official/code/EthernetInterface/#183490eb1b4a
diff -r 000000000000 -r 4f326062cb33 main.cpp
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main.cpp	Thu Aug 03 10:17:41 2017 +0000
@@ -0,0 +1,85 @@
+/* ---------------------------------------
+   ---------------------------------------
+   Author: Joel Holland
+   Purpose: To have mbed send bytes of 
+            data to a TCP server.
+   Note: Do not update ethernetinterface.h
+         new repositories are broken.
+    --------------------------------------
+    -------------------------------------- */
+    
+#include "mbed.h"
+#include "EthernetInterface.h"
+
+EthernetInterface eth;    //ethernet object
+TCPSocketConnection socket;  //socket object
+Serial pc(USBTX,USBRX);      //interface with TeraTerm
+DigitalOut P17(p17);
+AnalogIn LM35(p15);
+DigitalOut P16(p16);
+DigitalOut P18(p18);
+DigitalOut P19(p19);
+DigitalOut P20(p20);
+
+static const char* ip = "10.58.92.178";
+static const char* mask = "255.255.192.0";
+static const char* gateway = "10.58.64.1";
+
+// A data structure of the data to send
+// In this case it's fairly pointless, you may as well just use a uint16_t[] directly in place of this
+// But if you package what you want into a structure then you don't need to change the 
+// transmission code if you change what is being sent, you just change the structure definition.
+typedef struct packetToSent_s {   
+uint8_t data[1];   //specify data types within the struct, in this case an 80 element array of 8-bit unsigned int
+} packetToSend_t;
+
+packetToSend_t dataOut;  //an instance of the packet to send
+
+int main()
+{    
+    pc.printf("This program constantly polls the temperature sensor\n\n");
+    pc.printf("and sends the data packets out through both USB and TCP.\n\n");
+    eth.init(ip,mask,gateway);  //static
+    wait(5);
+    eth.connect();
+    wait(5);    //allow the mbed time to be dynamically assigned an IP and to connect before printing IP address
+    pc.printf("IP address is %s\n\n", eth.getIPAddress()); //function in ethernet library to return string containing IP
+    pc.printf("Mask is is %s\n\n", eth.getNetworkMask());
+    pc.printf("Gateway is %s\n\n", eth.getGateway());
+    
+    socket.connect("10.58.74.19", 23);  //ip address of PC, and port to be listened to by the HOST     
+    wait(1);
+   
+    while(1) {
+            float tempC,mv,avgtemp;
+            //specify data to be sent. Here we would desire the output from the multiplexer.
+            for(int i=0;i<1;i++) {
+                float avg=0;
+                    for(int j=0;j<100;j++) {
+                         mv = ((LM35.read()-0.02)*3300);    //calibrate the analogue pin, multiply by reference voltage, convert to mv.
+                 //      pc.printf("voltage of sensor is %.2f",mv);
+                //       wait(1);
+                         tempC = mv/10;              //LM35 device has a 1 degree change for every 10mv, therefore divide by this to get temp in C.
+               //        pc.printf("temperature sample is %.2f C\t",tempC);  
+               //        wait(1);                                            
+                         avg=avg+tempC;
+                         wait(0.01); //take 100 samples at a rate of 1ms
+                    }
+            avgtemp=avg/100;
+            pc.printf("Temperature is %2.2f C\t\t\t", avgtemp);  
+            uint8_t b;
+            b=avgtemp; //remove offset from analogue pin, then convert to unsigned integer 8 bit (2 bytes). 
+            dataOut.data[i]=b;  //populate array with analogue readings from pin 17. Remove offset.
+            }
+
+    //send the data packet by passing a pointer to the start of the data, and specifying its size. 
+    
+    socket.send_all((char*)&dataOut,sizeof(packetToSend_t));
+    //socket.send_all((char*)&dataOut2,sizeof(packetToSend_t));  here we could send packets corresponding to different data types
+    }
+//ideally should check return value from send_all to verify no errors have occured.
+
+
+}
+
+
diff -r 000000000000 -r 4f326062cb33 mbed-rtos.lib
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mbed-rtos.lib	Thu Aug 03 10:17:41 2017 +0000
@@ -0,0 +1,1 @@
+http://mbed.org/users/mbed_official/code/mbed-rtos/#5713cbbdb706
diff -r 000000000000 -r 4f326062cb33 mbed.bld
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mbed.bld	Thu Aug 03 10:17:41 2017 +0000
@@ -0,0 +1,1 @@
+https://mbed.org/users/mbed_official/code/mbed/builds/a97add6d7e64
\ No newline at end of file