Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Fork of Thread_Communication_V4_fortest by
Revision 12:a244f6f9d2fe, committed 2018-01-05
- Comitter:
- dnonoo
- Date:
- Fri Jan 05 12:01:04 2018 +0000
- Parent:
- 11:19135c83c208
- Child:
- 13:089f3adb3813
- Commit message:
- This one works lol
Changed in this revision
| main.cpp | Show annotated file Show diff for this revision Revisions of this file |
--- a/main.cpp Thu Jan 04 20:33:17 2018 +0000
+++ b/main.cpp Fri Jan 05 12:01:04 2018 +0000
@@ -115,8 +115,15 @@
//Format samples, send to FIFO buffer head
memset(data_buffer[sample_h],NULL,64);
+ char sampleTime[20];
+ memset(sampleTime, NULL,20);
+ time( &raw_time );
+ sample_epoch = localtime( &raw_time );
+ strftime(sampleTime,20,"%d/%m/%Y, %X",sample_epoch);
+
+
dataLock.lock(); //lock critical section
- sprintf(data_buffer[sample_h],"%s, %2.2f, %4.2f, %.4f\n\r", TIME, TEMP, PRES, LDR);
+ sprintf(data_buffer[sample_h],"%s, %2.2f, %4.2f, %.4f\n\r", sampleTime, TEMP, PRES, LDR);
dataLock.unlock(); //unlock critical section
@@ -160,12 +167,6 @@
TEMP = Sensor.getTemperature();
PRES = Sensor.getPressure();
-
- memset(TIME, NULL,20);
- time( &raw_time );
- sample_epoch = localtime( &raw_time );
- strftime(TIME,20,"%d/%m/%Y, %X",sample_epoch);
-
dataLock.unlock(); // Exiting Critical Section
Green_int = !Green_int; // debugging
@@ -468,7 +469,7 @@
pc.puts("\tREAD ALL - Read All previous samples held in memory\n\r");
pc.puts("\tSETTIME hh:mm::ss - Set time in 24hr format\n\r");
pc.puts("\tSETDATE dd/mm/yyyy - Set time in specified format\n\r");
- pc.puts("\tDELETE ALL - Delete all sampled held in internal memory\n\n\n\r");
+ pc.puts("\tDELETE ALL - Delete all sampled held in internal memory\n\r");
pc.puts("\tSETT - Set sample period. must be an integer in range 0 < T < 61\n\r");
}
else if (strstr(rx_buffer,"tell me a joke")) {
@@ -575,10 +576,11 @@
/*--------------------------------------------------------------------------*/
/*---------------------------Networking Thread------------------------------*/
-void Network1 () {
-
+void Network1 ()
+{
+
printf("Setting up server\n\r");
-
+
//Configure an ethernet connection
EthernetInterface eth;
eth.set_network(IP, NETMASK, GATEWAY);
@@ -586,79 +588,76 @@
if (eth.get_ip_address() == NULL) {
pc.printf("Error - Can't get IP. Network not setup\n\r");
pc.printf("Reset Required. Make sure network cables are plugged in\n\r");
- }
- else {
- printf("The target IP address is '%s'\n\r", eth.get_ip_address());
-
- //Now setup a web server
- TCPServer srv; //TCP/IP Server
-
- SocketAddress clt_addr; //Address of incoming connection
-
- /* Open the server on ethernet stack */
- srv.open(ð);
-
- /* Bind the HTTP port (TCP 80) to the server */
- srv.bind(eth.get_ip_address(), 80);
-
- /* Can handle 5 simultaneous connections */
- srv.listen(5);
-
- TCPSocket clt_sock; //Socket for communication
- pc.printf("Server Ready\n\r");
- while (true) {
-
-
- using namespace std;
- //Block and wait on an incoming connection
- srv.accept(&clt_sock, &clt_addr);
- //printf("accept %s:%d\n\r", clt_addr.get_ip_address(), clt_addr.get_port());
-
- //Uses a C++ string to make it easier to concatinate
- string response;
- string strL = "LDR:";
- string strP = ", Pressure(mBar): ";
- string strT = ", Temp(C): ";
- string strDT = ", Date/Time: ";
+ }
+ else {
+ printf("The target IP address is '%s'\n\r", eth.get_ip_address());
+
+ //Now setup a web server
+ TCPServer srv; //TCP/IP Server
+
+ SocketAddress clt_addr; //Address of incoming connection
+
+ /* Open the server on ethernet stack */
+ srv.open(ð);
+
+ /* Bind the HTTP port (TCP 80) to the server */
+ srv.bind(eth.get_ip_address(), 80);
+
+ /* Can handle 5 simultaneous connections */
+ srv.listen(5);
+
+ TCPSocket clt_sock; //Socket for communication
+ pc.printf("Server Ready\n\r");
- //This is a C string
- char l_str[64];
- char p_str[64];
- char t_str[64];
-
- //Read the LDR value
- dataLock.lock(); // add watchdog?
- float L = LDR ;
- float T = TEMP;
- float P = PRES;
- char DT[20] = TIME;
- dataLock.unlock();
-
- //Convert to a C String
- sprintf(l_str, "%1.3f", L ); // try \n\r??
- sprintf(t_str, "%2.2f", T);
- sprintf(p_str, "%4.2f", P);
-
-
-
- //Build the C++ string response
- response = HTTP_MESSAGE_BODY1;
- // response += strL;
- response += l_str;
- response += strT;
- response += t_str;
- response += strP;
- response += p_str;
- response += strDT;
- response += DT;
- response += HTTP_MESSAGE_BODY2;
-
- //Send static HTML response (as a C string)
- clt_sock.send(response.c_str(), response.size()+6);
-
- }
- }
-}
+ while (true) {
+
+ using namespace std;
+ //Block and wait on an incoming connection
+ srv.accept(&clt_sock, &clt_addr);
+ //printf("accept %s:%d\n\r", clt_addr.get_ip_address(), clt_addr.get_port());
+
+ //Uses a C++ string to make it easier to concatinate
+ string response;
+ string strL = "LDR:";
+ string strP = ", Pressure(mBar): ";
+ string strT = ", Temp(C): ";
+
+ //This is a C string
+ char l_str[64];
+ char p_str[64];
+ char t_str[64];
+
+ //Read the LDR value
+ dataLock.lock(); // add watchdog?
+ float L = LDR ;
+ float T = TEMP;
+ float P = PRES;
+
+ dataLock.unlock();
+
+ //Convert to a C String
+ sprintf(l_str, "%1.3f", L ); // try \n\r??
+ sprintf(t_str, "%2.2f", T);
+ sprintf(p_str, "%4.2f", P);
+
+
+
+ //Build the C++ string response
+ response = HTTP_MESSAGE_BODY1;
+ // response += strL;
+ response += l_str;
+ response += strT;
+ response += t_str;
+ response += strP;
+ response += p_str;
+ response += HTTP_MESSAGE_BODY2;
+
+ //Send static HTML response (as a C string)
+ clt_sock.send(response.c_str(), response.size()+6);
+
+ }// end While
+ }//end if
+}// end thread
/*---------------------------POST--------------------------------------------*/
void POST () {
pc.printf(" Basic POST\n\r");
