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.
Dependencies: ConfigFile EthernetInterface mbed-rtos mbed
Fork of S05APP3 by
main.cpp@13:62404d7dab8d, 2017-02-13 (annotated)
- Committer:
- benjaminroy
- Date:
- Mon Feb 13 17:09:27 2017 +0000
- Revision:
- 13:62404d7dab8d
- Parent:
- 12:42986a9c3682
- Child:
- 14:8b59a90725bc
Envoie des donn?es au serveur
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
benjaminroy | 9:f6f79f136101 | 1 | // ===================== COORDINATOR ===================== |
benjaminroy | 9:f6f79f136101 | 2 | // ======================================================= |
marc1119 | 0:ec23a7ae804c | 3 | #include "EthernetInterface.h" |
marc1119 | 0:ec23a7ae804c | 4 | #include "ConfigFile.h" |
marc1119 | 0:ec23a7ae804c | 5 | #include "mbed.h" |
benjaminroy | 9:f6f79f136101 | 6 | #include "rtos.h" |
marc1119 | 0:ec23a7ae804c | 7 | |
marc1119 | 0:ec23a7ae804c | 8 | DigitalOut reset(p8); |
benjaminroy | 9:f6f79f136101 | 9 | EthernetInterface eth; |
marc1119 | 8:9c34eb3cb3ef | 10 | Serial xbee(p13, p14); // tx, rx |
marc1119 | 1:ceb3f8ba8793 | 11 | Serial pc(USBTX, USBRX); // tx, rx |
benjaminroy | 9:f6f79f136101 | 12 | TCPSocketConnection sock; |
benjaminroy | 11:205ddd5406af | 13 | Ticker ticker1; |
marc1119 | 0:ec23a7ae804c | 14 | |
benjaminroy | 13:62404d7dab8d | 15 | /* Mail */ |
benjaminroy | 13:62404d7dab8d | 16 | typedef struct { |
benjaminroy | 13:62404d7dab8d | 17 | char strAccelerationX[10]; |
benjaminroy | 13:62404d7dab8d | 18 | char strAccelerationY[10]; |
benjaminroy | 13:62404d7dab8d | 19 | char strAccelerationZ[10]; |
benjaminroy | 13:62404d7dab8d | 20 | char strDryContact[10]; |
benjaminroy | 13:62404d7dab8d | 21 | } mail_t; |
benjaminroy | 13:62404d7dab8d | 22 | |
benjaminroy | 13:62404d7dab8d | 23 | Mail<mail_t, 100> mail_box; |
benjaminroy | 13:62404d7dab8d | 24 | |
benjaminroy | 13:62404d7dab8d | 25 | uint8_t routerAddress[8]; |
benjaminroy | 6:fd7d91edcf60 | 26 | uint16_t portNumber = 0; |
benjaminroy | 6:fd7d91edcf60 | 27 | uint16_t panId = 0; |
benjaminroy | 6:fd7d91edcf60 | 28 | char serverAddress[32]; |
marc1119 | 8:9c34eb3cb3ef | 29 | char panIdChar[5]; |
benjaminroy | 9:f6f79f136101 | 30 | char portNbr[5]; |
marc1119 | 3:fbd4b164e8ad | 31 | bool boolLED = false; |
marc1119 | 3:fbd4b164e8ad | 32 | |
benjaminroy | 6:fd7d91edcf60 | 33 | void printBuffer(uint8_t bufferSize, uint8_t* buffer) { |
marc1119 | 8:9c34eb3cb3ef | 34 | for(uint8_t k = 0; k <= bufferSize; k++) { |
benjaminroy | 6:fd7d91edcf60 | 35 | pc.printf("%X-", buffer[k]); |
benjaminroy | 6:fd7d91edcf60 | 36 | } |
benjaminroy | 6:fd7d91edcf60 | 37 | printf("\n"); |
benjaminroy | 6:fd7d91edcf60 | 38 | } |
benjaminroy | 6:fd7d91edcf60 | 39 | |
benjaminroy | 6:fd7d91edcf60 | 40 | void readConfigFile() { |
benjaminroy | 6:fd7d91edcf60 | 41 | LocalFileSystem local("local"); |
benjaminroy | 6:fd7d91edcf60 | 42 | ConfigFile cfg; |
benjaminroy | 6:fd7d91edcf60 | 43 | char *serverAddressStr = "serverAddr"; |
benjaminroy | 6:fd7d91edcf60 | 44 | char *portNumberStr = "portNb"; |
benjaminroy | 6:fd7d91edcf60 | 45 | char *panIdStr = "panID"; |
benjaminroy | 6:fd7d91edcf60 | 46 | |
benjaminroy | 6:fd7d91edcf60 | 47 | if (!cfg.read("/local/input.cfg")) { |
benjaminroy | 6:fd7d91edcf60 | 48 | error("Erreur dans la lecture du fichier de configuration.\n"); |
benjaminroy | 6:fd7d91edcf60 | 49 | } else { |
benjaminroy | 6:fd7d91edcf60 | 50 | cfg.getValue(panIdStr, &panIdChar[0], sizeof(panIdChar)); |
benjaminroy | 6:fd7d91edcf60 | 51 | cfg.getValue(serverAddressStr, &serverAddress[0], sizeof(serverAddress)); |
benjaminroy | 6:fd7d91edcf60 | 52 | cfg.getValue(portNumberStr, &portNbr[0], sizeof(portNbr)); |
benjaminroy | 6:fd7d91edcf60 | 53 | |
benjaminroy | 6:fd7d91edcf60 | 54 | portNumber = (uint16_t)strtol(portNbr, NULL, 10); |
benjaminroy | 6:fd7d91edcf60 | 55 | panId = (uint16_t)strtol(panIdChar, NULL, 10); |
benjaminroy | 6:fd7d91edcf60 | 56 | |
benjaminroy | 10:488877f7f56c | 57 | // printf("The server address is %s\n", serverAddress); |
benjaminroy | 10:488877f7f56c | 58 | // printf("The port number is %i\n", portNumber); |
benjaminroy | 10:488877f7f56c | 59 | // printf("The PAN ID is %i\n", panId); |
benjaminroy | 6:fd7d91edcf60 | 60 | } |
benjaminroy | 6:fd7d91edcf60 | 61 | } |
benjaminroy | 6:fd7d91edcf60 | 62 | |
marc1119 | 12:42986a9c3682 | 63 | uint8_t calculateChecksum(uint8_t frameSize, uint8_t* buffer) { |
marc1119 | 12:42986a9c3682 | 64 | uint32_t checksum = 0; |
marc1119 | 12:42986a9c3682 | 65 | uint8_t frameTypeIndex = 3; |
marc1119 | 12:42986a9c3682 | 66 | |
marc1119 | 12:42986a9c3682 | 67 | for (int i = frameTypeIndex; i < frameSize - 1; i++) { |
marc1119 | 12:42986a9c3682 | 68 | checksum += buffer[i]; |
marc1119 | 12:42986a9c3682 | 69 | } |
marc1119 | 12:42986a9c3682 | 70 | |
marc1119 | 12:42986a9c3682 | 71 | return (uint8_t)(0xFF - (checksum & 0xFF)); |
marc1119 | 12:42986a9c3682 | 72 | } |
marc1119 | 12:42986a9c3682 | 73 | |
benjaminroy | 13:62404d7dab8d | 74 | void toogleLED(uint8_t bufferSize, uint8_t* buffer) { |
benjaminroy | 4:393738672d08 | 75 | // Addresse 64 bits = 00 13 A2 00 40 8B 41 6E |
marc1119 | 12:42986a9c3682 | 76 | //uint8_t high[20] = {0x7E, 0x00, 0x10, 0x17, 0x01, 0x00, 0x13, 0xA2, 0x00, 0x40, 0x8B, 0x41, 0x6E, 0xFF, 0xFE, 0x02, 0x44, 0x34, 0x05, 0x3C}; |
marc1119 | 12:42986a9c3682 | 77 | //uint8_t low[20] = {0x7E, 0x00, 0x10, 0x17, 0x02, 0x00, 0x13, 0xA2, 0x00, 0x40, 0x8B, 0x41, 0x6E, 0xFF, 0xFE, 0x02, 0x44, 0x34, 0x04, 0x3C}; |
marc1119 | 12:42986a9c3682 | 78 | uint8_t command[20] = {0}; |
marc1119 | 12:42986a9c3682 | 79 | |
marc1119 | 12:42986a9c3682 | 80 | command[0] = 0x7E; |
marc1119 | 12:42986a9c3682 | 81 | command[1] = 0x00; |
marc1119 | 12:42986a9c3682 | 82 | command[2] = 0x10; |
marc1119 | 12:42986a9c3682 | 83 | command[3] = 0x17; |
marc1119 | 12:42986a9c3682 | 84 | if(boolLED) command[4] = 0x01; |
marc1119 | 12:42986a9c3682 | 85 | else command[4] = 0x02; |
benjaminroy | 13:62404d7dab8d | 86 | command[5] = routerAddress[0]; |
benjaminroy | 13:62404d7dab8d | 87 | command[6] = routerAddress[1]; |
benjaminroy | 13:62404d7dab8d | 88 | command[7] = routerAddress[2]; |
benjaminroy | 13:62404d7dab8d | 89 | command[8] = routerAddress[3]; |
benjaminroy | 13:62404d7dab8d | 90 | command[9] = routerAddress[4]; |
benjaminroy | 13:62404d7dab8d | 91 | command[10] = routerAddress[5]; |
benjaminroy | 13:62404d7dab8d | 92 | command[11] = routerAddress[6]; |
benjaminroy | 13:62404d7dab8d | 93 | command[12] = routerAddress[7]; |
marc1119 | 12:42986a9c3682 | 94 | command[13] = 0xFF; |
marc1119 | 12:42986a9c3682 | 95 | command[14] = 0xFE; |
marc1119 | 12:42986a9c3682 | 96 | command[15] = 0x02; |
marc1119 | 12:42986a9c3682 | 97 | command[16] = 0x44; |
marc1119 | 12:42986a9c3682 | 98 | command[17] = 0x34; |
marc1119 | 12:42986a9c3682 | 99 | if(boolLED) command[4] = 0x05; |
marc1119 | 12:42986a9c3682 | 100 | else command[4] = 0x04; |
marc1119 | 12:42986a9c3682 | 101 | command[19] = calculateChecksum(bufferSize, buffer); |
marc1119 | 12:42986a9c3682 | 102 | |
marc1119 | 12:42986a9c3682 | 103 | // for (uint8_t i = 0; i < 20;) { |
marc1119 | 12:42986a9c3682 | 104 | // if (xbee.writeable()) { |
marc1119 | 12:42986a9c3682 | 105 | // if (boolLED) { |
marc1119 | 12:42986a9c3682 | 106 | // xbee.putc(high[i]); |
marc1119 | 12:42986a9c3682 | 107 | // } else { |
marc1119 | 12:42986a9c3682 | 108 | // xbee.putc(low[i]); |
marc1119 | 12:42986a9c3682 | 109 | // } |
marc1119 | 12:42986a9c3682 | 110 | // i++; |
marc1119 | 12:42986a9c3682 | 111 | // } |
marc1119 | 12:42986a9c3682 | 112 | // } |
marc1119 | 12:42986a9c3682 | 113 | |
marc1119 | 8:9c34eb3cb3ef | 114 | for (uint8_t i = 0; i < 20;) { |
benjaminroy | 4:393738672d08 | 115 | if (xbee.writeable()) { |
marc1119 | 12:42986a9c3682 | 116 | xbee.putc(command[i]); |
marc1119 | 3:fbd4b164e8ad | 117 | i++; |
marc1119 | 3:fbd4b164e8ad | 118 | } |
marc1119 | 3:fbd4b164e8ad | 119 | } |
marc1119 | 3:fbd4b164e8ad | 120 | |
benjaminroy | 4:393738672d08 | 121 | if (boolLED) { |
benjaminroy | 4:393738672d08 | 122 | pc.printf("Et un haut!\n"); |
benjaminroy | 4:393738672d08 | 123 | } else { |
benjaminroy | 4:393738672d08 | 124 | pc.printf("Et un bas!\n"); |
benjaminroy | 4:393738672d08 | 125 | } |
marc1119 | 3:fbd4b164e8ad | 126 | boolLED = !boolLED; |
marc1119 | 3:fbd4b164e8ad | 127 | } |
marc1119 | 3:fbd4b164e8ad | 128 | |
benjaminroy | 13:62404d7dab8d | 129 | void sendDataToServer() { |
benjaminroy | 13:62404d7dab8d | 130 | while(1) { |
benjaminroy | 13:62404d7dab8d | 131 | osEvent evt = mail_box.get(); |
benjaminroy | 9:f6f79f136101 | 132 | |
benjaminroy | 13:62404d7dab8d | 133 | if (evt.status == osEventMail) { |
benjaminroy | 13:62404d7dab8d | 134 | mail_t *mail = (mail_t*)evt.value.p; |
benjaminroy | 13:62404d7dab8d | 135 | |
benjaminroy | 13:62404d7dab8d | 136 | int responseSize = 0; |
benjaminroy | 13:62404d7dab8d | 137 | char buffer[50] = { 0 }; |
benjaminroy | 13:62404d7dab8d | 138 | for (int i = 0; i < 50; i++) { |
benjaminroy | 13:62404d7dab8d | 139 | buffer[i] = 0; |
benjaminroy | 13:62404d7dab8d | 140 | } |
benjaminroy | 13:62404d7dab8d | 141 | sprintf(buffer, "%s, %s, %s\0", mail->strAccelerationX, mail->strAccelerationY, mail->strAccelerationZ); |
benjaminroy | 13:62404d7dab8d | 142 | pc.printf("Send to server: %s\n", buffer); |
benjaminroy | 13:62404d7dab8d | 143 | |
benjaminroy | 13:62404d7dab8d | 144 | sock.send_all(buffer, sizeof(buffer)-1); |
benjaminroy | 13:62404d7dab8d | 145 | responseSize = sock.receive(buffer, sizeof(buffer)-1); |
benjaminroy | 13:62404d7dab8d | 146 | |
benjaminroy | 13:62404d7dab8d | 147 | if (responseSize <= 0) { |
benjaminroy | 13:62404d7dab8d | 148 | pc.printf("Error"); |
benjaminroy | 13:62404d7dab8d | 149 | } |
benjaminroy | 13:62404d7dab8d | 150 | |
benjaminroy | 13:62404d7dab8d | 151 | buffer[responseSize] = '\0'; |
benjaminroy | 13:62404d7dab8d | 152 | pc.printf("Received %d chars from server: %s\n", responseSize, buffer); |
benjaminroy | 13:62404d7dab8d | 153 | |
benjaminroy | 13:62404d7dab8d | 154 | mail_box.free(mail); |
benjaminroy | 9:f6f79f136101 | 155 | } |
benjaminroy | 13:62404d7dab8d | 156 | } |
marc1119 | 1:ceb3f8ba8793 | 157 | } |
marc1119 | 1:ceb3f8ba8793 | 158 | |
benjaminroy | 4:393738672d08 | 159 | void checkForError(uint8_t* buffer) { |
benjaminroy | 4:393738672d08 | 160 | if (buffer[0] == 0x97) { |
benjaminroy | 4:393738672d08 | 161 | if (buffer[1] == 0x02) { |
marc1119 | 3:fbd4b164e8ad | 162 | pc.printf("Erreur dans la remote AT command pour mettre la DEL a l'etat bas.\n"); |
marc1119 | 3:fbd4b164e8ad | 163 | } |
benjaminroy | 4:393738672d08 | 164 | else if (buffer[1] == 0x01) { |
marc1119 | 3:fbd4b164e8ad | 165 | pc.printf("Erreur dans la remote AT command pour mettre la DEL a l'etat haut\n"); |
marc1119 | 3:fbd4b164e8ad | 166 | } |
marc1119 | 3:fbd4b164e8ad | 167 | } |
marc1119 | 3:fbd4b164e8ad | 168 | } |
marc1119 | 3:fbd4b164e8ad | 169 | |
benjaminroy | 10:488877f7f56c | 170 | bool checksumIsValid(uint8_t bufferSize, uint8_t* buffer) { |
marc1119 | 2:3fbf13ba290e | 171 | uint32_t checkSum = 0; |
benjaminroy | 4:393738672d08 | 172 | |
benjaminroy | 10:488877f7f56c | 173 | for (int i = 0; i < bufferSize; i++) { |
marc1119 | 2:3fbf13ba290e | 174 | checkSum += buffer[i]; |
benjaminroy | 4:393738672d08 | 175 | } |
benjaminroy | 10:488877f7f56c | 176 | if ((0xFF - (checkSum & 0xFF)) != buffer[bufferSize]) { |
benjaminroy | 10:488877f7f56c | 177 | pc.printf("Erreur dans la transmission de la trame. \n"); |
benjaminroy | 10:488877f7f56c | 178 | return false; |
benjaminroy | 4:393738672d08 | 179 | } |
benjaminroy | 10:488877f7f56c | 180 | return true; |
marc1119 | 2:3fbf13ba290e | 181 | } |
marc1119 | 2:3fbf13ba290e | 182 | |
benjaminroy | 10:488877f7f56c | 183 | // We are storing the 64 bits address of the router. |
marc1119 | 8:9c34eb3cb3ef | 184 | void readRouterAddress(uint8_t* buffer) { |
benjaminroy | 13:62404d7dab8d | 185 | routerAddress[0] = buffer[2]; |
benjaminroy | 13:62404d7dab8d | 186 | routerAddress[1] = buffer[3]; |
benjaminroy | 13:62404d7dab8d | 187 | routerAddress[2] = buffer[4]; |
benjaminroy | 13:62404d7dab8d | 188 | routerAddress[3] = buffer[5]; |
benjaminroy | 13:62404d7dab8d | 189 | routerAddress[4] = buffer[6]; |
benjaminroy | 13:62404d7dab8d | 190 | routerAddress[5] = buffer[7]; |
benjaminroy | 13:62404d7dab8d | 191 | routerAddress[6] = buffer[8]; |
benjaminroy | 13:62404d7dab8d | 192 | routerAddress[7] = buffer[9]; |
marc1119 | 8:9c34eb3cb3ef | 193 | } |
marc1119 | 8:9c34eb3cb3ef | 194 | |
benjaminroy | 10:488877f7f56c | 195 | void readRouterData(uint8_t bufferSize, uint8_t* buffer) { |
benjaminroy | 10:488877f7f56c | 196 | uint16_t acc[3] = {0}; |
marc1119 | 8:9c34eb3cb3ef | 197 | |
benjaminroy | 10:488877f7f56c | 198 | if (buffer[0] == 0x90 && bufferSize == 18) { // Accelerations (X,Y,Z) |
benjaminroy | 10:488877f7f56c | 199 | for (uint8_t i = 12; i < bufferSize; i += 2) { |
benjaminroy | 10:488877f7f56c | 200 | acc[(i/2)-6] = (buffer[i+1] << 8 ) | (buffer[i] & 0xff); |
marc1119 | 2:3fbf13ba290e | 201 | } |
benjaminroy | 10:488877f7f56c | 202 | // pc.printf("Acceleration X: %d\n", acc[0]); |
benjaminroy | 10:488877f7f56c | 203 | // pc.printf("Acceleration Y: %d\n", acc[1]); |
benjaminroy | 10:488877f7f56c | 204 | // pc.printf("Acceleration Z: %d\n", acc[2]); |
benjaminroy | 13:62404d7dab8d | 205 | |
benjaminroy | 13:62404d7dab8d | 206 | mail_t *mail = mail_box.alloc(); |
benjaminroy | 13:62404d7dab8d | 207 | sprintf(mail->strAccelerationX, "Acc. X: %i\0", acc[0]); |
benjaminroy | 13:62404d7dab8d | 208 | sprintf(mail->strAccelerationY, "Acc. Y: %i\0", acc[1]); |
benjaminroy | 13:62404d7dab8d | 209 | sprintf(mail->strAccelerationZ, "Acc. Z: %i\0", acc[2]); |
benjaminroy | 13:62404d7dab8d | 210 | mail_box.put(mail); |
benjaminroy | 13:62404d7dab8d | 211 | |
benjaminroy | 10:488877f7f56c | 212 | } else if (buffer[0] == 0x90 && bufferSize == 13) { // Dry contact |
benjaminroy | 13:62404d7dab8d | 213 | //mail_t *mail = mail_box.alloc(); |
benjaminroy | 13:62404d7dab8d | 214 | //mail->data = acc[0]; |
benjaminroy | 13:62404d7dab8d | 215 | //mail_box.put(mail); |
benjaminroy | 10:488877f7f56c | 216 | } |
benjaminroy | 10:488877f7f56c | 217 | } |
benjaminroy | 10:488877f7f56c | 218 | |
benjaminroy | 10:488877f7f56c | 219 | void readDataFromRouter(){ |
benjaminroy | 10:488877f7f56c | 220 | while(1) { |
benjaminroy | 10:488877f7f56c | 221 | uint8_t bufferSize = 0; |
benjaminroy | 10:488877f7f56c | 222 | uint8_t buffer[104] = { 0 }; |
benjaminroy | 10:488877f7f56c | 223 | |
benjaminroy | 10:488877f7f56c | 224 | if (xbee.readable() && xbee.getc() == 0x7E) { |
benjaminroy | 10:488877f7f56c | 225 | bufferSize = (xbee.getc() << 8 ) | (xbee.getc() & 0xff); |
benjaminroy | 10:488877f7f56c | 226 | |
benjaminroy | 10:488877f7f56c | 227 | for (uint8_t i = 0; i <= bufferSize;) { |
benjaminroy | 10:488877f7f56c | 228 | if (xbee.readable()) { |
benjaminroy | 10:488877f7f56c | 229 | buffer[i] = xbee.getc(); |
benjaminroy | 10:488877f7f56c | 230 | i++; |
benjaminroy | 10:488877f7f56c | 231 | } |
marc1119 | 2:3fbf13ba290e | 232 | } |
benjaminroy | 10:488877f7f56c | 233 | |
benjaminroy | 10:488877f7f56c | 234 | printBuffer(bufferSize, buffer); |
benjaminroy | 10:488877f7f56c | 235 | if (checksumIsValid(bufferSize, buffer)) { |
benjaminroy | 10:488877f7f56c | 236 | readRouterAddress(buffer); |
benjaminroy | 10:488877f7f56c | 237 | readRouterData(bufferSize, buffer); |
marc1119 | 8:9c34eb3cb3ef | 238 | } |
marc1119 | 8:9c34eb3cb3ef | 239 | } |
marc1119 | 0:ec23a7ae804c | 240 | } |
marc1119 | 0:ec23a7ae804c | 241 | } |
marc1119 | 0:ec23a7ae804c | 242 | |
benjaminroy | 11:205ddd5406af | 243 | void isr() {} |
benjaminroy | 11:205ddd5406af | 244 | |
marc1119 | 0:ec23a7ae804c | 245 | int main() { |
benjaminroy | 6:fd7d91edcf60 | 246 | pc.printf("Starting a coordinator... \n"); |
benjaminroy | 10:488877f7f56c | 247 | |
marc1119 | 1:ceb3f8ba8793 | 248 | reset = 0; |
benjaminroy | 6:fd7d91edcf60 | 249 | wait_ms(1); |
marc1119 | 1:ceb3f8ba8793 | 250 | reset = 1; |
benjaminroy | 6:fd7d91edcf60 | 251 | wait_ms(1); |
marc1119 | 0:ec23a7ae804c | 252 | |
marc1119 | 2:3fbf13ba290e | 253 | readConfigFile(); |
marc1119 | 2:3fbf13ba290e | 254 | |
benjaminroy | 6:fd7d91edcf60 | 255 | xbee.baud(9600); // Set baud rate |
benjaminroy | 6:fd7d91edcf60 | 256 | xbee.printf("ATID %i\r",panId); // Set the 64-bit PAN ID |
benjaminroy | 11:205ddd5406af | 257 | xbee.printf("ATWR \r"); // Save the changes |
benjaminroy | 11:205ddd5406af | 258 | xbee.printf("ATCN \r"); // Apply changes by sending the CN command |
benjaminroy | 6:fd7d91edcf60 | 259 | |
benjaminroy | 4:393738672d08 | 260 | if (eth.init() != 0) { // Use DHCP |
marc1119 | 3:fbd4b164e8ad | 261 | pc.printf("Erreur d'initialisation du RJ45.\n"); |
benjaminroy | 4:393738672d08 | 262 | } |
benjaminroy | 4:393738672d08 | 263 | if (eth.connect() != 0) { |
marc1119 | 3:fbd4b164e8ad | 264 | pc.printf("Erreur de connection du RJ45\n"); |
benjaminroy | 4:393738672d08 | 265 | } |
benjaminroy | 10:488877f7f56c | 266 | pc.printf("IP Address is %s\n", eth.getIPAddress()); |
marc1119 | 2:3fbf13ba290e | 267 | |
benjaminroy | 13:62404d7dab8d | 268 | int numberOfRetries = 0; |
benjaminroy | 13:62404d7dab8d | 269 | while (sock.connect(serverAddress, portNumber) != 0) { |
benjaminroy | 13:62404d7dab8d | 270 | if (numberOfRetries == 5) { |
benjaminroy | 13:62404d7dab8d | 271 | error("Erreur dans la connection au socket.\n"); |
benjaminroy | 13:62404d7dab8d | 272 | } |
benjaminroy | 13:62404d7dab8d | 273 | numberOfRetries++; |
benjaminroy | 13:62404d7dab8d | 274 | } |
benjaminroy | 13:62404d7dab8d | 275 | |
benjaminroy | 10:488877f7f56c | 276 | // Démarrage des tâches: |
benjaminroy | 10:488877f7f56c | 277 | Thread _readDataFromRouter(readDataFromRouter); |
benjaminroy | 13:62404d7dab8d | 278 | Thread _sendDataToServer(sendDataToServer); |
benjaminroy | 13:62404d7dab8d | 279 | |
benjaminroy | 10:488877f7f56c | 280 | //Thread _toggleRouterLed(toggleLed); |
benjaminroy | 10:488877f7f56c | 281 | while(1) {} |
marc1119 | 0:ec23a7ae804c | 282 | } |
marc1119 | 0:ec23a7ae804c | 283 | |
marc1119 | 2:3fbf13ba290e | 284 |