Windshape control / Mbed OS Controle_ventilo_ethernet_v1_2_4

Fork of Controle_ventilo_ethernet_v1_2_4 by Sergio Márquez

Committer:
Brutus
Date:
Wed Jun 07 23:50:08 2017 +0000
Revision:
9:499df2f06bda
Parent:
8:10dcb0846e2f
Child:
10:617194438c6b
rpm read all

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Brutus 0:5ca563ae05db 1 #include "mbed.h"
Brutus 0:5ca563ae05db 2 #include "EthernetInterface.h"
Brutus 0:5ca563ae05db 3 #include "SocketAddress.h"
Brutus 0:5ca563ae05db 4 #include "UDPSocket.h"
Brutus 8:10dcb0846e2f 5 #include <string.h>
Brutus 3:6c54aa6db861 6
Brutus 7:3bdc6538ef40 7 const char* ECHO_SERVER_ADDRESS = "131.215.118.148"; // addresse du PC home "192.168.1.2" sergio "169.254.61.104" or "129.194.185.33" or "192.168.137.1" liotard "10.136.134.73"
Brutus 8:10dcb0846e2f 8 const int ECHO_SERVER_PORT = 1039;
Brutus 8:10dcb0846e2f 9
Brutus 8:10dcb0846e2f 10 Timer t;
Brutus 8:10dcb0846e2f 11 DigitalOut PSU_DEAD(D8); // Kill PSU
Brutus 8:10dcb0846e2f 12 DigitalOut PSU_OFF(D9); // Power On PSU
Brutus 8:10dcb0846e2f 13
Brutus 8:10dcb0846e2f 14 volatile long int count[18] = {0};
Brutus 8:10dcb0846e2f 15 int tours = 10;
Brutus 8:10dcb0846e2f 16 double rpm[18] = {0.0};
Brutus 8:10dcb0846e2f 17 bool readRpm = 0;
Brutus 8:10dcb0846e2f 18 bool readAllRpm = 0;
Brutus 3:6c54aa6db861 19
Brutus 3:6c54aa6db861 20 // Front fans
Brutus 8:10dcb0846e2f 21 //PwmOut frontFans[9]={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
Brutus 3:6c54aa6db861 22 // Rear fans
Brutus 8:10dcb0846e2f 23 //PwmOut rearFans[9]={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
Brutus 3:6c54aa6db861 24
Brutus 8:10dcb0846e2f 25 PwmOut frontFans[9]={PC_6,PB_5,PB_8,PC_8,PE_5,PB_1,PE_9,PB_10,PE_12};
Brutus 8:10dcb0846e2f 26 PwmOut rearFans[9]={PB_15,PB_3,PB_9,PC_9,PE_6,PD_13,PB_11,PE_10,PE_14};
Brutus 8:10dcb0846e2f 27 //PwmOut testRepFan = PE_10;
catryus 6:6567daa93121 28
Brutus 8:10dcb0846e2f 29 PinName counterFront[9]={PA_3,PC_3,PF_5,PF_7,PE_3,PG_1,PE_4,PC_2,PB_2};
Brutus 8:10dcb0846e2f 30 PinName counterRear[9]={PC_0,PF_3,PF_10,PF_9,PE_0,PG_0,PF_8,PD_11,PF_4};
Brutus 3:6c54aa6db861 31
Brutus 3:6c54aa6db861 32 DigitalOut fantest(LED1);
Brutus 3:6c54aa6db861 33
Brutus 3:6c54aa6db861 34 // Receive string
Brutus 3:6c54aa6db861 35 char FR_str[2] = {0};
Brutus 3:6c54aa6db861 36 char fan_str[10] = {0};
Brutus 3:6c54aa6db861 37 char pwm_str[4] = {0};
Brutus 3:6c54aa6db861 38 int FR = 0;
Brutus 3:6c54aa6db861 39 int fan[10] = {0};
Brutus 3:6c54aa6db861 40 float pwm_f = 0.0;
Brutus 3:6c54aa6db861 41 int FR_len = 0;
Brutus 3:6c54aa6db861 42 int fan_len = 0;
Brutus 3:6c54aa6db861 43 int pwm_len = 0;
Brutus 3:6c54aa6db861 44
Brutus 3:6c54aa6db861 45 void splitString(char stringToSplit[]);
Brutus 5:cee119979b55 46 int transString(char stringToTrans[]);
Brutus 8:10dcb0846e2f 47 void countFunction();
Brutus 8:10dcb0846e2f 48 void countFunction2();
Brutus 8:10dcb0846e2f 49 void countFunction3();
Brutus 8:10dcb0846e2f 50 void countFunction4();
Brutus 8:10dcb0846e2f 51 void countFunction5();
Brutus 8:10dcb0846e2f 52 void countFunction6();
Brutus 8:10dcb0846e2f 53 void countFunction7();
Brutus 8:10dcb0846e2f 54 void countFunction8();
Brutus 8:10dcb0846e2f 55 void countFunction9();
Brutus 8:10dcb0846e2f 56 void countFunction10();
Brutus 8:10dcb0846e2f 57 void countFunction11();
Brutus 8:10dcb0846e2f 58 void countFunction12();
Brutus 8:10dcb0846e2f 59 void countFunction13();
Brutus 8:10dcb0846e2f 60 void countFunction14();
Brutus 8:10dcb0846e2f 61 void countFunction15();
Brutus 8:10dcb0846e2f 62 void countFunction16();
Brutus 8:10dcb0846e2f 63 void countFunction17();
Brutus 8:10dcb0846e2f 64 void countFunction18();
Brutus 3:6c54aa6db861 65
Brutus 3:6c54aa6db861 66 int main(int argc, char *argv[]) {
Brutus 8:10dcb0846e2f 67
Brutus 8:10dcb0846e2f 68 PSU_OFF = true;
Brutus 3:6c54aa6db861 69
Brutus 8:10dcb0846e2f 70 //InterruptIn teesst[2](PD_13, PD_15);
Brutus 8:10dcb0846e2f 71
Brutus 8:10dcb0846e2f 72 for(int i = 0; i < 9; i++){
Brutus 8:10dcb0846e2f 73 frontFans[i].period_ms(10);
Brutus 8:10dcb0846e2f 74 rearFans[i].period_ms(10);
Brutus 8:10dcb0846e2f 75 frontFans[i].write(0.0);
Brutus 8:10dcb0846e2f 76 rearFans[i].write(0.0);
Brutus 3:6c54aa6db861 77 }
Brutus 3:6c54aa6db861 78
Brutus 3:6c54aa6db861 79 EthernetInterface eth; // init interface ethernet de la carte
Brutus 3:6c54aa6db861 80 UDPSocket sock; // init le socket en UDP de la carte
Brutus 3:6c54aa6db861 81 SocketAddress echo_server;
Brutus 3:6c54aa6db861 82
Brutus 0:5ca563ae05db 83 eth.connect();
Brutus 3:6c54aa6db861 84 sock.open(&eth);
Brutus 3:6c54aa6db861 85
Brutus 5:cee119979b55 86 const char *local_ip = eth.get_ip_address();
Brutus 5:cee119979b55 87 const char *local_mac = eth.get_mac_address();
Brutus 5:cee119979b55 88
Brutus 5:cee119979b55 89 printf("\nClient IP Address is %s \n", local_ip);
Brutus 8:10dcb0846e2f 90 printf("Port num is %d \n", ECHO_SERVER_PORT);
Brutus 1:179393386b47 91
Brutus 1:179393386b47 92 echo_server.set_ip_address(ECHO_SERVER_ADDRESS);
Brutus 1:179393386b47 93 echo_server.set_port(ECHO_SERVER_PORT);
Brutus 0:5ca563ae05db 94
Brutus 3:6c54aa6db861 95 fantest = 1;
Brutus 3:6c54aa6db861 96 wait(1);
Brutus 3:6c54aa6db861 97 fantest = 0;
Brutus 3:6c54aa6db861 98 wait(1);
Brutus 1:179393386b47 99
YuK41 4:fb63da7601aa 100 bool ack = 0;
Brutus 1:179393386b47 101
YuK41 4:fb63da7601aa 102 while(ack == 0){
Brutus 5:cee119979b55 103 char out_buffer[18];
YuK41 4:fb63da7601aa 104 snprintf(out_buffer, sizeof(out_buffer), "%s", eth.get_mac_address());
Brutus 8:10dcb0846e2f 105 //sprintf(out_buffer, "%s", eth.get_mac_address());
YuK41 4:fb63da7601aa 106 sock.sendto(echo_server, out_buffer, sizeof(out_buffer));
YuK41 4:fb63da7601aa 107
Brutus 5:cee119979b55 108 printf("%s\n", out_buffer);
YuK41 4:fb63da7601aa 109
YuK41 4:fb63da7601aa 110 sock.set_timeout(1000);
YuK41 4:fb63da7601aa 111
YuK41 4:fb63da7601aa 112 char in_buffer[256];
YuK41 4:fb63da7601aa 113 int n = sock.recvfrom(&echo_server, in_buffer, sizeof(in_buffer));
YuK41 4:fb63da7601aa 114 in_buffer[n] = '\0';
YuK41 4:fb63da7601aa 115
YuK41 4:fb63da7601aa 116 printf("%s\n", in_buffer);
YuK41 4:fb63da7601aa 117
Brutus 5:cee119979b55 118 int ack_message = transString(in_buffer);
Brutus 5:cee119979b55 119
Brutus 5:cee119979b55 120 if(ack_message == 1){
YuK41 4:fb63da7601aa 121 ack = 1;
YuK41 4:fb63da7601aa 122 sock.set_timeout(-1);
Brutus 8:10dcb0846e2f 123 PSU_OFF = false; // turns on the PSU if init is complet
YuK41 4:fb63da7601aa 124 }
YuK41 4:fb63da7601aa 125 }
YuK41 4:fb63da7601aa 126
YuK41 4:fb63da7601aa 127 //printf(out_buffer);
YuK41 4:fb63da7601aa 128
Brutus 3:6c54aa6db861 129 while(1){
Brutus 3:6c54aa6db861 130 char out_buffer[] = "Envoyez moi une vitesse plz !";
Brutus 3:6c54aa6db861 131 printf("Sending message '%s' to server (%s)\n",out_buffer,ECHO_SERVER_ADDRESS);
Brutus 3:6c54aa6db861 132 sock.sendto(echo_server, out_buffer, sizeof(out_buffer));
Brutus 3:6c54aa6db861 133
Brutus 3:6c54aa6db861 134 char in_buffer[256];
Brutus 3:6c54aa6db861 135 int n = sock.recvfrom(&echo_server, in_buffer, sizeof(in_buffer));
Brutus 3:6c54aa6db861 136
Brutus 3:6c54aa6db861 137 in_buffer[n] = '\0';
Brutus 3:6c54aa6db861 138
Brutus 3:6c54aa6db861 139 printf("%s\n", in_buffer);
Brutus 3:6c54aa6db861 140
Brutus 3:6c54aa6db861 141 splitString(in_buffer);
Brutus 3:6c54aa6db861 142
Brutus 8:10dcb0846e2f 143 printf("FR_len : %d fan_len : %d pwm_len : %d\n", FR_len, fan_len, pwm_len);
Brutus 8:10dcb0846e2f 144 printf("FR_str : %s fan_str : %s pwm_str : %s\n", FR_str, fan_str, pwm_str);
Brutus 8:10dcb0846e2f 145 printf("FR : %d fan[0] : %d pwm : %lf\n", FR, fan[0], pwm_f);
Brutus 3:6c54aa6db861 146
Brutus 3:6c54aa6db861 147 switch(FR){
Brutus 3:6c54aa6db861 148 case 0: // front fans
Brutus 8:10dcb0846e2f 149 if(fan[0] == 0){
Brutus 8:10dcb0846e2f 150 for(int i = 0; i < 9; i++){
Brutus 8:10dcb0846e2f 151 frontFans[i].write(pwm_f);
Brutus 8:10dcb0846e2f 152 }
Brutus 8:10dcb0846e2f 153 }
Brutus 8:10dcb0846e2f 154 else{
Brutus 8:10dcb0846e2f 155 for(int i = 0; i < fan_len; i++){
Brutus 8:10dcb0846e2f 156 frontFans[fan[i] - 1].write(pwm_f);
Brutus 8:10dcb0846e2f 157 }
Brutus 3:6c54aa6db861 158 }
Brutus 3:6c54aa6db861 159 break;
Brutus 3:6c54aa6db861 160
Brutus 3:6c54aa6db861 161 case 1: // rear fans
Brutus 8:10dcb0846e2f 162 if(fan[0] == 0){
Brutus 8:10dcb0846e2f 163 for(int i = 0; i < 9; i++){
Brutus 8:10dcb0846e2f 164 rearFans[i].write(pwm_f);
Brutus 8:10dcb0846e2f 165 }
Brutus 8:10dcb0846e2f 166 }
Brutus 8:10dcb0846e2f 167 else{
Brutus 8:10dcb0846e2f 168 for(int i = 0; i < fan_len; i++){
Brutus 8:10dcb0846e2f 169 rearFans[fan[i] - 1].write(pwm_f);
Brutus 8:10dcb0846e2f 170 }
Brutus 3:6c54aa6db861 171 }
Brutus 3:6c54aa6db861 172 break;
Brutus 3:6c54aa6db861 173
Brutus 3:6c54aa6db861 174 case 2: // both fans
Brutus 8:10dcb0846e2f 175 if(fan[0] == 0){
Brutus 8:10dcb0846e2f 176 for(int i = 0; i < 9; i++){
Brutus 8:10dcb0846e2f 177 frontFans[i].write(pwm_f);
Brutus 8:10dcb0846e2f 178 rearFans[i].write(pwm_f);
Brutus 8:10dcb0846e2f 179 }
Brutus 8:10dcb0846e2f 180 }
Brutus 8:10dcb0846e2f 181 else{
Brutus 8:10dcb0846e2f 182 for(int i = 0; i < fan_len; i++){
Brutus 8:10dcb0846e2f 183 frontFans[fan[i] - 1].write(pwm_f);
Brutus 8:10dcb0846e2f 184 rearFans[fan[i] - 1].write(pwm_f);
Brutus 8:10dcb0846e2f 185 }
Brutus 8:10dcb0846e2f 186 }
Brutus 8:10dcb0846e2f 187 break;
Brutus 8:10dcb0846e2f 188
Brutus 8:10dcb0846e2f 189 case 3: // turns off PSU
Brutus 8:10dcb0846e2f 190 PSU_OFF = true;
Brutus 8:10dcb0846e2f 191 //char out_bufferF[] = "PSU OFF";
Brutus 8:10dcb0846e2f 192 //sock.sendto(echo_server, out_bufferF, sizeof(out_bufferF));
Brutus 8:10dcb0846e2f 193 break;
Brutus 8:10dcb0846e2f 194
Brutus 8:10dcb0846e2f 195 case 4: // turns on PSU
Brutus 8:10dcb0846e2f 196 PSU_OFF = false;
Brutus 8:10dcb0846e2f 197 //char out_bufferN[] = "PSU ON";
Brutus 8:10dcb0846e2f 198 //sock.sendto(echo_server, out_bufferN, sizeof(out_bufferN));
Brutus 8:10dcb0846e2f 199 break;
Brutus 8:10dcb0846e2f 200
Brutus 8:10dcb0846e2f 201 case 5: // kills the PSU
Brutus 8:10dcb0846e2f 202 PSU_DEAD = true;
Brutus 8:10dcb0846e2f 203 //char out_bufferK[] = "PSU KILLED";
Brutus 8:10dcb0846e2f 204 //sock.sendto(echo_server, out_bufferK, sizeof(out_bufferK));
Brutus 8:10dcb0846e2f 205 break;
Brutus 8:10dcb0846e2f 206
Brutus 8:10dcb0846e2f 207 case 6: // revives the PSU
Brutus 8:10dcb0846e2f 208 PSU_DEAD = false;
Brutus 8:10dcb0846e2f 209 //char out_bufferR[] = "PSU REVIVED";
Brutus 8:10dcb0846e2f 210 //sock.sendto(echo_server, out_bufferR, sizeof(out_bufferR));
Brutus 8:10dcb0846e2f 211 break;
Brutus 8:10dcb0846e2f 212
Brutus 8:10dcb0846e2f 213 case 10:{
Brutus 8:10dcb0846e2f 214 InterruptIn rpmIn(counterRear[0]);
Brutus 8:10dcb0846e2f 215 count[0] = 0;
Brutus 8:10dcb0846e2f 216 rpmIn.rise(&countFunction);
Brutus 8:10dcb0846e2f 217 t.reset();
Brutus 8:10dcb0846e2f 218 t.start();
Brutus 8:10dcb0846e2f 219 while(t.read_ms() < 1001);
Brutus 8:10dcb0846e2f 220 t.stop();
Brutus 8:10dcb0846e2f 221 rpmIn.rise(NULL);
Brutus 8:10dcb0846e2f 222 double rev = (double)count[0];
Brutus 8:10dcb0846e2f 223 double rpm1 = rev*30;
Brutus 8:10dcb0846e2f 224 printf("%lf\n", rpm1);
Brutus 8:10dcb0846e2f 225 }
Brutus 8:10dcb0846e2f 226 break;
Brutus 8:10dcb0846e2f 227
Brutus 8:10dcb0846e2f 228 case 11:{
Brutus 8:10dcb0846e2f 229 for(int i = 0; i < fan_len; i++){
Brutus 8:10dcb0846e2f 230 InterruptIn rpmIn(counterRear[fan[i] - 1]);
Brutus 8:10dcb0846e2f 231 t.reset();
Brutus 8:10dcb0846e2f 232 count[0] = 0;
Brutus 8:10dcb0846e2f 233 rpmIn.rise(&countFunction);
Brutus 8:10dcb0846e2f 234 while(count[0] == 0);
Brutus 8:10dcb0846e2f 235 t.start();
Brutus 8:10dcb0846e2f 236 while(count[0] < (2*tours)+1){
Brutus 8:10dcb0846e2f 237 //rpmIn.rise(&countFunction(0));
Brutus 8:10dcb0846e2f 238 }
Brutus 8:10dcb0846e2f 239 t.stop();
Brutus 8:10dcb0846e2f 240 rpmIn.rise(NULL);
Brutus 8:10dcb0846e2f 241 double rpm1 = (60000*tours)/t.read_ms();
Brutus 8:10dcb0846e2f 242 printf("rpm : %lf\n", rpm1);
Brutus 8:10dcb0846e2f 243 }
Brutus 8:10dcb0846e2f 244 }
Brutus 8:10dcb0846e2f 245 break;
Brutus 8:10dcb0846e2f 246
Brutus 8:10dcb0846e2f 247 case 12:{
Brutus 8:10dcb0846e2f 248 while(readAllRpm == 0) {
Brutus 8:10dcb0846e2f 249 if(readRpm == 0) {
Brutus 8:10dcb0846e2f 250 InterruptIn RI1(counterFront[0]);
Brutus 8:10dcb0846e2f 251 InterruptIn RI2(counterFront[1]);
Brutus 8:10dcb0846e2f 252 InterruptIn RI3(counterFront[2]);
Brutus 8:10dcb0846e2f 253 InterruptIn RI4(counterFront[3]);
Brutus 8:10dcb0846e2f 254 InterruptIn RI5(counterFront[4]);
Brutus 8:10dcb0846e2f 255 InterruptIn RI6(counterFront[5]);
Brutus 8:10dcb0846e2f 256 InterruptIn RI7(counterFront[6]);
Brutus 8:10dcb0846e2f 257 InterruptIn RI8(counterFront[7]);
Brutus 8:10dcb0846e2f 258 InterruptIn RI9(counterFront[8]);
Brutus 8:10dcb0846e2f 259 for(int i = 0; i < 9; i++) {
Brutus 8:10dcb0846e2f 260 count[i] = 0;
Brutus 8:10dcb0846e2f 261 }
Brutus 8:10dcb0846e2f 262 RI1.rise(&countFunction);
Brutus 8:10dcb0846e2f 263 RI2.rise(&countFunction2);
Brutus 8:10dcb0846e2f 264 RI3.rise(&countFunction3);
Brutus 8:10dcb0846e2f 265 RI4.rise(&countFunction4);
Brutus 8:10dcb0846e2f 266 RI5.rise(&countFunction5);
Brutus 8:10dcb0846e2f 267 RI6.rise(&countFunction6);
Brutus 8:10dcb0846e2f 268 RI7.rise(&countFunction7);
Brutus 8:10dcb0846e2f 269 RI8.rise(&countFunction8);
Brutus 8:10dcb0846e2f 270 RI9.rise(&countFunction9);
Brutus 8:10dcb0846e2f 271 t.reset();
Brutus 8:10dcb0846e2f 272 t.start();
Brutus 8:10dcb0846e2f 273 while(t.read_ms() < 501);
Brutus 8:10dcb0846e2f 274 t.stop();
Brutus 8:10dcb0846e2f 275 RI1.rise(NULL);
Brutus 8:10dcb0846e2f 276 RI2.rise(NULL);
Brutus 8:10dcb0846e2f 277 RI3.rise(NULL);
Brutus 8:10dcb0846e2f 278 RI4.rise(NULL);
Brutus 8:10dcb0846e2f 279 RI5.rise(NULL);
Brutus 8:10dcb0846e2f 280 RI6.rise(NULL);
Brutus 8:10dcb0846e2f 281 RI7.rise(NULL);
Brutus 8:10dcb0846e2f 282 RI8.rise(NULL);
Brutus 8:10dcb0846e2f 283 RI9.rise(NULL);
Brutus 8:10dcb0846e2f 284 for(int i = 0; i < 9; i++) {
Brutus 8:10dcb0846e2f 285 double rev1[9] = {0.0};
Brutus 8:10dcb0846e2f 286 rev1[i] = (double)count[i];
Brutus 9:499df2f06bda 287 rpm[i] = rev1[i]*60;
Brutus 8:10dcb0846e2f 288 printf("rpm%d : %lf\n", i, rpm[i]);
Brutus 8:10dcb0846e2f 289 }
Brutus 8:10dcb0846e2f 290 readRpm = 1;
Brutus 8:10dcb0846e2f 291 } else {
Brutus 8:10dcb0846e2f 292 InterruptIn RI1(counterRear[0]);
Brutus 8:10dcb0846e2f 293 InterruptIn RI2(counterRear[1]);
Brutus 8:10dcb0846e2f 294 InterruptIn RI3(counterRear[2]);
Brutus 8:10dcb0846e2f 295 InterruptIn RI4(counterRear[3]);
Brutus 8:10dcb0846e2f 296 InterruptIn RI5(counterRear[4]);
Brutus 8:10dcb0846e2f 297 InterruptIn RI6(counterRear[5]);
Brutus 8:10dcb0846e2f 298 InterruptIn RI7(counterRear[6]);
Brutus 8:10dcb0846e2f 299 InterruptIn RI8(counterRear[7]);
Brutus 8:10dcb0846e2f 300 InterruptIn RI9(counterRear[8]);
Brutus 8:10dcb0846e2f 301 for(int i = 0; i < 9; i++) {
Brutus 8:10dcb0846e2f 302 count[9+i] = 0;
Brutus 8:10dcb0846e2f 303 }
Brutus 8:10dcb0846e2f 304 RI1.rise(&countFunction10);
Brutus 8:10dcb0846e2f 305 RI2.rise(&countFunction11);
Brutus 8:10dcb0846e2f 306 RI3.rise(&countFunction12);
Brutus 8:10dcb0846e2f 307 RI4.rise(&countFunction13);
Brutus 8:10dcb0846e2f 308 RI5.rise(&countFunction14);
Brutus 8:10dcb0846e2f 309 RI6.rise(&countFunction15);
Brutus 8:10dcb0846e2f 310 RI7.rise(&countFunction16);
Brutus 8:10dcb0846e2f 311 RI8.rise(&countFunction17);
Brutus 8:10dcb0846e2f 312 RI9.rise(&countFunction18);
Brutus 8:10dcb0846e2f 313 t.reset();
Brutus 8:10dcb0846e2f 314 t.start();
Brutus 8:10dcb0846e2f 315 while(t.read_ms() < 501);
Brutus 8:10dcb0846e2f 316 t.stop();
Brutus 8:10dcb0846e2f 317 RI1.rise(NULL);
Brutus 8:10dcb0846e2f 318 RI2.rise(NULL);
Brutus 8:10dcb0846e2f 319 RI3.rise(NULL);
Brutus 8:10dcb0846e2f 320 RI4.rise(NULL);
Brutus 8:10dcb0846e2f 321 RI5.rise(NULL);
Brutus 8:10dcb0846e2f 322 RI6.rise(NULL);
Brutus 8:10dcb0846e2f 323 RI7.rise(NULL);
Brutus 8:10dcb0846e2f 324 RI8.rise(NULL);
Brutus 8:10dcb0846e2f 325 RI9.rise(NULL);
Brutus 8:10dcb0846e2f 326 for(int i = 0; i < 9; i++) {
Brutus 8:10dcb0846e2f 327 double rev1[9] = {0.0};
Brutus 8:10dcb0846e2f 328 rev1[i] = (double)count[9+i];
Brutus 9:499df2f06bda 329 rpm[9+i] = rev1[i]*60;
Brutus 8:10dcb0846e2f 330 printf("rpm%d : %lf\n", 9+i, rpm[9+i]);
Brutus 8:10dcb0846e2f 331 }
Brutus 8:10dcb0846e2f 332 readAllRpm = 1;
Brutus 8:10dcb0846e2f 333 readRpm = 0;
Brutus 8:10dcb0846e2f 334 }
Brutus 8:10dcb0846e2f 335 }
Brutus 8:10dcb0846e2f 336 readAllRpm = 0;
Brutus 8:10dcb0846e2f 337 }
Brutus 8:10dcb0846e2f 338 break;
Brutus 8:10dcb0846e2f 339
Brutus 8:10dcb0846e2f 340 case 13:{
Brutus 8:10dcb0846e2f 341 InterruptIn RI1(counterRear[0]);
Brutus 8:10dcb0846e2f 342 InterruptIn RI2(counterRear[1]);
Brutus 8:10dcb0846e2f 343 InterruptIn RI3(counterRear[2]);
Brutus 8:10dcb0846e2f 344 InterruptIn RI4(counterRear[3]);
Brutus 8:10dcb0846e2f 345 InterruptIn RI5(counterRear[4]);
Brutus 8:10dcb0846e2f 346 InterruptIn RI6(counterRear[5]);
Brutus 8:10dcb0846e2f 347 InterruptIn RI7(counterRear[6]);
Brutus 8:10dcb0846e2f 348 InterruptIn RI8(counterRear[7]);
Brutus 8:10dcb0846e2f 349 InterruptIn RI9(counterRear[8]);
Brutus 8:10dcb0846e2f 350 for(int i = 0; i < 9; i++) {
Brutus 8:10dcb0846e2f 351 count[9+i] = 0;
Brutus 8:10dcb0846e2f 352 }
Brutus 8:10dcb0846e2f 353 RI1.rise(&countFunction10);
Brutus 8:10dcb0846e2f 354 RI2.rise(&countFunction11);
Brutus 8:10dcb0846e2f 355 RI3.rise(&countFunction12);
Brutus 8:10dcb0846e2f 356 RI4.rise(&countFunction13);
Brutus 8:10dcb0846e2f 357 RI5.rise(&countFunction14);
Brutus 8:10dcb0846e2f 358 RI6.rise(&countFunction15);
Brutus 8:10dcb0846e2f 359 RI7.rise(&countFunction16);
Brutus 8:10dcb0846e2f 360 RI8.rise(&countFunction17);
Brutus 8:10dcb0846e2f 361 RI9.rise(&countFunction18);
Brutus 8:10dcb0846e2f 362 t.reset();
Brutus 8:10dcb0846e2f 363 t.start();
Brutus 8:10dcb0846e2f 364 while(t.read_ms() < 501);
Brutus 8:10dcb0846e2f 365 t.stop();
Brutus 8:10dcb0846e2f 366 RI1.rise(NULL);
Brutus 8:10dcb0846e2f 367 RI2.rise(NULL);
Brutus 8:10dcb0846e2f 368 RI3.rise(NULL);
Brutus 8:10dcb0846e2f 369 RI4.rise(NULL);
Brutus 8:10dcb0846e2f 370 RI5.rise(NULL);
Brutus 8:10dcb0846e2f 371 RI6.rise(NULL);
Brutus 8:10dcb0846e2f 372 RI7.rise(NULL);
Brutus 8:10dcb0846e2f 373 RI8.rise(NULL);
Brutus 8:10dcb0846e2f 374 RI9.rise(NULL);
Brutus 8:10dcb0846e2f 375 for(int i = 0; i < 9; i++) {
Brutus 8:10dcb0846e2f 376 double rev1[9] = {0.0};
Brutus 8:10dcb0846e2f 377 rev1[i] = (double)count[9+i];
Brutus 8:10dcb0846e2f 378 rpm[9+i] = rev1[i]*30;
Brutus 8:10dcb0846e2f 379 printf("rpm%d : %lf\n", 9+i, rpm[9+i]);
Brutus 8:10dcb0846e2f 380 }
Brutus 8:10dcb0846e2f 381 }
Brutus 8:10dcb0846e2f 382 break;
Brutus 8:10dcb0846e2f 383
Brutus 8:10dcb0846e2f 384 case 99:{
Brutus 8:10dcb0846e2f 385
Brutus 3:6c54aa6db861 386 }
Brutus 3:6c54aa6db861 387 break;
Brutus 3:6c54aa6db861 388
Brutus 3:6c54aa6db861 389 default:
Brutus 8:10dcb0846e2f 390 for(int i = 0; i < 9; i++){
Brutus 8:10dcb0846e2f 391 frontFans[i].write(0.0);
Brutus 8:10dcb0846e2f 392 rearFans[i].write(0.0);
Brutus 8:10dcb0846e2f 393 }
Brutus 3:6c54aa6db861 394 }
Brutus 8:10dcb0846e2f 395 for(int i = 0; i <= 2; i++){
Brutus 8:10dcb0846e2f 396 FR_str[i] = '\0'; // "resets" the FR_str
Brutus 8:10dcb0846e2f 397 }
Brutus 8:10dcb0846e2f 398 for(int i = 0; i <= 4; i++){
Brutus 8:10dcb0846e2f 399 pwm_str[i] = '\0'; // "resets" the pwm_str
Brutus 8:10dcb0846e2f 400 }
Brutus 3:6c54aa6db861 401 }
Brutus 1:179393386b47 402 }
Brutus 1:179393386b47 403
Brutus 3:6c54aa6db861 404 void splitString(char stringToSplit[]){
Brutus 3:6c54aa6db861 405 char *comma_1 = strchr(stringToSplit, ',') + 1;
Brutus 3:6c54aa6db861 406 char *comma_2 = strchr(comma_1, ',') + 1;
Brutus 3:6c54aa6db861 407 char *comma_3 = strchr(comma_3, '\0');
Brutus 3:6c54aa6db861 408
Brutus 3:6c54aa6db861 409 FR_len = comma_1 - stringToSplit - 1;
Brutus 3:6c54aa6db861 410 fan_len = comma_2 - comma_1 - 1;
Brutus 3:6c54aa6db861 411 pwm_len = comma_3 - comma_2;
Brutus 8:10dcb0846e2f 412 printf("comma_1 : %c comma_2 : %s comma_3 : %s\n", *comma_1, comma_2, comma_3);
Brutus 8:10dcb0846e2f 413 strncpy(FR_str, stringToSplit, FR_len);
Brutus 8:10dcb0846e2f 414 FR = strtol(FR_str, NULL, 10);
Brutus 3:6c54aa6db861 415
Brutus 3:6c54aa6db861 416 strncpy(fan_str, comma_1, fan_len);
Brutus 3:6c54aa6db861 417 for(int i = 0; i < fan_len; i++){
Brutus 3:6c54aa6db861 418 fan[i] = fan_str[i] - '0';
Brutus 3:6c54aa6db861 419 }
Brutus 3:6c54aa6db861 420
Brutus 3:6c54aa6db861 421 strncpy(pwm_str, comma_2, pwm_len);
Brutus 8:10dcb0846e2f 422 double pwm = strtod(pwm_str, NULL);
Brutus 8:10dcb0846e2f 423 pwm_f = pwm/100.0;
Brutus 5:cee119979b55 424 }
Brutus 5:cee119979b55 425
Brutus 5:cee119979b55 426 int transString(char stringToTrans[]){
Brutus 5:cee119979b55 427 char in_str[2] = {0};
Brutus 5:cee119979b55 428 strncpy(in_str, stringToTrans,1);
Brutus 8:10dcb0846e2f 429 return atoi(in_str);
Brutus 8:10dcb0846e2f 430 }
Brutus 8:10dcb0846e2f 431
Brutus 8:10dcb0846e2f 432 void countFunction(){
Brutus 8:10dcb0846e2f 433 count[0]++;
Brutus 8:10dcb0846e2f 434 }
Brutus 8:10dcb0846e2f 435
Brutus 8:10dcb0846e2f 436 void countFunction2(){
Brutus 8:10dcb0846e2f 437 count[1]++;
Brutus 8:10dcb0846e2f 438 }
Brutus 8:10dcb0846e2f 439
Brutus 8:10dcb0846e2f 440 void countFunction3(){
Brutus 8:10dcb0846e2f 441 count[2]++;
Brutus 8:10dcb0846e2f 442 }
Brutus 8:10dcb0846e2f 443
Brutus 8:10dcb0846e2f 444 void countFunction4(){
Brutus 8:10dcb0846e2f 445 count[3]++;
Brutus 8:10dcb0846e2f 446 }
Brutus 8:10dcb0846e2f 447
Brutus 8:10dcb0846e2f 448 void countFunction5(){
Brutus 8:10dcb0846e2f 449 count[4]++;
Brutus 8:10dcb0846e2f 450 }
Brutus 8:10dcb0846e2f 451
Brutus 8:10dcb0846e2f 452 void countFunction6(){
Brutus 8:10dcb0846e2f 453 count[5]++;
Brutus 8:10dcb0846e2f 454 }
Brutus 8:10dcb0846e2f 455
Brutus 8:10dcb0846e2f 456 void countFunction7(){
Brutus 8:10dcb0846e2f 457 count[6]++;
Brutus 8:10dcb0846e2f 458 }
Brutus 8:10dcb0846e2f 459
Brutus 8:10dcb0846e2f 460 void countFunction8(){
Brutus 8:10dcb0846e2f 461 count[7]++;
Brutus 8:10dcb0846e2f 462 }
Brutus 8:10dcb0846e2f 463
Brutus 8:10dcb0846e2f 464 void countFunction9(){
Brutus 8:10dcb0846e2f 465 count[8]++;
Brutus 8:10dcb0846e2f 466 }
Brutus 8:10dcb0846e2f 467
Brutus 8:10dcb0846e2f 468 void countFunction10(){
Brutus 8:10dcb0846e2f 469 count[9]++;
Brutus 8:10dcb0846e2f 470 }
Brutus 8:10dcb0846e2f 471
Brutus 8:10dcb0846e2f 472 void countFunction11(){
Brutus 8:10dcb0846e2f 473 count[10]++;
Brutus 8:10dcb0846e2f 474 }
Brutus 8:10dcb0846e2f 475
Brutus 8:10dcb0846e2f 476 void countFunction12(){
Brutus 8:10dcb0846e2f 477 count[11]++;
Brutus 8:10dcb0846e2f 478 }
Brutus 8:10dcb0846e2f 479
Brutus 8:10dcb0846e2f 480 void countFunction13(){
Brutus 8:10dcb0846e2f 481 count[12]++;
Brutus 8:10dcb0846e2f 482 }
Brutus 8:10dcb0846e2f 483
Brutus 8:10dcb0846e2f 484 void countFunction14(){
Brutus 8:10dcb0846e2f 485 count[13]++;
Brutus 8:10dcb0846e2f 486 }
Brutus 8:10dcb0846e2f 487
Brutus 8:10dcb0846e2f 488 void countFunction15(){
Brutus 8:10dcb0846e2f 489 count[14]++;
Brutus 8:10dcb0846e2f 490 }
Brutus 8:10dcb0846e2f 491
Brutus 8:10dcb0846e2f 492 void countFunction16(){
Brutus 8:10dcb0846e2f 493 count[15]++;
Brutus 8:10dcb0846e2f 494 }
Brutus 8:10dcb0846e2f 495
Brutus 8:10dcb0846e2f 496 void countFunction17(){
Brutus 8:10dcb0846e2f 497 count[16]++;
Brutus 8:10dcb0846e2f 498 }
Brutus 8:10dcb0846e2f 499
Brutus 8:10dcb0846e2f 500 void countFunction18(){
Brutus 8:10dcb0846e2f 501 count[17]++;
Brutus 8:10dcb0846e2f 502 }