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 Controle_ventilo_ethernet_v1_2_4 by
Diff: main.cpp
- Revision:
- 3:6c54aa6db861
- Parent:
- 2:1dd0818af42e
- Child:
- 4:fb63da7601aa
--- a/main.cpp Fri Nov 18 10:48:35 2016 +0000 +++ b/main.cpp Fri Jan 20 17:54:22 2017 +0000 @@ -2,69 +2,146 @@ #include "EthernetInterface.h" #include "Ethernet.h" -/*#include "TCPSocket.h" -#include "TCPServer.h"*/ +#include "TCPSocket.h" #include "SocketAddress.h" #include "Socket.h" #include "UDPSocket.h" -const char* ECHO_SERVER_ADDRESS = "192.168.2.2"; -const int ECHO_SERVER_PORT = 7; - -int main() { - EthernetInterface eth; - eth.Ethernet(); // problème lib ethernet +#include <string.h> +//using namespace std; + +const char* ECHO_SERVER_ADDRESS = "192.168.0.146"; // addresse du PC home "192.168.1.2" sergio "169.254.61.104" or "129.194.185.33" or "255.255.252.0" liotard "10.136.134.73" +//#define IP "10.136.134.100" +//#define GATEWAY "10.136.132.1" //"129.194.184.1" +//#define MASK "255.255.252.0" +const int ECHO_SERVER_PORT = 1025; + +// Front fans +//PwmOut frontFans[] = {(PB_11), (PE_14), (PE_9), (PB_3), (PB_15), (PB_6), (PB_13), (PE_5), (PC_8)}; // PE_11 also possible for front fan n°5 + +// Rear fans +//PwmOut rearFans[] = {(PB_10), (PE_12), (PE_10), (PE_11), (PC_6), (PD_13), (PC_7), (PE_6), (PC_9)}; // PE_10 also possible for rear fans n°5 + +PwmOut frontFans[9]={PB_11,PE_14,PE_9,PB_3,PB_15,PB_6,PB_13,PE_5,PC_8}; +PwmOut rearFans[9]={PB_10,PE_12,PE_10,PE_11,PC_6,PD_13,PC_7,PE_6,PC_9}; + +DigitalOut fantest(LED1); + +// Receive string +char FR_str[2] = {0}; +char fan_str[10] = {0}; +char pwm_str[4] = {0}; +int FR = 0; +int fan[10] = {0}; +float pwm_f = 0.0; +int FR_len = 0; +int fan_len = 0; +int pwm_len = 0; + +void splitString(char stringToSplit[]); + +int main(int argc, char *argv[]) { + + for(int j = 0; j < 9; j++){ + frontFans[j].period_ms(10); + rearFans[j].period_ms(10); + frontFans[j].write(0.0); + rearFans[j].write(0.0); + } + + /*fantest.period_ms(10); + fantest.write(0.1);*/ + + EthernetInterface eth; // init interface ethernet de la carte + UDPSocket sock; // init le socket en UDP de la carte + SocketAddress echo_server; + eth.connect(); + sock.open(ð); + + //eth.set_network(IP,MASK,GATEWAY); + printf("\nClient IP Address is %s \n", eth.get_ip_address()); - UDPSocket sock; - sock.UDPSocket(); // problème lib UDPSocket - - SocketAddress echo_server; echo_server.set_ip_address(ECHO_SERVER_ADDRESS); echo_server.set_port(ECHO_SERVER_PORT); - char out_buffer[] = "Hello World"; - printf("Sending message '%s' to server (%s)\n",out_buffer,ECHO_SERVER_ADDRESS); - sock.sendto(echo_server, out_buffer, sizeof(out_buffer)); + fantest = 1; + wait(1); + fantest = 0; + wait(1); - char in_buffer[256]; - int n = sock.recvfrom(&echo_server, in_buffer, sizeof(in_buffer)); + //wait(10); - in_buffer[n] = '\0'; - printf("Received message from server: '%s'\n", in_buffer); - - sock.close(); - - eth.disconnect(); - while(1) {} + while(1){ + char out_buffer[] = "Envoyez moi une vitesse plz !"; + printf("Sending message '%s' to server (%s)\n",out_buffer,ECHO_SERVER_ADDRESS); + sock.sendto(echo_server, out_buffer, sizeof(out_buffer)); + + char in_buffer[256]; + int n = sock.recvfrom(&echo_server, in_buffer, sizeof(in_buffer)); + + in_buffer[n] = '\0'; + + printf("%s\n", in_buffer); + + //int buff_in = atoi(in_buffer); + splitString(in_buffer); + + printf("%d\n%d\n%lf\n", FR, fan[2], pwm_f); + + //wait(10); + + switch(FR){ + case 0: // front fans + for(int i = 0; i < fan_len; i++){ + frontFans[fan[i] - 1].write(pwm_f); + } + break; + + case 1: // rear fans + for(int i = 0; i < fan_len; i++){ + rearFans[fan[i] - 1].write(pwm_f); + } + break; + + case 2: // both fans + for(int i = 0; i < fan_len; i++){ + frontFans[fan[i] - 1].write(pwm_f); + rearFans[fan[i] - 1].write(pwm_f); + } + break; + + default: + for(int j = 0; j < 9; j++){ + frontFans[j].write(0.0); + rearFans[j].write(0.0); + } + } + + //wait(5); + } } -// code python - -/* -import socket -import signal -import sys - -def signal_handler(signal, frame): - print 'You pressed Ctrl+C!' - sock.close() - sys.exit(0) - -signal.signal(signal.SIGINT, signal_handler) - -ECHO_PORT = 7 - -print 'Server Running at ', socket.gethostbyname(socket.gethostname()) -sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) -sock.bind(('', ECHO_PORT)) - -while True: - print "waiting for UDP data packet..." - data, address = sock.recvfrom(256) - print "Received packet from", address, "with data",data - print "Sending packet back to client" - sock.sendto(data, address) -*/ \ No newline at end of file +void splitString(char stringToSplit[]){ + char *comma_1 = strchr(stringToSplit, ',') + 1; + char *comma_2 = strchr(comma_1, ',') + 1; + char *comma_3 = strchr(comma_3, '\0'); + + FR_len = comma_1 - stringToSplit - 1; + fan_len = comma_2 - comma_1 - 1; + pwm_len = comma_3 - comma_2; + + strncpy(FR_str, stringToSplit, 1); + FR = atoi(FR_str); + + strncpy(fan_str, comma_1, fan_len); + for(int i = 0; i < fan_len; i++){ + fan[i] = fan_str[i] - '0'; + } + + strncpy(pwm_str, comma_2, pwm_len); + int pwm = atoi(pwm_str); + pwm_f = (float)pwm/100.0; +} \ No newline at end of file