/****************************************** * Reception et affichage des donnees * du module RFID vers Midi. * Interface-Z * Receiving and displaying sensor data from * RFID to Midi Interface-Z ****************************************** */ import promidi.*; MidiIO midiIO; void setup() { //Instance of MidiIO midiIO = MidiIO.getInstance(this); println("<<<<<<<<< Ports Midi >>>>>>>>>"); //Print a list of all available devices. //Imprime une liste de tous les peripheriques Midi disponibles. midiIO.printDevices(); /* Default : Open the first midi channel of the first input device. * Choose the correct number of your input device. * First channel = 0, not 1... * midiIO.openInput(device number,channel); */ /* Par defaut : Ouvre le premier canal sur le premier peripherique Midi. * Choisir le bon numero de peripherique * parmi les entrees disponibles sur votre ordinateur. * Premier canal = 0, pas 1... * midiIO.openInput(numero du peripherique,canal); */ midiIO.openInput(0,0); } /****************************************** * Reception des donnees du capteur. * Receiving sensor data. */ int valeur; int[] registre = new int[11]; int tag; void controllerIn(Controller controller, int device, int channel){ int numero = controller.getNumber(); if (numero == 0){ valeur = controller.getValue(); } if (numero == 1) { valeur = controller.getValue() + 128; } /* Mise en memoire des 11 valeurs du badge. * Memorising the tag 11 data. */ for (int i = 10; i > 0; i = i-1) { registre[i] = registre[i-1]; } registre[0] = valeur; if ((registre[10] == 1) && (registre[9] == 11) && (registre[8] == 1) && (registre[2] == 255)){ for (int i = 0; i < 11; i = i+1){ print(registre[i] + " "); } /* Affichage de la sequence specifique du badge dans la console * Displaying tag's specific list */ println(); } /* Identification de badges * Recopier la sequence de nombres de chaque badge, * affichee dans la console, * dans les variables badge_1, badge_2, etc */ // Le nombre de variables badge_x doit correspondre au nombre de badges utilises. int[] badge_1 = { 156, 26, 255, 5, 231, 173, 6, 1, 1, 11, 1 }; int[] badge_2 = { 140, 90, 255, 245, 202, 83, 7, 1, 1, 11, 1 }; int[] badge_3 = { 210, 168, 255, 95, 119, 86, 7, 1, 1, 11, 1 }; /* Les sequences contiennent 4 nombres constants : * x x 255 x x x x x 1 11 1 * Les autres changent selon le badge. */ /* Comparaison des badges enregistres dans les tableaux au badge courant * Les trois derniers nombres sont identiques donc non compares. * Une valeur correspondant a chaque badge est stockee dans la variable tag * Si un bagde non enregistre est identifie, tag n'est pas modifiee. */ // Badge 1 int rep1 = 1; for (int i = 0; (i < 9) && (rep1==1); i = i+1){ if (registre[i] != badge_1[i]) { rep1=0; } } if (rep1 == 1) { tag = 1; println("Badge " + tag); } // Badge 2 int rep2 = 1; for (int i = 0; (i < 9) && (rep2==1); i = i+1){ if (registre[i] != badge_2[i]) { rep2=0; } } if (rep2 == 1) { tag = 2; println("Badge " + tag); } // Badge 3 int rep3 = 1; for (int i = 0; (i < 9) && (rep3==1); i = i+1){ if (registre[i] != badge_3[i]) { rep3=0; } } if (rep3 == 1) { tag = 3; println("Badge " + tag); } // Il faut faire autant de comparaisons que de variables badge_x } void draw() { }