Marlon Prudente / Mbed 2 deprecated SO

Dependencies:   EthernetInterface Servo mbed-rtos mbed

Revision:
1:7b6dd8cc286d
Parent:
0:3f38d4693786
Child:
2:f3e4edf4d638
--- a/main.cpp	Thu Dec 14 01:39:25 2017 +0000
+++ b/main.cpp	Thu Dec 14 05:02:37 2017 +0000
@@ -1,52 +1,64 @@
 #include "mbed.h"
-#include "rtos.h"
 #include "EthernetInterface.h"
+#include <string.h>
 
-AnalogIn pot(A0);
-PwmOut motor(D7);
-PwmOut motor1(D6);
-Serial pc(USBTX, USBRX);
-EthernetInterface eth;
+#define POS_CENTRO 1750
+#define POS_MAX (POS_CENTRO + 110)
+#define POS_MIN (POS_CENTRO - 110)
+#define DIST_MIN 10
+#define DIST_MAX 56
+#define RESOL 1
+#define PERIODO 10
 
-Thread pot;
-Thread motor;
-Thread rede;
-Thread broadcast;  
-
-const int ECHO_SERVER_PORT = 7;
-const char* ECHO_SERVER_ADDRESS = "100.43.2.200";
+const int ECHO_SERVER_PORT = 1234;
 const int BROADCAST_PORT = 58083;
 
 bool conectado = false;
 
-void pot_thread() {
-    const int potenciometro;
+int  setpoint;
+
+Thread tcp_server;
+Thread broadcast;
+EthernetInterface eth;
+
+Mutex m_dist;
+Mutex m_ref;
+
+unsigned int dist;
+//Servo Servo1(D6);
+
+void tcp_server_thread ();
+void udp_broadcast ();
+
+
+int main (void)
+{
+    //inicializa o módulo ethernet
+    eth.init();
+    eth.connect();
+    
+    //Servo1.Enable(POS_CENTRO,20000);
+    // inicializa threads
+    tcp_server.start(tcp_server_thread);
+    broadcast.start(udp_broadcast);
+    //controle.start(controle_thread);
+    
+    broadcast.join();
+    printf("Todas as thread iniciadas\n");
+
     while (true) {
-        potenciometro = pot.read();
-        pc.printf("Pot Thread: %f \n", potenciometro);
-        
-        //Thread::wait(100);
-    }
-}
-void pwm_thread() {
-    motor.period(0.020);
-    motor1.period(0.020);
-    while (true) {        
-        pc.printf("PWM Thread ");
-        motor.pulsewidth(pot.read()); 
-        motor1.pulsewidth(pot.read()); 
-        //Thread::wait(100);
+
     }
 }
 
-void lan_thread() {
-printf("\nServer IP Address is %s\n", eth.getIPAddress());
+void tcp_server_thread ()
+{
+    printf("\nServer IP Address is %s\n", eth.getIPAddress());
 
     TCPSocketServer server;
     server.bind(ECHO_SERVER_PORT);
     server.listen();
-
-    while (true) {
+   
         printf("\nWait for new connection...\n");
         TCPSocketConnection client;
         server.accept(client);
@@ -57,42 +69,47 @@
         char buffer[256];
         while (true) {
             int n = client.receive(buffer, sizeof(buffer));
-            if (n <= 0) break;
+            
+            if (n <=1) {
+                //printf("Waiting messenger...");
+                //break;
+                }else{
 
             // print received message to terminal
             buffer[n] = '\0';
             printf("Received message from Client :'%s'\n",buffer);
-
+            
             int pos =  buffer[8] - '0';
-
+ 
             if(pos == 1)setpoint = 20;
             else if(pos == 2)setpoint = 35;
             else if(pos == 3)setpoint = 50;
             printf("Setpoint: %d\n", setpoint);
-
+ 
             m_ref.lock();
             // ref = atof(buffer);
             sprintf (buffer, "%s", client.get_address());
             m_ref.unlock();
-
+ 
             m_ref.lock();
             sprintf (buffer, "%s", client.get_address());
             m_ref.unlock();
-
+ 
             // print sending message to terminal
             printf("Sending message to Client: '%s'\n",buffer);
-
+ 
             // Echo received message back to client
             //client.send_all(buffer, n);
            // if (n <= 0) break;
            memset(buffer,0,256);
+            }
         }
 
-        client.close();
-    }
+        client.close();    
 }
 
-void udp_broadcast(){
+void udp_broadcast ()
+{
     UDPSocket sock;
     sock.init();
     sock.set_broadcasting();
@@ -100,7 +117,7 @@
     Endpoint broadcast;
     broadcast.set_address("255.255.255.255", BROADCAST_PORT);
 
-    char out_buffer[] = "diego";
+    char out_buffer[] = "Coppeti";
 
     while (!conectado) {
         printf("Broadcasting...\n");
@@ -108,20 +125,4 @@
         Thread::wait(1000);
     }
     printf("Broadcast finalizado!\n");
-    }
-
-int main() {
-    pc.baud(115200);
-        //inicializa o módulo ethernet
-    eth.init();
-    eth.connect();
-    
-    pot.start(pot_thread);
-    motor.start(pwm_thread);
-    rede.start(lan_thread);
-    broadcast.start(udp_broadcast);
-    
-    while (true) {
-        //Thread::wait(500);
-    }
 }
\ No newline at end of file