Console CAN 2.0 update du code testcan1

Dependencies:   mbed

Fork of testCAN1 by RaC2018

Fonctionnement

/!\/!\/!\Il est conseillé d'utiliser putty ou un terminal acceptant la touche entée comme un caractère, sinon il sera nécessaire de changer le code en remplaçant '\r' par un caractère de votre choix /!\/!\/!\

1 - La console vous demande la valeur de l'identificateur en hexadécimal(il faut donc entrer la valeur et valider par entrée)

2 - Elle demande le nombre d'octets à envoyer, il faut choisir le nombre d'octets à envoyer entre 0(pas d'octets) et 8 octets. Il n'y a pas besoin de valider, la validation se fait une fois le chiffre appuyé.

3 (si il y a plus de 0 octets) - Elle vous demandera la valeur à attribuer à chaque octets.

4 - Elle demande quel sera l'état du bit du RTR(0-1) 1 ==> Requête 0 ==> Donnée.

La validation se fait automatiquement

5 - Envoie les données et fait une capture de retour(à améliorer car ce n'est pas encore au point)

6 - Fait un résumé des trames capturées.

7 - Retour au point de départ (1)

Committer:
protongamer
Date:
Wed Feb 28 11:34:52 2018 +0000
Revision:
1:4d70e593345f
Parent:
0:1ab5fdb4fa56
Console CAN 2.0

Who changed what in which revision?

UserRevisionLine numberNew contents of line
LouisReynier 0:1ab5fdb4fa56 1 #include "mbed.h"
protongamer 1:4d70e593345f 2 // LR 10/02/18
LouisReynier 0:1ab5fdb4fa56 3 //
protongamer 1:4d70e593345f 4 // bus CAN generateur de trames
LouisReynier 0:1ab5fdb4fa56 5 //
protongamer 1:4d70e593345f 6 // Emission d'une trame parmi 4 selection à l'aide du pot1
protongamer 1:4d70e593345f 7 // eviter les positions intermédaires du pot1 !
protongamer 1:4d70e593345f 8 // !! emission sur CAN2 p30Rx p29Tx
protongamer 1:4d70e593345f 9 // Attention si pas d'ACK faire reset après chaque changement
protongamer 1:4d70e593345f 10 // J'ai constaté des comportements bizarre dans cette situation
protongamer 1:4d70e593345f 11 // Des infos sur la liaison série
protongamer 1:4d70e593345f 12 // La trame est envoyée aussi sur LCD
protongamer 1:4d70e593345f 13 //
protongamer 1:4d70e593345f 14 // testé à l'analyseur logique = OK !!
LouisReynier 0:1ab5fdb4fa56 15 //
protongamer 1:4d70e593345f 16 //
LouisReynier 0:1ab5fdb4fa56 17
protongamer 1:4d70e593345f 18
LouisReynier 0:1ab5fdb4fa56 19 DigitalOut led1(LED1);
LouisReynier 0:1ab5fdb4fa56 20 DigitalOut led2(LED2);
LouisReynier 0:1ab5fdb4fa56 21 CAN can1(p9, p10,1000000);// on definit pin et debit
LouisReynier 0:1ab5fdb4fa56 22 CAN can2(p30, p29, 1000000);
protongamer 1:4d70e593345f 23 Serial pc(USBTX, USBRX);
protongamer 1:4d70e593345f 24 //AnalogIn pot_1(p19); // potard pour selection
protongamer 1:4d70e593345f 25
protongamer 1:4d70e593345f 26
protongamer 1:4d70e593345f 27
protongamer 1:4d70e593345f 28 void send(int id, char octet_emis[], char RouD, char longueur )
protongamer 1:4d70e593345f 29 {
protongamer 1:4d70e593345f 30 int emis_ok = 0 ;
LouisReynier 0:1ab5fdb4fa56 31
protongamer 1:4d70e593345f 32 if (RouD == 'D')
protongamer 1:4d70e593345f 33 { emis_ok = can2.write(CANMessage(id, octet_emis, longueur, CANData, CANStandard )) ;
protongamer 1:4d70e593345f 34 pc.printf("id: %x, %c L = %d, \nData : %x:%x:%x:%x ... \n", id,RouD,longueur,octet_emis[0],octet_emis[1], octet_emis[2], octet_emis[3] );
protongamer 1:4d70e593345f 35 }// c'ets la valeur retournée par la fonction write
protongamer 1:4d70e593345f 36 else
protongamer 1:4d70e593345f 37 { emis_ok = can2.write(CANMessage(id, octet_emis, longueur, CANRemote, CANStandard ));
protongamer 1:4d70e593345f 38 pc.printf("id: %x, %c L = %d, \nData : %x:%x:%x:%x ... \n", id,RouD,longueur,octet_emis[0],octet_emis[1], octet_emis[2], octet_emis[3] );
protongamer 1:4d70e593345f 39 }
protongamer 1:4d70e593345f 40 //lcd.locate(0,10);
protongamer 1:4d70e593345f 41 //lcd.printf("id: %x, %c L = %d, \nData : %x:%x:%x:%x ... \n", id,RouD,longueur,octet_emis[0],octet_emis[1], octet_emis[2], octet_emis[3] );
protongamer 1:4d70e593345f 42 if(emis_ok) {
protongamer 1:4d70e593345f 43 // ici octet emis n'a pas de sens car trame remote !
protongamer 1:4d70e593345f 44 pc.printf("j'emets bien !!! \n");
LouisReynier 0:1ab5fdb4fa56 45 }
LouisReynier 0:1ab5fdb4fa56 46 led1 = !led1;
LouisReynier 0:1ab5fdb4fa56 47 }
protongamer 1:4d70e593345f 48
protongamer 1:4d70e593345f 49
protongamer 1:4d70e593345f 50
LouisReynier 0:1ab5fdb4fa56 51
LouisReynier 0:1ab5fdb4fa56 52 int main() {
protongamer 1:4d70e593345f 53 // int choix = 0 ;
protongamer 1:4d70e593345f 54 int i = 0 ;
LouisReynier 0:1ab5fdb4fa56 55
protongamer 1:4d70e593345f 56 char octet_send[9] = "DDDDDDDD"; // valeurs par defaut D=44
protongamer 1:4d70e593345f 57 int identif = 0x123 ; // par défaut
protongamer 1:4d70e593345f 58 char RemoteData = 'D' ;
protongamer 1:4d70e593345f 59 char length = 2 ;
protongamer 1:4d70e593345f 60 char c;
protongamer 1:4d70e593345f 61 uint32_t instruction = 0;
protongamer 1:4d70e593345f 62 uint8_t state_val = 0;
protongamer 1:4d70e593345f 63 uint8_t state = 0;
protongamer 1:4d70e593345f 64 int data_rc;
protongamer 1:4d70e593345f 65 int data_report[100];
protongamer 1:4d70e593345f 66 CANMessage msg;
protongamer 1:4d70e593345f 67
protongamer 1:4d70e593345f 68 pc.printf("CAN CONSOLE \r \n");
protongamer 1:4d70e593345f 69
protongamer 1:4d70e593345f 70
protongamer 1:4d70e593345f 71
LouisReynier 0:1ab5fdb4fa56 72 while(1) {
protongamer 1:4d70e593345f 73 data_rc = 0;
protongamer 1:4d70e593345f 74 pc.printf(" Identifier : ");
protongamer 1:4d70e593345f 75 while(state == 0){
protongamer 1:4d70e593345f 76 c = pc.getc();
protongamer 1:4d70e593345f 77 switch(c){
protongamer 1:4d70e593345f 78
protongamer 1:4d70e593345f 79
protongamer 1:4d70e593345f 80
protongamer 1:4d70e593345f 81 case '0':
protongamer 1:4d70e593345f 82 pc.printf("0");
protongamer 1:4d70e593345f 83
protongamer 1:4d70e593345f 84 if(state_val > 0){
protongamer 1:4d70e593345f 85 instruction = instruction << 4;
protongamer 1:4d70e593345f 86 instruction |= 0b0000;
protongamer 1:4d70e593345f 87 }
protongamer 1:4d70e593345f 88
protongamer 1:4d70e593345f 89 if(state_val == 0){
protongamer 1:4d70e593345f 90 instruction = 0b0000;
protongamer 1:4d70e593345f 91 state_val++;
protongamer 1:4d70e593345f 92 }
protongamer 1:4d70e593345f 93
protongamer 1:4d70e593345f 94 break;
protongamer 1:4d70e593345f 95
protongamer 1:4d70e593345f 96 case '1':
protongamer 1:4d70e593345f 97
protongamer 1:4d70e593345f 98 if(state_val > 0){
protongamer 1:4d70e593345f 99 instruction = instruction << 4;
protongamer 1:4d70e593345f 100 instruction |= 0b0001;
protongamer 1:4d70e593345f 101 }
protongamer 1:4d70e593345f 102
protongamer 1:4d70e593345f 103 pc.printf("1");
protongamer 1:4d70e593345f 104 if(state_val == 0){
protongamer 1:4d70e593345f 105 instruction = 0b0001;
protongamer 1:4d70e593345f 106 state_val++;
protongamer 1:4d70e593345f 107 }
protongamer 1:4d70e593345f 108
protongamer 1:4d70e593345f 109 break;
protongamer 1:4d70e593345f 110
protongamer 1:4d70e593345f 111 case '2':
protongamer 1:4d70e593345f 112
protongamer 1:4d70e593345f 113 if(state_val > 0){
protongamer 1:4d70e593345f 114 instruction = instruction << 4;
protongamer 1:4d70e593345f 115 instruction |= 0b0010;
protongamer 1:4d70e593345f 116 }
protongamer 1:4d70e593345f 117
protongamer 1:4d70e593345f 118 pc.printf("2");
protongamer 1:4d70e593345f 119 if(state_val == 0){
protongamer 1:4d70e593345f 120 instruction = 0b0010;
protongamer 1:4d70e593345f 121 state_val++;
protongamer 1:4d70e593345f 122 }
protongamer 1:4d70e593345f 123
protongamer 1:4d70e593345f 124 break;
protongamer 1:4d70e593345f 125
protongamer 1:4d70e593345f 126 case '3':
protongamer 1:4d70e593345f 127 pc.printf("3");
protongamer 1:4d70e593345f 128
protongamer 1:4d70e593345f 129 if(state_val > 0){
protongamer 1:4d70e593345f 130 instruction = instruction << 4;
protongamer 1:4d70e593345f 131 instruction |= 0b0011;
protongamer 1:4d70e593345f 132 }
protongamer 1:4d70e593345f 133
protongamer 1:4d70e593345f 134 if(state_val == 0){
protongamer 1:4d70e593345f 135 instruction = 0b0011;
protongamer 1:4d70e593345f 136 state_val++;
protongamer 1:4d70e593345f 137 }
protongamer 1:4d70e593345f 138
protongamer 1:4d70e593345f 139 break;
protongamer 1:4d70e593345f 140
protongamer 1:4d70e593345f 141 case '4':
protongamer 1:4d70e593345f 142
protongamer 1:4d70e593345f 143 if(state_val > 0){
protongamer 1:4d70e593345f 144 instruction = instruction << 4;
protongamer 1:4d70e593345f 145 instruction |= 0b0100;
protongamer 1:4d70e593345f 146 }
protongamer 1:4d70e593345f 147
protongamer 1:4d70e593345f 148 pc.printf("4");
protongamer 1:4d70e593345f 149 if(state_val == 0){
protongamer 1:4d70e593345f 150 instruction = 0b0100;
protongamer 1:4d70e593345f 151 state_val++;
protongamer 1:4d70e593345f 152 }
protongamer 1:4d70e593345f 153
protongamer 1:4d70e593345f 154 break;
protongamer 1:4d70e593345f 155
protongamer 1:4d70e593345f 156 case '5':
protongamer 1:4d70e593345f 157 pc.printf("5");
protongamer 1:4d70e593345f 158
protongamer 1:4d70e593345f 159 if(state_val > 0){
protongamer 1:4d70e593345f 160 instruction = instruction << 4;
protongamer 1:4d70e593345f 161 instruction |= 0b0101;
protongamer 1:4d70e593345f 162 }
protongamer 1:4d70e593345f 163
protongamer 1:4d70e593345f 164 if(state_val == 0){
protongamer 1:4d70e593345f 165 instruction = 0b0101;
protongamer 1:4d70e593345f 166 state_val++;
protongamer 1:4d70e593345f 167 }
protongamer 1:4d70e593345f 168
protongamer 1:4d70e593345f 169 break;
protongamer 1:4d70e593345f 170
protongamer 1:4d70e593345f 171 case '6':
protongamer 1:4d70e593345f 172 pc.printf("6");
protongamer 1:4d70e593345f 173
protongamer 1:4d70e593345f 174 if(state_val > 0){
protongamer 1:4d70e593345f 175 instruction = instruction << 4;
protongamer 1:4d70e593345f 176 instruction |= 0b0110;
protongamer 1:4d70e593345f 177 }
protongamer 1:4d70e593345f 178
protongamer 1:4d70e593345f 179 if(state_val == 0){
protongamer 1:4d70e593345f 180 instruction = 0b0110;
protongamer 1:4d70e593345f 181 state_val++;
protongamer 1:4d70e593345f 182 }
protongamer 1:4d70e593345f 183
protongamer 1:4d70e593345f 184 break;
protongamer 1:4d70e593345f 185
protongamer 1:4d70e593345f 186 case '7':
protongamer 1:4d70e593345f 187 pc.printf("7");
protongamer 1:4d70e593345f 188
protongamer 1:4d70e593345f 189 if(state_val > 0){
protongamer 1:4d70e593345f 190 instruction = instruction << 4;
protongamer 1:4d70e593345f 191 instruction |= 0b0111;
protongamer 1:4d70e593345f 192 }
protongamer 1:4d70e593345f 193
protongamer 1:4d70e593345f 194 if(state_val == 0){
protongamer 1:4d70e593345f 195 instruction = 0b0111;
protongamer 1:4d70e593345f 196 state_val++;
protongamer 1:4d70e593345f 197 }
protongamer 1:4d70e593345f 198
protongamer 1:4d70e593345f 199 break;
protongamer 1:4d70e593345f 200
protongamer 1:4d70e593345f 201 case '8':
protongamer 1:4d70e593345f 202 pc.printf("8");
protongamer 1:4d70e593345f 203
protongamer 1:4d70e593345f 204 if(state_val > 0){
protongamer 1:4d70e593345f 205 instruction = instruction << 4;
protongamer 1:4d70e593345f 206 instruction |= 0b1000;
protongamer 1:4d70e593345f 207 }
protongamer 1:4d70e593345f 208
protongamer 1:4d70e593345f 209
protongamer 1:4d70e593345f 210 if(state_val == 0){
protongamer 1:4d70e593345f 211 instruction = 0b1000;
protongamer 1:4d70e593345f 212 state_val++;
protongamer 1:4d70e593345f 213 }
protongamer 1:4d70e593345f 214
protongamer 1:4d70e593345f 215 break;
protongamer 1:4d70e593345f 216
protongamer 1:4d70e593345f 217 case '9':
protongamer 1:4d70e593345f 218 pc.printf("9");
protongamer 1:4d70e593345f 219
protongamer 1:4d70e593345f 220 if(state_val > 0){
protongamer 1:4d70e593345f 221 instruction = instruction << 4;
protongamer 1:4d70e593345f 222 instruction |= 0b1001;
protongamer 1:4d70e593345f 223 }
protongamer 1:4d70e593345f 224
protongamer 1:4d70e593345f 225 if(state_val == 0){
protongamer 1:4d70e593345f 226 instruction = 0b1001;
protongamer 1:4d70e593345f 227 state_val++;
protongamer 1:4d70e593345f 228 }
protongamer 1:4d70e593345f 229
protongamer 1:4d70e593345f 230 break;
protongamer 1:4d70e593345f 231
protongamer 1:4d70e593345f 232 case 'a':
protongamer 1:4d70e593345f 233 pc.printf("a");
protongamer 1:4d70e593345f 234
protongamer 1:4d70e593345f 235 if(state_val > 0){
protongamer 1:4d70e593345f 236 instruction = instruction << 4;
protongamer 1:4d70e593345f 237 instruction |= 0b1010;
protongamer 1:4d70e593345f 238 }
protongamer 1:4d70e593345f 239
protongamer 1:4d70e593345f 240 if(state_val == 0){
protongamer 1:4d70e593345f 241 instruction = 0b1010;
protongamer 1:4d70e593345f 242 state_val++;
protongamer 1:4d70e593345f 243 }
protongamer 1:4d70e593345f 244
protongamer 1:4d70e593345f 245 break;
protongamer 1:4d70e593345f 246
protongamer 1:4d70e593345f 247 case 'b':
protongamer 1:4d70e593345f 248 pc.printf("b");
protongamer 1:4d70e593345f 249
protongamer 1:4d70e593345f 250 if(state_val > 0){
protongamer 1:4d70e593345f 251 instruction = instruction << 4;
protongamer 1:4d70e593345f 252 instruction |= 0b1011;
protongamer 1:4d70e593345f 253 }
protongamer 1:4d70e593345f 254
protongamer 1:4d70e593345f 255 if(state_val == 0){
protongamer 1:4d70e593345f 256 instruction = 0b1011;
protongamer 1:4d70e593345f 257 state_val++;
protongamer 1:4d70e593345f 258 }
protongamer 1:4d70e593345f 259
protongamer 1:4d70e593345f 260 break;
protongamer 1:4d70e593345f 261
protongamer 1:4d70e593345f 262 case 'c':
protongamer 1:4d70e593345f 263 pc.printf("c");
protongamer 1:4d70e593345f 264
protongamer 1:4d70e593345f 265 if(state_val > 0){
protongamer 1:4d70e593345f 266 instruction = instruction << 4;
protongamer 1:4d70e593345f 267 instruction |= 0b1100;
protongamer 1:4d70e593345f 268 }
protongamer 1:4d70e593345f 269
protongamer 1:4d70e593345f 270 if(state_val == 0){
protongamer 1:4d70e593345f 271 instruction = 0b1100;
protongamer 1:4d70e593345f 272 state_val++;
protongamer 1:4d70e593345f 273 }
protongamer 1:4d70e593345f 274
protongamer 1:4d70e593345f 275 break;
protongamer 1:4d70e593345f 276
protongamer 1:4d70e593345f 277 case 'd':
protongamer 1:4d70e593345f 278 pc.printf("d");
protongamer 1:4d70e593345f 279
protongamer 1:4d70e593345f 280 if(state_val > 0){
protongamer 1:4d70e593345f 281 instruction = instruction << 4;
protongamer 1:4d70e593345f 282 instruction |= 0b1101;
protongamer 1:4d70e593345f 283 }
protongamer 1:4d70e593345f 284
protongamer 1:4d70e593345f 285 if(state_val == 0){
protongamer 1:4d70e593345f 286 instruction = 0b1101;
protongamer 1:4d70e593345f 287 state_val++;
protongamer 1:4d70e593345f 288 }
protongamer 1:4d70e593345f 289
protongamer 1:4d70e593345f 290 break;
protongamer 1:4d70e593345f 291
protongamer 1:4d70e593345f 292 case 'e':
protongamer 1:4d70e593345f 293 pc.printf("e");
protongamer 1:4d70e593345f 294
protongamer 1:4d70e593345f 295 if(state_val > 0){
protongamer 1:4d70e593345f 296 instruction = instruction << 4;
protongamer 1:4d70e593345f 297 instruction |= 0b1110;
protongamer 1:4d70e593345f 298 }
protongamer 1:4d70e593345f 299
protongamer 1:4d70e593345f 300 if(state_val == 0){
protongamer 1:4d70e593345f 301 instruction = 0b1110;
protongamer 1:4d70e593345f 302 state_val++;
protongamer 1:4d70e593345f 303 }
protongamer 1:4d70e593345f 304
protongamer 1:4d70e593345f 305 break;
protongamer 1:4d70e593345f 306
protongamer 1:4d70e593345f 307 case 'f':
protongamer 1:4d70e593345f 308 pc.printf("f");
protongamer 1:4d70e593345f 309
protongamer 1:4d70e593345f 310 if(state_val > 0){
protongamer 1:4d70e593345f 311 instruction = instruction << 4;
protongamer 1:4d70e593345f 312 instruction |= 0b1111;
protongamer 1:4d70e593345f 313 }
protongamer 1:4d70e593345f 314
protongamer 1:4d70e593345f 315 if(state_val == 0){
protongamer 1:4d70e593345f 316 instruction = 0b1111;
protongamer 1:4d70e593345f 317 state_val++;
protongamer 1:4d70e593345f 318 }
protongamer 1:4d70e593345f 319
protongamer 1:4d70e593345f 320 break;
protongamer 1:4d70e593345f 321
protongamer 1:4d70e593345f 322 case 'A':
protongamer 1:4d70e593345f 323 pc.printf("a");
protongamer 1:4d70e593345f 324
protongamer 1:4d70e593345f 325 if(state_val > 0){
protongamer 1:4d70e593345f 326 instruction = instruction << 4;
protongamer 1:4d70e593345f 327 instruction |= 0b1010;
protongamer 1:4d70e593345f 328 }
protongamer 1:4d70e593345f 329
protongamer 1:4d70e593345f 330 if(state_val == 0){
protongamer 1:4d70e593345f 331 instruction = 0b1010;
protongamer 1:4d70e593345f 332 state_val++;
protongamer 1:4d70e593345f 333 }
protongamer 1:4d70e593345f 334
protongamer 1:4d70e593345f 335 break;
protongamer 1:4d70e593345f 336
protongamer 1:4d70e593345f 337 case 'B':
protongamer 1:4d70e593345f 338 pc.printf("b");
protongamer 1:4d70e593345f 339
protongamer 1:4d70e593345f 340 if(state_val > 0){
protongamer 1:4d70e593345f 341 instruction = instruction << 4;
protongamer 1:4d70e593345f 342 instruction |= 0b1011;
protongamer 1:4d70e593345f 343 }
protongamer 1:4d70e593345f 344
protongamer 1:4d70e593345f 345 if(state_val == 0){
protongamer 1:4d70e593345f 346 instruction = 0b1011;
protongamer 1:4d70e593345f 347 state_val++;
protongamer 1:4d70e593345f 348 }
protongamer 1:4d70e593345f 349
protongamer 1:4d70e593345f 350 break;
protongamer 1:4d70e593345f 351
protongamer 1:4d70e593345f 352 case 'C':
protongamer 1:4d70e593345f 353 pc.printf("c");
protongamer 1:4d70e593345f 354
protongamer 1:4d70e593345f 355 if(state_val > 0){
protongamer 1:4d70e593345f 356 instruction = instruction << 4;
protongamer 1:4d70e593345f 357 instruction |= 0b1100;
protongamer 1:4d70e593345f 358 }
protongamer 1:4d70e593345f 359
protongamer 1:4d70e593345f 360 if(state_val == 0){
protongamer 1:4d70e593345f 361 instruction = 0b1100;
protongamer 1:4d70e593345f 362 state_val++;
protongamer 1:4d70e593345f 363 }
protongamer 1:4d70e593345f 364
protongamer 1:4d70e593345f 365 break;
protongamer 1:4d70e593345f 366
protongamer 1:4d70e593345f 367 case 'D':
protongamer 1:4d70e593345f 368 pc.printf("d");
protongamer 1:4d70e593345f 369
protongamer 1:4d70e593345f 370 if(state_val > 0){
protongamer 1:4d70e593345f 371 instruction = instruction << 4;
protongamer 1:4d70e593345f 372 instruction |= 0b1101;
protongamer 1:4d70e593345f 373 }
protongamer 1:4d70e593345f 374
protongamer 1:4d70e593345f 375 if(state_val == 0){
protongamer 1:4d70e593345f 376 instruction = 0b1101;
protongamer 1:4d70e593345f 377 state_val++;
protongamer 1:4d70e593345f 378 }
protongamer 1:4d70e593345f 379
protongamer 1:4d70e593345f 380 break;
protongamer 1:4d70e593345f 381
protongamer 1:4d70e593345f 382 case 'E':
protongamer 1:4d70e593345f 383 pc.printf("e");
protongamer 1:4d70e593345f 384
protongamer 1:4d70e593345f 385 if(state_val > 0){
protongamer 1:4d70e593345f 386 instruction = instruction << 4;
protongamer 1:4d70e593345f 387 instruction |= 0b1110;
protongamer 1:4d70e593345f 388 }
protongamer 1:4d70e593345f 389
protongamer 1:4d70e593345f 390 if(state_val == 0){
protongamer 1:4d70e593345f 391 instruction = 0b1110;
protongamer 1:4d70e593345f 392 state_val++;
protongamer 1:4d70e593345f 393 }
protongamer 1:4d70e593345f 394
protongamer 1:4d70e593345f 395 break;
protongamer 1:4d70e593345f 396
protongamer 1:4d70e593345f 397 case 'F':
protongamer 1:4d70e593345f 398 pc.printf("f");
protongamer 1:4d70e593345f 399
protongamer 1:4d70e593345f 400 if(state_val > 0){
protongamer 1:4d70e593345f 401 instruction = instruction << 4;
protongamer 1:4d70e593345f 402 instruction |= 0b1111;
protongamer 1:4d70e593345f 403 }
protongamer 1:4d70e593345f 404
protongamer 1:4d70e593345f 405 if(state_val == 0){
protongamer 1:4d70e593345f 406 instruction = 0b1111;
protongamer 1:4d70e593345f 407 state_val++;
protongamer 1:4d70e593345f 408 }
protongamer 1:4d70e593345f 409
protongamer 1:4d70e593345f 410 break;
protongamer 1:4d70e593345f 411
protongamer 1:4d70e593345f 412 case '\r':
protongamer 1:4d70e593345f 413 pc.printf("\r\nOk\r\n");
protongamer 1:4d70e593345f 414 identif = instruction;
protongamer 1:4d70e593345f 415 state++;
protongamer 1:4d70e593345f 416
protongamer 1:4d70e593345f 417 break;
protongamer 1:4d70e593345f 418
protongamer 1:4d70e593345f 419 }
protongamer 1:4d70e593345f 420 }
protongamer 1:4d70e593345f 421
protongamer 1:4d70e593345f 422 pc.printf("\r\n Number of octets : ");
protongamer 1:4d70e593345f 423
protongamer 1:4d70e593345f 424 c = pc.getc();
protongamer 1:4d70e593345f 425 instruction = 0;
protongamer 1:4d70e593345f 426 state_val = 0;
protongamer 1:4d70e593345f 427
protongamer 1:4d70e593345f 428 switch(c){
protongamer 1:4d70e593345f 429 case '0':
protongamer 1:4d70e593345f 430 pc.printf("0");
protongamer 1:4d70e593345f 431
protongamer 1:4d70e593345f 432 if(state_val > 0){
protongamer 1:4d70e593345f 433 instruction = instruction << 4;
protongamer 1:4d70e593345f 434 instruction |= 0b0000;
protongamer 1:4d70e593345f 435 }
protongamer 1:4d70e593345f 436
protongamer 1:4d70e593345f 437 if(state_val == 0){
protongamer 1:4d70e593345f 438 instruction = 0b0000;
protongamer 1:4d70e593345f 439 state_val++;
protongamer 1:4d70e593345f 440 }
protongamer 1:4d70e593345f 441
protongamer 1:4d70e593345f 442 break;
protongamer 1:4d70e593345f 443
protongamer 1:4d70e593345f 444 case '1':
protongamer 1:4d70e593345f 445
protongamer 1:4d70e593345f 446 if(state_val > 0){
protongamer 1:4d70e593345f 447 instruction = instruction << 4;
protongamer 1:4d70e593345f 448 instruction |= 0b0001;
protongamer 1:4d70e593345f 449 }
protongamer 1:4d70e593345f 450
protongamer 1:4d70e593345f 451 pc.printf("1");
protongamer 1:4d70e593345f 452 if(state_val == 0){
protongamer 1:4d70e593345f 453 instruction = 0b0001;
protongamer 1:4d70e593345f 454 state_val++;
protongamer 1:4d70e593345f 455 }
protongamer 1:4d70e593345f 456
protongamer 1:4d70e593345f 457 break;
protongamer 1:4d70e593345f 458
protongamer 1:4d70e593345f 459 case '2':
protongamer 1:4d70e593345f 460
protongamer 1:4d70e593345f 461 if(state_val > 0){
protongamer 1:4d70e593345f 462 instruction = instruction << 4;
protongamer 1:4d70e593345f 463 instruction |= 0b0010;
protongamer 1:4d70e593345f 464 }
protongamer 1:4d70e593345f 465
protongamer 1:4d70e593345f 466 pc.printf("2");
protongamer 1:4d70e593345f 467 if(state_val == 0){
protongamer 1:4d70e593345f 468 instruction = 0b0010;
protongamer 1:4d70e593345f 469 state_val++;
protongamer 1:4d70e593345f 470 }
protongamer 1:4d70e593345f 471
protongamer 1:4d70e593345f 472 break;
protongamer 1:4d70e593345f 473
protongamer 1:4d70e593345f 474 case '3':
protongamer 1:4d70e593345f 475 pc.printf("3");
protongamer 1:4d70e593345f 476
protongamer 1:4d70e593345f 477 if(state_val > 0){
protongamer 1:4d70e593345f 478 instruction = instruction << 4;
protongamer 1:4d70e593345f 479 instruction |= 0b0011;
protongamer 1:4d70e593345f 480 }
protongamer 1:4d70e593345f 481
protongamer 1:4d70e593345f 482 if(state_val == 0){
protongamer 1:4d70e593345f 483 instruction = 0b0011;
protongamer 1:4d70e593345f 484 state_val++;
protongamer 1:4d70e593345f 485 }
protongamer 1:4d70e593345f 486
protongamer 1:4d70e593345f 487 break;
protongamer 1:4d70e593345f 488
protongamer 1:4d70e593345f 489 case '4':
protongamer 1:4d70e593345f 490
protongamer 1:4d70e593345f 491 if(state_val > 0){
protongamer 1:4d70e593345f 492 instruction = instruction << 4;
protongamer 1:4d70e593345f 493 instruction |= 0b0100;
protongamer 1:4d70e593345f 494 }
protongamer 1:4d70e593345f 495
protongamer 1:4d70e593345f 496 pc.printf("4");
protongamer 1:4d70e593345f 497 if(state_val == 0){
protongamer 1:4d70e593345f 498 instruction = 0b0100;
protongamer 1:4d70e593345f 499 state_val++;
protongamer 1:4d70e593345f 500 }
protongamer 1:4d70e593345f 501
protongamer 1:4d70e593345f 502 break;
protongamer 1:4d70e593345f 503
protongamer 1:4d70e593345f 504 case '5':
protongamer 1:4d70e593345f 505 pc.printf("5");
protongamer 1:4d70e593345f 506
protongamer 1:4d70e593345f 507 if(state_val > 0){
protongamer 1:4d70e593345f 508 instruction = instruction << 4;
protongamer 1:4d70e593345f 509 instruction |= 0b0101;
protongamer 1:4d70e593345f 510 }
protongamer 1:4d70e593345f 511
protongamer 1:4d70e593345f 512 if(state_val == 0){
protongamer 1:4d70e593345f 513 instruction = 0b0101;
protongamer 1:4d70e593345f 514 state_val++;
protongamer 1:4d70e593345f 515 }
protongamer 1:4d70e593345f 516
protongamer 1:4d70e593345f 517 break;
protongamer 1:4d70e593345f 518
protongamer 1:4d70e593345f 519 case '6':
protongamer 1:4d70e593345f 520 pc.printf("6");
protongamer 1:4d70e593345f 521
protongamer 1:4d70e593345f 522 if(state_val > 0){
protongamer 1:4d70e593345f 523 instruction = instruction << 4;
protongamer 1:4d70e593345f 524 instruction |= 0b0110;
protongamer 1:4d70e593345f 525 }
protongamer 1:4d70e593345f 526
protongamer 1:4d70e593345f 527 if(state_val == 0){
protongamer 1:4d70e593345f 528 instruction = 0b0110;
protongamer 1:4d70e593345f 529 state_val++;
protongamer 1:4d70e593345f 530 }
protongamer 1:4d70e593345f 531
protongamer 1:4d70e593345f 532 break;
protongamer 1:4d70e593345f 533
protongamer 1:4d70e593345f 534 case '7':
protongamer 1:4d70e593345f 535 pc.printf("7");
protongamer 1:4d70e593345f 536
protongamer 1:4d70e593345f 537 if(state_val > 0){
protongamer 1:4d70e593345f 538 instruction = instruction << 4;
protongamer 1:4d70e593345f 539 instruction |= 0b0111;
protongamer 1:4d70e593345f 540 }
protongamer 1:4d70e593345f 541
protongamer 1:4d70e593345f 542 if(state_val == 0){
protongamer 1:4d70e593345f 543 instruction = 0b0111;
protongamer 1:4d70e593345f 544 state_val++;
protongamer 1:4d70e593345f 545 }
protongamer 1:4d70e593345f 546
protongamer 1:4d70e593345f 547 break;
protongamer 1:4d70e593345f 548
protongamer 1:4d70e593345f 549 case '8':
protongamer 1:4d70e593345f 550 pc.printf("8");
protongamer 1:4d70e593345f 551
protongamer 1:4d70e593345f 552 if(state_val > 0){
protongamer 1:4d70e593345f 553 instruction = instruction << 4;
protongamer 1:4d70e593345f 554 instruction |= 0b1000;
protongamer 1:4d70e593345f 555 }
protongamer 1:4d70e593345f 556
protongamer 1:4d70e593345f 557
protongamer 1:4d70e593345f 558 if(state_val == 0){
protongamer 1:4d70e593345f 559 instruction = 0b1000;
protongamer 1:4d70e593345f 560 state_val++;
protongamer 1:4d70e593345f 561 }
protongamer 1:4d70e593345f 562
protongamer 1:4d70e593345f 563 break;
protongamer 1:4d70e593345f 564
protongamer 1:4d70e593345f 565 case '9':
protongamer 1:4d70e593345f 566 pc.printf("9");
protongamer 1:4d70e593345f 567
protongamer 1:4d70e593345f 568 if(state_val > 0){
protongamer 1:4d70e593345f 569 instruction = instruction << 4;
protongamer 1:4d70e593345f 570 instruction |= 0b1001;
protongamer 1:4d70e593345f 571 }
protongamer 1:4d70e593345f 572
protongamer 1:4d70e593345f 573 if(state_val == 0){
protongamer 1:4d70e593345f 574 instruction = 0b1001;
protongamer 1:4d70e593345f 575 state_val++;
protongamer 1:4d70e593345f 576 }
protongamer 1:4d70e593345f 577
protongamer 1:4d70e593345f 578 break;
protongamer 1:4d70e593345f 579
protongamer 1:4d70e593345f 580 case 'a':
protongamer 1:4d70e593345f 581 pc.printf("a");
protongamer 1:4d70e593345f 582
protongamer 1:4d70e593345f 583 if(state_val > 0){
protongamer 1:4d70e593345f 584 instruction = instruction << 4;
protongamer 1:4d70e593345f 585 instruction |= 0b1010;
protongamer 1:4d70e593345f 586 }
protongamer 1:4d70e593345f 587
protongamer 1:4d70e593345f 588 if(state_val == 0){
protongamer 1:4d70e593345f 589 instruction = 0b1010;
protongamer 1:4d70e593345f 590 state_val++;
protongamer 1:4d70e593345f 591 }
protongamer 1:4d70e593345f 592
protongamer 1:4d70e593345f 593 break;
protongamer 1:4d70e593345f 594
protongamer 1:4d70e593345f 595 case 'b':
protongamer 1:4d70e593345f 596 pc.printf("b");
protongamer 1:4d70e593345f 597
protongamer 1:4d70e593345f 598 if(state_val > 0){
protongamer 1:4d70e593345f 599 instruction = instruction << 4;
protongamer 1:4d70e593345f 600 instruction |= 0b1011;
protongamer 1:4d70e593345f 601 }
protongamer 1:4d70e593345f 602
protongamer 1:4d70e593345f 603 if(state_val == 0){
protongamer 1:4d70e593345f 604 instruction = 0b1011;
protongamer 1:4d70e593345f 605 state_val++;
protongamer 1:4d70e593345f 606 }
protongamer 1:4d70e593345f 607
protongamer 1:4d70e593345f 608 break;
protongamer 1:4d70e593345f 609
protongamer 1:4d70e593345f 610 case 'c':
protongamer 1:4d70e593345f 611 pc.printf("c");
protongamer 1:4d70e593345f 612
protongamer 1:4d70e593345f 613 if(state_val > 0){
protongamer 1:4d70e593345f 614 instruction = instruction << 4;
protongamer 1:4d70e593345f 615 instruction |= 0b1100;
protongamer 1:4d70e593345f 616 }
protongamer 1:4d70e593345f 617
protongamer 1:4d70e593345f 618 if(state_val == 0){
protongamer 1:4d70e593345f 619 instruction = 0b1100;
protongamer 1:4d70e593345f 620 state_val++;
protongamer 1:4d70e593345f 621 }
protongamer 1:4d70e593345f 622
protongamer 1:4d70e593345f 623 break;
protongamer 1:4d70e593345f 624
protongamer 1:4d70e593345f 625 case 'd':
protongamer 1:4d70e593345f 626 pc.printf("d");
protongamer 1:4d70e593345f 627
protongamer 1:4d70e593345f 628 if(state_val > 0){
protongamer 1:4d70e593345f 629 instruction = instruction << 4;
protongamer 1:4d70e593345f 630 instruction |= 0b1101;
protongamer 1:4d70e593345f 631 }
protongamer 1:4d70e593345f 632
protongamer 1:4d70e593345f 633 if(state_val == 0){
protongamer 1:4d70e593345f 634 instruction = 0b1101;
protongamer 1:4d70e593345f 635 state_val++;
protongamer 1:4d70e593345f 636 }
protongamer 1:4d70e593345f 637
protongamer 1:4d70e593345f 638 break;
protongamer 1:4d70e593345f 639
protongamer 1:4d70e593345f 640 case 'e':
protongamer 1:4d70e593345f 641 pc.printf("e");
protongamer 1:4d70e593345f 642
protongamer 1:4d70e593345f 643 if(state_val > 0){
protongamer 1:4d70e593345f 644 instruction = instruction << 4;
protongamer 1:4d70e593345f 645 instruction |= 0b1110;
protongamer 1:4d70e593345f 646 }
protongamer 1:4d70e593345f 647
protongamer 1:4d70e593345f 648 if(state_val == 0){
protongamer 1:4d70e593345f 649 instruction = 0b1110;
protongamer 1:4d70e593345f 650 state_val++;
protongamer 1:4d70e593345f 651 }
protongamer 1:4d70e593345f 652
protongamer 1:4d70e593345f 653 break;
protongamer 1:4d70e593345f 654
protongamer 1:4d70e593345f 655 case 'f':
protongamer 1:4d70e593345f 656 pc.printf("f");
protongamer 1:4d70e593345f 657
protongamer 1:4d70e593345f 658 if(state_val > 0){
protongamer 1:4d70e593345f 659 instruction = instruction << 4;
protongamer 1:4d70e593345f 660 instruction |= 0b1111;
protongamer 1:4d70e593345f 661 }
protongamer 1:4d70e593345f 662
protongamer 1:4d70e593345f 663 if(state_val == 0){
protongamer 1:4d70e593345f 664 instruction = 0b1111;
protongamer 1:4d70e593345f 665 state_val++;
protongamer 1:4d70e593345f 666 }
protongamer 1:4d70e593345f 667
protongamer 1:4d70e593345f 668 break;
protongamer 1:4d70e593345f 669
protongamer 1:4d70e593345f 670 case 'A':
protongamer 1:4d70e593345f 671 pc.printf("a");
protongamer 1:4d70e593345f 672
protongamer 1:4d70e593345f 673 if(state_val > 0){
protongamer 1:4d70e593345f 674 instruction = instruction << 4;
protongamer 1:4d70e593345f 675 instruction |= 0b1010;
protongamer 1:4d70e593345f 676 }
protongamer 1:4d70e593345f 677
protongamer 1:4d70e593345f 678 if(state_val == 0){
protongamer 1:4d70e593345f 679 instruction = 0b1010;
protongamer 1:4d70e593345f 680 state_val++;
protongamer 1:4d70e593345f 681 }
protongamer 1:4d70e593345f 682
protongamer 1:4d70e593345f 683 break;
protongamer 1:4d70e593345f 684
protongamer 1:4d70e593345f 685 case 'B':
protongamer 1:4d70e593345f 686 pc.printf("b");
protongamer 1:4d70e593345f 687
protongamer 1:4d70e593345f 688 if(state_val > 0){
protongamer 1:4d70e593345f 689 instruction = instruction << 4;
protongamer 1:4d70e593345f 690 instruction |= 0b1011;
protongamer 1:4d70e593345f 691 }
protongamer 1:4d70e593345f 692
protongamer 1:4d70e593345f 693 if(state_val == 0){
protongamer 1:4d70e593345f 694 instruction = 0b1011;
protongamer 1:4d70e593345f 695 state_val++;
protongamer 1:4d70e593345f 696 }
protongamer 1:4d70e593345f 697
protongamer 1:4d70e593345f 698 break;
protongamer 1:4d70e593345f 699
protongamer 1:4d70e593345f 700 case 'C':
protongamer 1:4d70e593345f 701 pc.printf("c");
protongamer 1:4d70e593345f 702
protongamer 1:4d70e593345f 703 if(state_val > 0){
protongamer 1:4d70e593345f 704 instruction = instruction << 4;
protongamer 1:4d70e593345f 705 instruction |= 0b1100;
protongamer 1:4d70e593345f 706 }
protongamer 1:4d70e593345f 707
protongamer 1:4d70e593345f 708 if(state_val == 0){
protongamer 1:4d70e593345f 709 instruction = 0b1100;
protongamer 1:4d70e593345f 710 state_val++;
protongamer 1:4d70e593345f 711 }
protongamer 1:4d70e593345f 712
protongamer 1:4d70e593345f 713 break;
protongamer 1:4d70e593345f 714
protongamer 1:4d70e593345f 715 case 'D':
protongamer 1:4d70e593345f 716 pc.printf("d");
protongamer 1:4d70e593345f 717
protongamer 1:4d70e593345f 718 if(state_val > 0){
protongamer 1:4d70e593345f 719 instruction = instruction << 4;
protongamer 1:4d70e593345f 720 instruction |= 0b1101;
protongamer 1:4d70e593345f 721 }
protongamer 1:4d70e593345f 722
protongamer 1:4d70e593345f 723 if(state_val == 0){
protongamer 1:4d70e593345f 724 instruction = 0b1101;
protongamer 1:4d70e593345f 725 state_val++;
protongamer 1:4d70e593345f 726 }
protongamer 1:4d70e593345f 727
protongamer 1:4d70e593345f 728 break;
protongamer 1:4d70e593345f 729
protongamer 1:4d70e593345f 730 case 'E':
protongamer 1:4d70e593345f 731 pc.printf("e");
protongamer 1:4d70e593345f 732
protongamer 1:4d70e593345f 733 if(state_val > 0){
protongamer 1:4d70e593345f 734 instruction = instruction << 4;
protongamer 1:4d70e593345f 735 instruction |= 0b1110;
protongamer 1:4d70e593345f 736 }
protongamer 1:4d70e593345f 737
protongamer 1:4d70e593345f 738 if(state_val == 0){
protongamer 1:4d70e593345f 739 instruction = 0b1110;
protongamer 1:4d70e593345f 740 state_val++;
protongamer 1:4d70e593345f 741 }
protongamer 1:4d70e593345f 742
protongamer 1:4d70e593345f 743 break;
protongamer 1:4d70e593345f 744
protongamer 1:4d70e593345f 745 case 'F':
protongamer 1:4d70e593345f 746 pc.printf("f");
protongamer 1:4d70e593345f 747
protongamer 1:4d70e593345f 748 if(state_val > 0){
protongamer 1:4d70e593345f 749 instruction = instruction << 4;
protongamer 1:4d70e593345f 750 instruction |= 0b1111;
protongamer 1:4d70e593345f 751 }
protongamer 1:4d70e593345f 752
protongamer 1:4d70e593345f 753 if(state_val == 0){
protongamer 1:4d70e593345f 754 instruction = 0b1111;
protongamer 1:4d70e593345f 755 state_val++;
protongamer 1:4d70e593345f 756 }
protongamer 1:4d70e593345f 757
protongamer 1:4d70e593345f 758 break;
protongamer 1:4d70e593345f 759
protongamer 1:4d70e593345f 760 }
protongamer 1:4d70e593345f 761
protongamer 1:4d70e593345f 762 length = instruction;
protongamer 1:4d70e593345f 763 pc.printf("\r\n");
protongamer 1:4d70e593345f 764 if(length > 0){
protongamer 1:4d70e593345f 765 pc.printf("Send octets in hexa\r\n");
protongamer 1:4d70e593345f 766 i = 0;
protongamer 1:4d70e593345f 767 pc.printf("\r\n Octet[%d] : ", i);
protongamer 1:4d70e593345f 768 while(i <= length - 1){
protongamer 1:4d70e593345f 769
protongamer 1:4d70e593345f 770
protongamer 1:4d70e593345f 771 c = pc.getc();
protongamer 1:4d70e593345f 772 switch(c){
protongamer 1:4d70e593345f 773 case '0':
protongamer 1:4d70e593345f 774 pc.printf("0");
protongamer 1:4d70e593345f 775
protongamer 1:4d70e593345f 776 if(state_val > 0){
protongamer 1:4d70e593345f 777 instruction = instruction << 4;
protongamer 1:4d70e593345f 778 instruction |= 0b0000;
protongamer 1:4d70e593345f 779 }
protongamer 1:4d70e593345f 780
protongamer 1:4d70e593345f 781 if(state_val == 0){
protongamer 1:4d70e593345f 782 instruction = 0b0000;
protongamer 1:4d70e593345f 783 state_val++;
protongamer 1:4d70e593345f 784 }
protongamer 1:4d70e593345f 785
protongamer 1:4d70e593345f 786 break;
protongamer 1:4d70e593345f 787
protongamer 1:4d70e593345f 788 case '1':
protongamer 1:4d70e593345f 789
protongamer 1:4d70e593345f 790 if(state_val > 0){
protongamer 1:4d70e593345f 791 instruction = instruction << 4;
protongamer 1:4d70e593345f 792 instruction |= 0b0001;
protongamer 1:4d70e593345f 793 }
protongamer 1:4d70e593345f 794
protongamer 1:4d70e593345f 795 pc.printf("1");
protongamer 1:4d70e593345f 796 if(state_val == 0){
protongamer 1:4d70e593345f 797 instruction = 0b0001;
protongamer 1:4d70e593345f 798 state_val++;
protongamer 1:4d70e593345f 799 }
protongamer 1:4d70e593345f 800
protongamer 1:4d70e593345f 801 break;
protongamer 1:4d70e593345f 802
protongamer 1:4d70e593345f 803 case '2':
protongamer 1:4d70e593345f 804
protongamer 1:4d70e593345f 805 if(state_val > 0){
protongamer 1:4d70e593345f 806 instruction = instruction << 4;
protongamer 1:4d70e593345f 807 instruction |= 0b0010;
protongamer 1:4d70e593345f 808 }
protongamer 1:4d70e593345f 809
protongamer 1:4d70e593345f 810 pc.printf("2");
protongamer 1:4d70e593345f 811 if(state_val == 0){
protongamer 1:4d70e593345f 812 instruction = 0b0010;
protongamer 1:4d70e593345f 813 state_val++;
protongamer 1:4d70e593345f 814 }
protongamer 1:4d70e593345f 815
protongamer 1:4d70e593345f 816 break;
protongamer 1:4d70e593345f 817
protongamer 1:4d70e593345f 818 case '3':
protongamer 1:4d70e593345f 819 pc.printf("3");
protongamer 1:4d70e593345f 820
protongamer 1:4d70e593345f 821 if(state_val > 0){
protongamer 1:4d70e593345f 822 instruction = instruction << 4;
protongamer 1:4d70e593345f 823 instruction |= 0b0011;
protongamer 1:4d70e593345f 824 }
protongamer 1:4d70e593345f 825
protongamer 1:4d70e593345f 826 if(state_val == 0){
protongamer 1:4d70e593345f 827 instruction = 0b0011;
protongamer 1:4d70e593345f 828 state_val++;
protongamer 1:4d70e593345f 829 }
protongamer 1:4d70e593345f 830
protongamer 1:4d70e593345f 831 break;
protongamer 1:4d70e593345f 832
protongamer 1:4d70e593345f 833 case '4':
protongamer 1:4d70e593345f 834
protongamer 1:4d70e593345f 835 if(state_val > 0){
protongamer 1:4d70e593345f 836 instruction = instruction << 4;
protongamer 1:4d70e593345f 837 instruction |= 0b0100;
protongamer 1:4d70e593345f 838 }
protongamer 1:4d70e593345f 839
protongamer 1:4d70e593345f 840 pc.printf("4");
protongamer 1:4d70e593345f 841 if(state_val == 0){
protongamer 1:4d70e593345f 842 instruction = 0b0100;
protongamer 1:4d70e593345f 843 state_val++;
protongamer 1:4d70e593345f 844 }
protongamer 1:4d70e593345f 845
protongamer 1:4d70e593345f 846 break;
protongamer 1:4d70e593345f 847
protongamer 1:4d70e593345f 848 case '5':
protongamer 1:4d70e593345f 849 pc.printf("5");
protongamer 1:4d70e593345f 850
protongamer 1:4d70e593345f 851 if(state_val > 0){
protongamer 1:4d70e593345f 852 instruction = instruction << 4;
protongamer 1:4d70e593345f 853 instruction |= 0b0101;
protongamer 1:4d70e593345f 854 }
protongamer 1:4d70e593345f 855
protongamer 1:4d70e593345f 856 if(state_val == 0){
protongamer 1:4d70e593345f 857 instruction = 0b0101;
protongamer 1:4d70e593345f 858 state_val++;
protongamer 1:4d70e593345f 859 }
protongamer 1:4d70e593345f 860
protongamer 1:4d70e593345f 861 break;
protongamer 1:4d70e593345f 862
protongamer 1:4d70e593345f 863 case '6':
protongamer 1:4d70e593345f 864 pc.printf("6");
protongamer 1:4d70e593345f 865
protongamer 1:4d70e593345f 866 if(state_val > 0){
protongamer 1:4d70e593345f 867 instruction = instruction << 4;
protongamer 1:4d70e593345f 868 instruction |= 0b0110;
protongamer 1:4d70e593345f 869 }
protongamer 1:4d70e593345f 870
protongamer 1:4d70e593345f 871 if(state_val == 0){
protongamer 1:4d70e593345f 872 instruction = 0b0110;
protongamer 1:4d70e593345f 873 state_val++;
protongamer 1:4d70e593345f 874 }
protongamer 1:4d70e593345f 875
protongamer 1:4d70e593345f 876 break;
protongamer 1:4d70e593345f 877
protongamer 1:4d70e593345f 878 case '7':
protongamer 1:4d70e593345f 879 pc.printf("7");
protongamer 1:4d70e593345f 880
protongamer 1:4d70e593345f 881 if(state_val > 0){
protongamer 1:4d70e593345f 882 instruction = instruction << 4;
protongamer 1:4d70e593345f 883 instruction |= 0b0111;
protongamer 1:4d70e593345f 884 }
protongamer 1:4d70e593345f 885
protongamer 1:4d70e593345f 886 if(state_val == 0){
protongamer 1:4d70e593345f 887 instruction = 0b0111;
protongamer 1:4d70e593345f 888 state_val++;
protongamer 1:4d70e593345f 889 }
protongamer 1:4d70e593345f 890
protongamer 1:4d70e593345f 891 break;
protongamer 1:4d70e593345f 892
protongamer 1:4d70e593345f 893 case '8':
protongamer 1:4d70e593345f 894 pc.printf("8");
protongamer 1:4d70e593345f 895
protongamer 1:4d70e593345f 896 if(state_val > 0){
protongamer 1:4d70e593345f 897 instruction = instruction << 4;
protongamer 1:4d70e593345f 898 instruction |= 0b1000;
protongamer 1:4d70e593345f 899 }
protongamer 1:4d70e593345f 900
protongamer 1:4d70e593345f 901
protongamer 1:4d70e593345f 902 if(state_val == 0){
protongamer 1:4d70e593345f 903 instruction = 0b1000;
protongamer 1:4d70e593345f 904 state_val++;
protongamer 1:4d70e593345f 905 }
protongamer 1:4d70e593345f 906
protongamer 1:4d70e593345f 907 break;
protongamer 1:4d70e593345f 908
protongamer 1:4d70e593345f 909 case '9':
protongamer 1:4d70e593345f 910 pc.printf("9");
protongamer 1:4d70e593345f 911
protongamer 1:4d70e593345f 912 if(state_val > 0){
protongamer 1:4d70e593345f 913 instruction = instruction << 4;
protongamer 1:4d70e593345f 914 instruction |= 0b1001;
protongamer 1:4d70e593345f 915 }
protongamer 1:4d70e593345f 916
protongamer 1:4d70e593345f 917 if(state_val == 0){
protongamer 1:4d70e593345f 918 instruction = 0b1001;
protongamer 1:4d70e593345f 919 state_val++;
protongamer 1:4d70e593345f 920 }
protongamer 1:4d70e593345f 921
protongamer 1:4d70e593345f 922 break;
protongamer 1:4d70e593345f 923
protongamer 1:4d70e593345f 924 case 'a':
protongamer 1:4d70e593345f 925 pc.printf("a");
protongamer 1:4d70e593345f 926
protongamer 1:4d70e593345f 927 if(state_val > 0){
protongamer 1:4d70e593345f 928 instruction = instruction << 4;
protongamer 1:4d70e593345f 929 instruction |= 0b1010;
protongamer 1:4d70e593345f 930 }
protongamer 1:4d70e593345f 931
protongamer 1:4d70e593345f 932 if(state_val == 0){
protongamer 1:4d70e593345f 933 instruction = 0b1010;
protongamer 1:4d70e593345f 934 state_val++;
protongamer 1:4d70e593345f 935 }
protongamer 1:4d70e593345f 936
protongamer 1:4d70e593345f 937 break;
protongamer 1:4d70e593345f 938
protongamer 1:4d70e593345f 939 case 'b':
protongamer 1:4d70e593345f 940 pc.printf("b");
protongamer 1:4d70e593345f 941
protongamer 1:4d70e593345f 942 if(state_val > 0){
protongamer 1:4d70e593345f 943 instruction = instruction << 4;
protongamer 1:4d70e593345f 944 instruction |= 0b1011;
protongamer 1:4d70e593345f 945 }
protongamer 1:4d70e593345f 946
protongamer 1:4d70e593345f 947 if(state_val == 0){
protongamer 1:4d70e593345f 948 instruction = 0b1011;
protongamer 1:4d70e593345f 949 state_val++;
protongamer 1:4d70e593345f 950 }
protongamer 1:4d70e593345f 951
protongamer 1:4d70e593345f 952 break;
protongamer 1:4d70e593345f 953
protongamer 1:4d70e593345f 954 case 'c':
protongamer 1:4d70e593345f 955 pc.printf("c");
protongamer 1:4d70e593345f 956
protongamer 1:4d70e593345f 957 if(state_val > 0){
protongamer 1:4d70e593345f 958 instruction = instruction << 4;
protongamer 1:4d70e593345f 959 instruction |= 0b1100;
protongamer 1:4d70e593345f 960 }
protongamer 1:4d70e593345f 961
protongamer 1:4d70e593345f 962 if(state_val == 0){
protongamer 1:4d70e593345f 963 instruction = 0b1100;
protongamer 1:4d70e593345f 964 state_val++;
protongamer 1:4d70e593345f 965 }
protongamer 1:4d70e593345f 966
protongamer 1:4d70e593345f 967 break;
protongamer 1:4d70e593345f 968
protongamer 1:4d70e593345f 969 case 'd':
protongamer 1:4d70e593345f 970 pc.printf("d");
protongamer 1:4d70e593345f 971
protongamer 1:4d70e593345f 972 if(state_val > 0){
protongamer 1:4d70e593345f 973 instruction = instruction << 4;
protongamer 1:4d70e593345f 974 instruction |= 0b1101;
protongamer 1:4d70e593345f 975 }
protongamer 1:4d70e593345f 976
protongamer 1:4d70e593345f 977 if(state_val == 0){
protongamer 1:4d70e593345f 978 instruction = 0b1101;
protongamer 1:4d70e593345f 979 state_val++;
protongamer 1:4d70e593345f 980 }
protongamer 1:4d70e593345f 981
protongamer 1:4d70e593345f 982 break;
protongamer 1:4d70e593345f 983
protongamer 1:4d70e593345f 984 case 'e':
protongamer 1:4d70e593345f 985 pc.printf("e");
protongamer 1:4d70e593345f 986
protongamer 1:4d70e593345f 987 if(state_val > 0){
protongamer 1:4d70e593345f 988 instruction = instruction << 4;
protongamer 1:4d70e593345f 989 instruction |= 0b1110;
protongamer 1:4d70e593345f 990 }
protongamer 1:4d70e593345f 991
protongamer 1:4d70e593345f 992 if(state_val == 0){
protongamer 1:4d70e593345f 993 instruction = 0b1110;
protongamer 1:4d70e593345f 994 state_val++;
protongamer 1:4d70e593345f 995 }
protongamer 1:4d70e593345f 996
protongamer 1:4d70e593345f 997 break;
protongamer 1:4d70e593345f 998
protongamer 1:4d70e593345f 999 case 'f':
protongamer 1:4d70e593345f 1000 pc.printf("f");
protongamer 1:4d70e593345f 1001
protongamer 1:4d70e593345f 1002 if(state_val > 0){
protongamer 1:4d70e593345f 1003 instruction = instruction << 4;
protongamer 1:4d70e593345f 1004 instruction |= 0b1111;
protongamer 1:4d70e593345f 1005 }
protongamer 1:4d70e593345f 1006
protongamer 1:4d70e593345f 1007 if(state_val == 0){
protongamer 1:4d70e593345f 1008 instruction = 0b1111;
protongamer 1:4d70e593345f 1009 state_val++;
protongamer 1:4d70e593345f 1010 }
protongamer 1:4d70e593345f 1011
protongamer 1:4d70e593345f 1012 break;
protongamer 1:4d70e593345f 1013
protongamer 1:4d70e593345f 1014 case 'A':
protongamer 1:4d70e593345f 1015 pc.printf("a");
protongamer 1:4d70e593345f 1016
protongamer 1:4d70e593345f 1017 if(state_val > 0){
protongamer 1:4d70e593345f 1018 instruction = instruction << 4;
protongamer 1:4d70e593345f 1019 instruction |= 0b1010;
protongamer 1:4d70e593345f 1020 }
protongamer 1:4d70e593345f 1021
protongamer 1:4d70e593345f 1022 if(state_val == 0){
protongamer 1:4d70e593345f 1023 instruction = 0b1010;
protongamer 1:4d70e593345f 1024 state_val++;
protongamer 1:4d70e593345f 1025 }
protongamer 1:4d70e593345f 1026
protongamer 1:4d70e593345f 1027 break;
protongamer 1:4d70e593345f 1028
protongamer 1:4d70e593345f 1029 case 'B':
protongamer 1:4d70e593345f 1030 pc.printf("b");
protongamer 1:4d70e593345f 1031
protongamer 1:4d70e593345f 1032 if(state_val > 0){
protongamer 1:4d70e593345f 1033 instruction = instruction << 4;
protongamer 1:4d70e593345f 1034 instruction |= 0b1011;
protongamer 1:4d70e593345f 1035 }
protongamer 1:4d70e593345f 1036
protongamer 1:4d70e593345f 1037 if(state_val == 0){
protongamer 1:4d70e593345f 1038 instruction = 0b1011;
protongamer 1:4d70e593345f 1039 state_val++;
protongamer 1:4d70e593345f 1040 }
protongamer 1:4d70e593345f 1041
protongamer 1:4d70e593345f 1042 break;
protongamer 1:4d70e593345f 1043
protongamer 1:4d70e593345f 1044 case 'C':
protongamer 1:4d70e593345f 1045 pc.printf("c");
protongamer 1:4d70e593345f 1046
protongamer 1:4d70e593345f 1047 if(state_val > 0){
protongamer 1:4d70e593345f 1048 instruction = instruction << 4;
protongamer 1:4d70e593345f 1049 instruction |= 0b1100;
protongamer 1:4d70e593345f 1050 }
protongamer 1:4d70e593345f 1051
protongamer 1:4d70e593345f 1052 if(state_val == 0){
protongamer 1:4d70e593345f 1053 instruction = 0b1100;
protongamer 1:4d70e593345f 1054 state_val++;
protongamer 1:4d70e593345f 1055 }
protongamer 1:4d70e593345f 1056
protongamer 1:4d70e593345f 1057 break;
protongamer 1:4d70e593345f 1058
protongamer 1:4d70e593345f 1059 case 'D':
protongamer 1:4d70e593345f 1060 pc.printf("d");
protongamer 1:4d70e593345f 1061
protongamer 1:4d70e593345f 1062 if(state_val > 0){
protongamer 1:4d70e593345f 1063 instruction = instruction << 4;
protongamer 1:4d70e593345f 1064 instruction |= 0b1101;
protongamer 1:4d70e593345f 1065 }
protongamer 1:4d70e593345f 1066
protongamer 1:4d70e593345f 1067 if(state_val == 0){
protongamer 1:4d70e593345f 1068 instruction = 0b1101;
protongamer 1:4d70e593345f 1069 state_val++;
protongamer 1:4d70e593345f 1070 }
protongamer 1:4d70e593345f 1071
protongamer 1:4d70e593345f 1072 break;
protongamer 1:4d70e593345f 1073
protongamer 1:4d70e593345f 1074 case 'E':
protongamer 1:4d70e593345f 1075 pc.printf("e");
protongamer 1:4d70e593345f 1076
protongamer 1:4d70e593345f 1077 if(state_val > 0){
protongamer 1:4d70e593345f 1078 instruction = instruction << 4;
protongamer 1:4d70e593345f 1079 instruction |= 0b1110;
protongamer 1:4d70e593345f 1080 }
protongamer 1:4d70e593345f 1081
protongamer 1:4d70e593345f 1082 if(state_val == 0){
protongamer 1:4d70e593345f 1083 instruction = 0b1110;
protongamer 1:4d70e593345f 1084 state_val++;
protongamer 1:4d70e593345f 1085 }
protongamer 1:4d70e593345f 1086
protongamer 1:4d70e593345f 1087 break;
protongamer 1:4d70e593345f 1088
protongamer 1:4d70e593345f 1089 case 'F':
protongamer 1:4d70e593345f 1090 pc.printf("f");
protongamer 1:4d70e593345f 1091
protongamer 1:4d70e593345f 1092 if(state_val > 0){
protongamer 1:4d70e593345f 1093 instruction = instruction << 4;
protongamer 1:4d70e593345f 1094 instruction |= 0b1111;
protongamer 1:4d70e593345f 1095 }
protongamer 1:4d70e593345f 1096
protongamer 1:4d70e593345f 1097 if(state_val == 0){
protongamer 1:4d70e593345f 1098 instruction = 0b1111;
protongamer 1:4d70e593345f 1099 state_val++;
protongamer 1:4d70e593345f 1100 }
protongamer 1:4d70e593345f 1101
protongamer 1:4d70e593345f 1102 break;
protongamer 1:4d70e593345f 1103
protongamer 1:4d70e593345f 1104 case '\r':
protongamer 1:4d70e593345f 1105 octet_send[i] = instruction;
protongamer 1:4d70e593345f 1106 instruction = 0;
protongamer 1:4d70e593345f 1107 state_val = 0;
protongamer 1:4d70e593345f 1108 i++;
protongamer 1:4d70e593345f 1109 if(i <= length - 1){
protongamer 1:4d70e593345f 1110 pc.printf("\r\n Octet[%d] : ", i);}
protongamer 1:4d70e593345f 1111 break;
protongamer 1:4d70e593345f 1112
protongamer 1:4d70e593345f 1113 }
protongamer 1:4d70e593345f 1114
protongamer 1:4d70e593345f 1115
protongamer 1:4d70e593345f 1116 }//end of while
protongamer 1:4d70e593345f 1117 }
protongamer 1:4d70e593345f 1118 pc.printf("Set RTR (1 or 0): ");
protongamer 1:4d70e593345f 1119 c = pc.getc();
protongamer 1:4d70e593345f 1120 if(c == '0'){
protongamer 1:4d70e593345f 1121 RemoteData = 'D';
protongamer 1:4d70e593345f 1122 }
protongamer 1:4d70e593345f 1123 if(c == '1'){
protongamer 1:4d70e593345f 1124 RemoteData = 'R';
protongamer 1:4d70e593345f 1125 }
protongamer 1:4d70e593345f 1126 pc.printf("%c \r\n",c);
protongamer 1:4d70e593345f 1127 wait(2);
protongamer 1:4d70e593345f 1128
protongamer 1:4d70e593345f 1129 send(identif, octet_send, RemoteData, length );
protongamer 1:4d70e593345f 1130 data_rc = 0;
protongamer 1:4d70e593345f 1131 for(i = 0; i < 50; i++){
protongamer 1:4d70e593345f 1132 pc.printf("Awaiting Data... \r\n");
protongamer 1:4d70e593345f 1133 if(can2.read(msg)) {
protongamer 1:4d70e593345f 1134 pc.printf("Message received: 0x%x \r\n", msg.data[data_rc]);
protongamer 1:4d70e593345f 1135 data_report[data_rc] = msg.data[data_rc];
protongamer 1:4d70e593345f 1136 data_rc++;
protongamer 1:4d70e593345f 1137 }
protongamer 1:4d70e593345f 1138 }//end of for
protongamer 1:4d70e593345f 1139
protongamer 1:4d70e593345f 1140
protongamer 1:4d70e593345f 1141 for(i = 0; i < data_rc; i++){
protongamer 1:4d70e593345f 1142 pc.printf("Data captured %d : 0x%x \r\n", data_rc, data_report[i]);
protongamer 1:4d70e593345f 1143
protongamer 1:4d70e593345f 1144 }
protongamer 1:4d70e593345f 1145 data_rc = 0;
protongamer 1:4d70e593345f 1146 i = 0;
protongamer 1:4d70e593345f 1147 state = 0;
protongamer 1:4d70e593345f 1148 pc.printf("\r\n");
protongamer 1:4d70e593345f 1149 //end of for
protongamer 1:4d70e593345f 1150
protongamer 1:4d70e593345f 1151 }// fin while(1)
protongamer 1:4d70e593345f 1152
protongamer 1:4d70e593345f 1153 } // fin main
protongamer 1:4d70e593345f 1154
protongamer 1:4d70e593345f 1155 /*
protongamer 1:4d70e593345f 1156
LouisReynier 0:1ab5fdb4fa56 1157 printf("loop()\n");
LouisReynier 0:1ab5fdb4fa56 1158 if(can2.read(msg)) {
LouisReynier 0:1ab5fdb4fa56 1159 printf("Message received: %d\n", msg.data[0]);
LouisReynier 0:1ab5fdb4fa56 1160 led2 = !led2;
LouisReynier 0:1ab5fdb4fa56 1161 }
LouisReynier 0:1ab5fdb4fa56 1162 wait(0.2);
LouisReynier 0:1ab5fdb4fa56 1163 }
protongamer 1:4d70e593345f 1164 } */
protongamer 1:4d70e593345f 1165
protongamer 1:4d70e593345f 1166 //choix= 5*pot_1.read();
protongamer 1:4d70e593345f 1167 // lcd.locate(0,0);
protongamer 1:4d70e593345f 1168 // lcd. printf("Trame %d \n", choix);
protongamer 1:4d70e593345f 1169 /* switch (choix)
protongamer 1:4d70e593345f 1170 { // debut sw
protongamer 1:4d70e593345f 1171 case (0): // Trame qui passe le noeud 15 en Operationnal state
protongamer 1:4d70e593345f 1172 { identif = 0x00 ;
protongamer 1:4d70e593345f 1173 octet_send[0] = 0x01 ;
protongamer 1:4d70e593345f 1174 octet_send[1] = 0x15 ;
protongamer 1:4d70e593345f 1175 RemoteData = 'D';
protongamer 1:4d70e593345f 1176 length = 2 ;
protongamer 1:4d70e593345f 1177 break ;
protongamer 1:4d70e593345f 1178 } // fin case 0
protongamer 1:4d70e593345f 1179 case (1): // Trame qui passe le noeud 20 en Operationnal state
protongamer 1:4d70e593345f 1180 { identif = 0x00 ;
protongamer 1:4d70e593345f 1181 octet_send[0] = 0x01 ;
protongamer 1:4d70e593345f 1182 octet_send[1] = 0x20 ;
protongamer 1:4d70e593345f 1183 RemoteData = 'D';
protongamer 1:4d70e593345f 1184 length = 2 ;
protongamer 1:4d70e593345f 1185 break ;
protongamer 1:4d70e593345f 1186 } // fin case 1
protongamer 1:4d70e593345f 1187 case (2): // trame qui ping le noeud 15
protongamer 1:4d70e593345f 1188 { identif = 0x715 ;
protongamer 1:4d70e593345f 1189 for(i=0;i<9;i++)
protongamer 1:4d70e593345f 1190 { octet_send[i]='D';} // 44 en hexa par defaut
protongamer 1:4d70e593345f 1191 RemoteData = 'R';
protongamer 1:4d70e593345f 1192 length = 0 ;
protongamer 1:4d70e593345f 1193 break ;
protongamer 1:4d70e593345f 1194 } // fin case 2
protongamer 1:4d70e593345f 1195 case (3): // trame qui ping le noeud 20
protongamer 1:4d70e593345f 1196 { identif = 0x720 ;
protongamer 1:4d70e593345f 1197 for(i=0;i<9;i++)
protongamer 1:4d70e593345f 1198 { octet_send[i]='D';} // 44 en hexa par defaut
protongamer 1:4d70e593345f 1199 RemoteData = 'R';
protongamer 1:4d70e593345f 1200 length = 0 ;
protongamer 1:4d70e593345f 1201 break ;
protongamer 1:4d70e593345f 1202 } // fin case 3
protongamer 1:4d70e593345f 1203
protongamer 1:4d70e593345f 1204 default : // 4 ou 5
protongamer 1:4d70e593345f 1205 { identif = 0x123 ;
protongamer 1:4d70e593345f 1206 for(i=0;i<9;i++)
protongamer 1:4d70e593345f 1207 { octet_send[i]='D';} // 44 en hexa par defaut
protongamer 1:4d70e593345f 1208 RemoteData = 'D';
protongamer 1:4d70e593345f 1209 length = 8 ;
protongamer 1:4d70e593345f 1210 break ;
protongamer 1:4d70e593345f 1211 } // fin default
protongamer 1:4d70e593345f 1212
protongamer 1:4d70e593345f 1213 } // fin switch
protongamer 1:4d70e593345f 1214 */