owlps/owlps-positioning/client/Client.cc

444 lines
21 KiB
C++

#include <iwlib.h>
#include <fstream>
#include <sstream>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <netdb.h>
#include <net/if.h>
#include <sys/types.h>
#include <string>
#include <vector>
#include <cstdio>
#include <iostream>
using namespace std;
typedef struct _couple_info{
unsigned char ap_mac_addr_bytes[6]; // Adresse MAC de l'AP
int antenna_signal_dbm; // Puissance du signal reçu par l'AP
} couple_info;
typedef struct _demande{
unsigned char ag_mac_addr_bytes[6]; // Adresse MAC de l'Aggregateur émetteur de la demande
int nb_couples; // Nombre couples (MAC AP;Puissance)
} demande;
char* mac_bytes_to_string(unsigned char *mac_binary) ;
int create_udp_sending_socket(char *server_address, int server_port, struct sockaddr_in *server_description, struct sockaddr_in * client_description) ;
void get_mac_addr(char *eth, unsigned char mac_bytes[6]);
int split(string buffer, vector<couple_info> &envoi_info);
unsigned char convertuchar(char *caractere, int);
int main(int argc, char **argv){
int sockfd, n = 0;
struct sockaddr_in serv;
struct sockaddr_in client;
unsigned char mac[6];
ifstream fichier(argv[3]);
string cppbuffer;
vector<couple_info> envoi_info;
demande envoi_demande;
if (argc != 4){
cerr << "usage: Client IPaddress interface fichier" << endl;
exit(1);
}
sockfd = create_udp_sending_socket(argv[1], 1234, &serv, &client);
if(sockfd < 0){
cerr << "Erreur ! Impossible de créer la socket vers le serveur de localisation" << endl;
return 1;
}
get_mac_addr(argv[2], mac) ;
memcpy(envoi_demande.ag_mac_addr_bytes, mac, 6);
if(fichier){
getline(fichier, cppbuffer);
envoi_demande.nb_couples = split(cppbuffer, envoi_info);
}
n = sendto(sockfd, (void *)&envoi_demande, sizeof(envoi_demande), 0, (struct sockaddr *)&serv, (socklen_t) sizeof(serv)) ;
for(int i = 0; i < envoi_demande.nb_couples; i++)
sendto(sockfd, (void *)&envoi_info.at(i), sizeof(couple_info), 0, (struct sockaddr *)&serv, (socklen_t) sizeof(serv));
exit(0);
}
void get_mac_addr(char *eth, unsigned char mac_bytes[6])
{
struct ifreq ifr;
int sockfd ;
bzero(mac_bytes, sizeof(unsigned char) * 6) ; // RàZ
sockfd = socket(AF_INET, SOCK_DGRAM, 0) ;
if(sockfd < 0)
perror("Impossible d'ouvrir la socket pour récupérer l'adresse MAC ") ;
strncpy(ifr.ifr_name, eth, IFNAMSIZ) ;
if (ioctl(sockfd, SIOCGIFFLAGS, &ifr) < 0)
return ;
if (ioctl(sockfd, SIOCGIFHWADDR, &ifr) < 0)
return ;
memcpy(mac_bytes, ifr.ifr_hwaddr.sa_data, 6) ;
}
int split(string buffer, vector<couple_info> &envoi_info){
unsigned char mac[6];
int valueI;
char c[4];
couple_info elem;
int i = 0;
int nb = 0;
while(i < buffer.size()){
for(int j = 0; j < 6; j++){
c[0] = buffer[i++];
c[1] = buffer[i++];
c[2] = '\0';
mac[j] = convertuchar(c, 0);
i++;
}
c[0] = buffer[i++];
c[1] = buffer[i++];
c[2] = buffer[i++];
c[3] = '\0';
i++;
valueI = atoi(c);
memcpy(elem.ap_mac_addr_bytes, mac, 6);
elem.antenna_signal_dbm = valueI;
envoi_info.resize(nb+1);
envoi_info.at(nb) = elem;
nb++;
}
return nb;
}
char* mac_bytes_to_string(unsigned char *mac_binary)
{
char *ret = (char *)malloc(sizeof(char) * 18) ;
sprintf(ret, "%02x:%02x:%02x:%02x:%02x:%02x", mac_binary[0], mac_binary[1], mac_binary[2], mac_binary[3], mac_binary[4], mac_binary[5]) ;
ret[17] = '\0' ;
return ret ;
}
int create_udp_sending_socket(char *server_address, int server_port, struct sockaddr_in *server_description, struct sockaddr_in * client_description){
int sockfd ; // Descripteur de la socket
/* Ceation de la socket UDP */
sockfd = socket(AF_INET, SOCK_DGRAM, 0) ;
if (sockfd < 0){
cerr << "Échec de la création de la socket " << endl;
return sockfd;
}
/* Remise à zéro et initialisation de la structure du client */
bzero((char *) client_description, sizeof(*client_description)) ;
client_description->sin_family = AF_INET ; // Socket INET
client_description->sin_addr.s_addr = htonl(INADDR_ANY) ; // Toutes les connexions
/* Remise à zéro et initialisation de la structure du serveur */
bzero((char *) server_description, sizeof(*server_description)) ; // RÀZ
server_description->sin_family = AF_INET ; // Socket INET
server_description->sin_addr.s_addr = inet_addr(server_address) ; // Adresse du serveur
server_description->sin_port = htons(server_port) ; // Port d'écoute du serveur
return sockfd ; // On retourne le descripteur de la socket créée
}
unsigned char convertuchar(char *caractere, int debut) {
int i = debut;
if (caractere[i] == '0' && caractere[i + 1] == '0') return 0x00;
if (caractere[i] == '0' && caractere[i + 1] == '1') return 0x01;
if (caractere[i] == '0' && caractere[i + 1] == '2') return 0x02;
if (caractere[i] == '0' && caractere[i + 1] == '3') return 0x03;
if (caractere[i] == '0' && caractere[i + 1] == '4') return 0x04;
if (caractere[i] == '0' && caractere[i + 1] == '5') return 0x05;
if (caractere[i] == '0' && caractere[i + 1] == '6') return 0x06;
if (caractere[i] == '0' && caractere[i + 1] == '7') return 0x07;
if (caractere[i] == '0' && caractere[i + 1] == '8') return 0x08;
if (caractere[i] == '0' && caractere[i + 1] == '9') return 0x09;
if (caractere[i] == '0' && caractere[i + 1] == 'a') return 0x0a;
if (caractere[i] == '0' && caractere[i + 1] == 'b') return 0x0b;
if (caractere[i] == '0' && caractere[i + 1] == 'c') return 0x0c;
if (caractere[i] == '0' && caractere[i + 1] == 'd') return 0x0d;
if (caractere[i] == '0' && caractere[i + 1] == 'e') return 0x0e;
if (caractere[i] == '0' && caractere[i + 1] == 'f') return 0x0f;
if (caractere[i] == '1' && caractere[i + 1] == '0') return 0x10;
if (caractere[i] == '1' && caractere[i + 1] == '1') return 0x11;
if (caractere[i] == '1' && caractere[i + 1] == '2') return 0x12;
if (caractere[i] == '1' && caractere[i + 1] == '3') return 0x13;
if (caractere[i] == '1' && caractere[i + 1] == '4') return 0x14;
if (caractere[i] == '1' && caractere[i + 1] == '5') return 0x15;
if (caractere[i] == '1' && caractere[i + 1] == '6') return 0x16;
if (caractere[i] == '1' && caractere[i + 1] == '7') return 0x17;
if (caractere[i] == '1' && caractere[i + 1] == '8') return 0x18;
if (caractere[i] == '1' && caractere[i + 1] == '9') return 0x19;
if (caractere[i] == '1' && caractere[i + 1] == 'a') return 0x1a;
if (caractere[i] == '1' && caractere[i + 1] == 'b') return 0x1b;
if (caractere[i] == '1' && caractere[i + 1] == 'c') return 0x1c;
if (caractere[i] == '1' && caractere[i + 1] == 'd') return 0x1d;
if (caractere[i] == '1' && caractere[i + 1] == 'e') return 0x1e;
if (caractere[i] == '1' && caractere[i + 1] == 'f') return 0x1f;
if (caractere[i] == '2' && caractere[i + 1] == '0') return 0x20;
if (caractere[i] == '2' && caractere[i + 1] == '1') return 0x21;
if (caractere[i] == '2' && caractere[i + 1] == '2') return 0x22;
if (caractere[i] == '2' && caractere[i + 1] == '3') return 0x23;
if (caractere[i] == '2' && caractere[i + 1] == '4') return 0x24;
if (caractere[i] == '2' && caractere[i + 1] == '5') return 0x25;
if (caractere[i] == '2' && caractere[i + 1] == '6') return 0x26;
if (caractere[i] == '2' && caractere[i + 1] == '7') return 0x27;
if (caractere[i] == '2' && caractere[i + 1] == '8') return 0x28;
if (caractere[i] == '2' && caractere[i + 1] == '9') return 0x29;
if (caractere[i] == '2' && caractere[i + 1] == 'a') return 0x2a;
if (caractere[i] == '2' && caractere[i + 1] == 'b') return 0x2b;
if (caractere[i] == '2' && caractere[i + 1] == 'c') return 0x2c;
if (caractere[i] == '2' && caractere[i + 1] == 'd') return 0x2d;
if (caractere[i] == '2' && caractere[i + 1] == 'e') return 0x2e;
if (caractere[i] == '2' && caractere[i + 1] == 'f') return 0x2f;
if (caractere[i] == '3' && caractere[i + 1] == '0') return 0x30;
if (caractere[i] == '3' && caractere[i + 1] == '1') return 0x31;
if (caractere[i] == '3' && caractere[i + 1] == '2') return 0x32;
if (caractere[i] == '3' && caractere[i + 1] == '3') return 0x33;
if (caractere[i] == '3' && caractere[i + 1] == '4') return 0x34;
if (caractere[i] == '3' && caractere[i + 1] == '5') return 0x35;
if (caractere[i] == '3' && caractere[i + 1] == '6') return 0x36;
if (caractere[i] == '3' && caractere[i + 1] == '7') return 0x37;
if (caractere[i] == '3' && caractere[i + 1] == '8') return 0x38;
if (caractere[i] == '3' && caractere[i + 1] == '9') return 0x39;
if (caractere[i] == '3' && caractere[i + 1] == 'a') return 0x3a;
if (caractere[i] == '3' && caractere[i + 1] == 'b') return 0x3b;
if (caractere[i] == '3' && caractere[i + 1] == 'c') return 0x3c;
if (caractere[i] == '3' && caractere[i + 1] == 'd') return 0x3d;
if (caractere[i] == '3' && caractere[i + 1] == 'e') return 0x3e;
if (caractere[i] == '3' && caractere[i + 1] == 'f') return 0x3f;
if (caractere[i] == '4' && caractere[i + 1] == '0') return 0x40;
if (caractere[i] == '4' && caractere[i + 1] == '1') return 0x41;
if (caractere[i] == '4' && caractere[i + 1] == '2') return 0x42;
if (caractere[i] == '4' && caractere[i + 1] == '3') return 0x43;
if (caractere[i] == '4' && caractere[i + 1] == '4') return 0x44;
if (caractere[i] == '4' && caractere[i + 1] == '5') return 0x45;
if (caractere[i] == '4' && caractere[i + 1] == '6') return 0x46;
if (caractere[i] == '4' && caractere[i + 1] == '7') return 0x47;
if (caractere[i] == '4' && caractere[i + 1] == '8') return 0x48;
if (caractere[i] == '4' && caractere[i + 1] == '9') return 0x49;
if (caractere[i] == '4' && caractere[i + 1] == 'a') return 0x4a;
if (caractere[i] == '4' && caractere[i + 1] == 'b') return 0x4b;
if (caractere[i] == '4' && caractere[i + 1] == 'c') return 0x4c;
if (caractere[i] == '4' && caractere[i + 1] == 'd') return 0x4d;
if (caractere[i] == '4' && caractere[i + 1] == 'e') return 0x4e;
if (caractere[i] == '4' && caractere[i + 1] == 'f') return 0x4f;
if (caractere[i] == '5' && caractere[i + 1] == '0') return 0x50;
if (caractere[i] == '5' && caractere[i + 1] == '1') return 0x51;
if (caractere[i] == '5' && caractere[i + 1] == '2') return 0x52;
if (caractere[i] == '5' && caractere[i + 1] == '3') return 0x53;
if (caractere[i] == '5' && caractere[i + 1] == '4') return 0x54;
if (caractere[i] == '5' && caractere[i + 1] == '5') return 0x55;
if (caractere[i] == '5' && caractere[i + 1] == '6') return 0x56;
if (caractere[i] == '5' && caractere[i + 1] == '7') return 0x57;
if (caractere[i] == '5' && caractere[i + 1] == '8') return 0x58;
if (caractere[i] == '5' && caractere[i + 1] == '9') return 0x59;
if (caractere[i] == '5' && caractere[i + 1] == 'a') return 0x5a;
if (caractere[i] == '5' && caractere[i + 1] == 'b') return 0x5b;
if (caractere[i] == '5' && caractere[i + 1] == 'c') return 0x5c;
if (caractere[i] == '5' && caractere[i + 1] == 'd') return 0x5d;
if (caractere[i] == '5' && caractere[i + 1] == 'e') return 0x5e;
if (caractere[i] == '5' && caractere[i + 1] == 'f') return 0x5f;
if (caractere[i] == '6' && caractere[i + 1] == '0') return 0x60;
if (caractere[i] == '6' && caractere[i + 1] == '1') return 0x61;
if (caractere[i] == '6' && caractere[i + 1] == '2') return 0x62;
if (caractere[i] == '6' && caractere[i + 1] == '3') return 0x63;
if (caractere[i] == '6' && caractere[i + 1] == '4') return 0x64;
if (caractere[i] == '6' && caractere[i + 1] == '5') return 0x65;
if (caractere[i] == '6' && caractere[i + 1] == '6') return 0x66;
if (caractere[i] == '6' && caractere[i + 1] == '7') return 0x67;
if (caractere[i] == '6' && caractere[i + 1] == '8') return 0x68;
if (caractere[i] == '6' && caractere[i + 1] == '9') return 0x69;
if (caractere[i] == '6' && caractere[i + 1] == 'a') return 0x6a;
if (caractere[i] == '6' && caractere[i + 1] == 'b') return 0x6b;
if (caractere[i] == '6' && caractere[i + 1] == 'c') return 0x6c;
if (caractere[i] == '6' && caractere[i + 1] == 'd') return 0x6d;
if (caractere[i] == '6' && caractere[i + 1] == 'e') return 0x6e;
if (caractere[i] == '6' && caractere[i + 1] == 'f') return 0x6f;
if (caractere[i] == '7' && caractere[i + 1] == '0') return 0x70;
if (caractere[i] == '7' && caractere[i + 1] == '1') return 0x71;
if (caractere[i] == '7' && caractere[i + 1] == '2') return 0x72;
if (caractere[i] == '7' && caractere[i + 1] == '3') return 0x73;
if (caractere[i] == '7' && caractere[i + 1] == '4') return 0x74;
if (caractere[i] == '7' && caractere[i + 1] == '5') return 0x75;
if (caractere[i] == '7' && caractere[i + 1] == '6') return 0x76;
if (caractere[i] == '7' && caractere[i + 1] == '7') return 0x77;
if (caractere[i] == '7' && caractere[i + 1] == '8') return 0x78;
if (caractere[i] == '7' && caractere[i + 1] == '9') return 0x79;
if (caractere[i] == '7' && caractere[i + 1] == 'a') return 0x7a;
if (caractere[i] == '7' && caractere[i + 1] == 'b') return 0x7b;
if (caractere[i] == '7' && caractere[i + 1] == 'c') return 0x7c;
if (caractere[i] == '7' && caractere[i + 1] == 'd') return 0x7d;
if (caractere[i] == '7' && caractere[i + 1] == 'e') return 0x7e;
if (caractere[i] == '7' && caractere[i + 1] == 'f') return 0x7f;
if (caractere[i] == '8' && caractere[i + 1] == '0') return 0x80;
if (caractere[i] == '8' && caractere[i + 1] == '1') return 0x81;
if (caractere[i] == '8' && caractere[i + 1] == '2') return 0x82;
if (caractere[i] == '8' && caractere[i + 1] == '3') return 0x83;
if (caractere[i] == '8' && caractere[i + 1] == '4') return 0x84;
if (caractere[i] == '8' && caractere[i + 1] == '5') return 0x85;
if (caractere[i] == '8' && caractere[i + 1] == '6') return 0x86;
if (caractere[i] == '8' && caractere[i + 1] == '7') return 0x87;
if (caractere[i] == '8' && caractere[i + 1] == '8') return 0x88;
if (caractere[i] == '8' && caractere[i + 1] == '9') return 0x89;
if (caractere[i] == '8' && caractere[i + 1] == 'a') return 0x8a;
if (caractere[i] == '8' && caractere[i + 1] == 'b') return 0x8b;
if (caractere[i] == '8' && caractere[i + 1] == 'c') return 0x8c;
if (caractere[i] == '8' && caractere[i + 1] == 'd') return 0x8d;
if (caractere[i] == '8' && caractere[i + 1] == 'e') return 0x8e;
if (caractere[i] == '8' && caractere[i + 1] == 'f') return 0x8f;
if (caractere[i] == '9' && caractere[i + 1] == '0') return 0x90;
if (caractere[i] == '9' && caractere[i + 1] == '1') return 0x91;
if (caractere[i] == '9' && caractere[i + 1] == '2') return 0x92;
if (caractere[i] == '9' && caractere[i + 1] == '3') return 0x93;
if (caractere[i] == '9' && caractere[i + 1] == '4') return 0x94;
if (caractere[i] == '9' && caractere[i + 1] == '5') return 0x95;
if (caractere[i] == '9' && caractere[i + 1] == '6') return 0x96;
if (caractere[i] == '9' && caractere[i + 1] == '7') return 0x97;
if (caractere[i] == '9' && caractere[i + 1] == '8') return 0x98;
if (caractere[i] == '9' && caractere[i + 1] == '9') return 0x99;
if (caractere[i] == '9' && caractere[i + 1] == 'a') return 0x9a;
if (caractere[i] == '9' && caractere[i + 1] == 'b') return 0x9b;
if (caractere[i] == '9' && caractere[i + 1] == 'c') return 0x9c;
if (caractere[i] == '9' && caractere[i + 1] == 'd') return 0x9d;
if (caractere[i] == '9' && caractere[i + 1] == 'e') return 0x9e;
if (caractere[i] == '9' && caractere[i + 1] == 'f') return 0x9f;
if (caractere[i] == 'a' && caractere[i + 1] == '0') return 0xa0;
if (caractere[i] == 'a' && caractere[i + 1] == '1') return 0xa1;
if (caractere[i] == 'a' && caractere[i + 1] == '2') return 0xa2;
if (caractere[i] == 'a' && caractere[i + 1] == '3') return 0xa3;
if (caractere[i] == 'a' && caractere[i + 1] == '4') return 0xa4;
if (caractere[i] == 'a' && caractere[i + 1] == '5') return 0xa5;
if (caractere[i] == 'a' && caractere[i + 1] == '6') return 0xa6;
if (caractere[i] == 'a' && caractere[i + 1] == '7') return 0xa7;
if (caractere[i] == 'a' && caractere[i + 1] == '8') return 0xa8;
if (caractere[i] == 'a' && caractere[i + 1] == '9') return 0xa9;
if (caractere[i] == 'a' && caractere[i + 1] == 'a') return 0xaa;
if (caractere[i] == 'a' && caractere[i + 1] == 'b') return 0xab;
if (caractere[i] == 'a' && caractere[i + 1] == 'c') return 0xac;
if (caractere[i] == 'a' && caractere[i + 1] == 'd') return 0xad;
if (caractere[i] == 'a' && caractere[i + 1] == 'e') return 0xae;
if (caractere[i] == 'a' && caractere[i + 1] == 'f') return 0xaf;
if (caractere[i] == 'b' && caractere[i + 1] == '0') return 0xb0;
if (caractere[i] == 'b' && caractere[i + 1] == '1') return 0xb1;
if (caractere[i] == 'b' && caractere[i + 1] == '2') return 0xb2;
if (caractere[i] == 'b' && caractere[i + 1] == '3') return 0xb3;
if (caractere[i] == 'b' && caractere[i + 1] == '4') return 0xb4;
if (caractere[i] == 'b' && caractere[i + 1] == '5') return 0xb5;
if (caractere[i] == 'b' && caractere[i + 1] == '6') return 0xb6;
if (caractere[i] == 'b' && caractere[i + 1] == '7') return 0xb7;
if (caractere[i] == 'b' && caractere[i + 1] == '8') return 0xb8;
if (caractere[i] == 'b' && caractere[i + 1] == '9') return 0xb9;
if (caractere[i] == 'b' && caractere[i + 1] == 'a') return 0xba;
if (caractere[i] == 'b' && caractere[i + 1] == 'b') return 0xbb;
if (caractere[i] == 'b' && caractere[i + 1] == 'c') return 0xbc;
if (caractere[i] == 'b' && caractere[i + 1] == 'd') return 0xbd;
if (caractere[i] == 'b' && caractere[i + 1] == 'e') return 0xbe;
if (caractere[i] == 'b' && caractere[i + 1] == 'f') return 0xbf;
if (caractere[i] == 'c' && caractere[i + 1] == '0') return 0xc0;
if (caractere[i] == 'c' && caractere[i + 1] == '1') return 0xc1;
if (caractere[i] == 'c' && caractere[i + 1] == '2') return 0xc2;
if (caractere[i] == 'c' && caractere[i + 1] == '3') return 0xc3;
if (caractere[i] == 'c' && caractere[i + 1] == '4') return 0xc4;
if (caractere[i] == 'c' && caractere[i + 1] == '5') return 0xc5;
if (caractere[i] == 'c' && caractere[i + 1] == '6') return 0xc6;
if (caractere[i] == 'c' && caractere[i + 1] == '7') return 0xc7;
if (caractere[i] == 'c' && caractere[i + 1] == '8') return 0xc8;
if (caractere[i] == 'c' && caractere[i + 1] == '9') return 0xc9;
if (caractere[i] == 'c' && caractere[i + 1] == 'a') return 0xca;
if (caractere[i] == 'c' && caractere[i + 1] == 'b') return 0xcb;
if (caractere[i] == 'c' && caractere[i + 1] == 'c') return 0xcc;
if (caractere[i] == 'c' && caractere[i + 1] == 'd') return 0xcd;
if (caractere[i] == 'c' && caractere[i + 1] == 'e') return 0xce;
if (caractere[i] == 'c' && caractere[i + 1] == 'f') return 0xcf;
if (caractere[i] == 'd' && caractere[i + 1] == '0') return 0xd0;
if (caractere[i] == 'd' && caractere[i + 1] == '1') return 0xd1;
if (caractere[i] == 'd' && caractere[i + 1] == '2') return 0xd2;
if (caractere[i] == 'd' && caractere[i + 1] == '3') return 0xd3;
if (caractere[i] == 'd' && caractere[i + 1] == '4') return 0xd4;
if (caractere[i] == 'd' && caractere[i + 1] == '5') return 0xd5;
if (caractere[i] == 'd' && caractere[i + 1] == '6') return 0xd6;
if (caractere[i] == 'd' && caractere[i + 1] == '7') return 0xd7;
if (caractere[i] == 'd' && caractere[i + 1] == '8') return 0xd8;
if (caractere[i] == 'd' && caractere[i + 1] == '9') return 0xd9;
if (caractere[i] == 'd' && caractere[i + 1] == 'a') return 0xda;
if (caractere[i] == 'd' && caractere[i + 1] == 'b') return 0xdb;
if (caractere[i] == 'd' && caractere[i + 1] == 'c') return 0xdc;
if (caractere[i] == 'd' && caractere[i + 1] == 'd') return 0xdd;
if (caractere[i] == 'd' && caractere[i + 1] == 'e') return 0xde;
if (caractere[i] == 'd' && caractere[i + 1] == 'f') return 0xdf;
if (caractere[i] == 'e' && caractere[i + 1] == '0') return 0xe0;
if (caractere[i] == 'e' && caractere[i + 1] == '1') return 0xe1;
if (caractere[i] == 'e' && caractere[i + 1] == '2') return 0xe2;
if (caractere[i] == 'e' && caractere[i + 1] == '3') return 0xe3;
if (caractere[i] == 'e' && caractere[i + 1] == '4') return 0xe4;
if (caractere[i] == 'e' && caractere[i + 1] == '5') return 0xe5;
if (caractere[i] == 'e' && caractere[i + 1] == '6') return 0xe6;
if (caractere[i] == 'e' && caractere[i + 1] == '7') return 0xe7;
if (caractere[i] == 'e' && caractere[i + 1] == '8') return 0xe8;
if (caractere[i] == 'e' && caractere[i + 1] == '9') return 0xe9;
if (caractere[i] == 'e' && caractere[i + 1] == 'a') return 0xea;
if (caractere[i] == 'e' && caractere[i + 1] == 'b') return 0xeb;
if (caractere[i] == 'e' && caractere[i + 1] == 'c') return 0xec;
if (caractere[i] == 'e' && caractere[i + 1] == 'd') return 0xed;
if (caractere[i] == 'e' && caractere[i + 1] == 'e') return 0xee;
if (caractere[i] == 'e' && caractere[i + 1] == 'f') return 0xef;
if (caractere[i] == 'f' && caractere[i + 1] == '0') return 0xf0;
if (caractere[i] == 'f' && caractere[i + 1] == '1') return 0xf1;
if (caractere[i] == 'f' && caractere[i + 1] == '2') return 0xf2;
if (caractere[i] == 'f' && caractere[i + 1] == '3') return 0xf3;
if (caractere[i] == 'f' && caractere[i + 1] == '4') return 0xf4;
if (caractere[i] == 'f' && caractere[i + 1] == '5') return 0xf5;
if (caractere[i] == 'f' && caractere[i + 1] == '6') return 0xf6;
if (caractere[i] == 'f' && caractere[i + 1] == '7') return 0xf7;
if (caractere[i] == 'f' && caractere[i + 1] == '8') return 0xf8;
if (caractere[i] == 'f' && caractere[i + 1] == '9') return 0xf9;
if (caractere[i] == 'f' && caractere[i + 1] == 'a') return 0xfa;
if (caractere[i] == 'f' && caractere[i + 1] == 'b') return 0xfb;
if (caractere[i] == 'f' && caractere[i + 1] == 'c') return 0xfc;
if (caractere[i] == 'f' && caractere[i + 1] == 'd') return 0xfd;
if (caractere[i] == 'f' && caractere[i + 1] == 'e') return 0xfe;
if (caractere[i] == 'f' && caractere[i + 1] == 'f') return 0xff;
return 0x00;
}