66 lines
1.3 KiB
C++
66 lines
1.3 KiB
C++
#ifndef _SERVER_HH_
|
|
#define _SERVER_HH_
|
|
|
|
#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 <iostream>
|
|
#include <cstdio>
|
|
|
|
#include "positioning.hh"
|
|
#include "point.hh"
|
|
#include "measurement.hh"
|
|
#include "treatment.hh"
|
|
|
|
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 _request
|
|
{
|
|
unsigned char ag_mac_addr_bytes[6]; // Adresse MAC de l'Aggregateur émetteur de la demande
|
|
int nb_couples; // Nombre couples (MAC AP;Puissance)
|
|
} request;
|
|
|
|
class Server
|
|
{
|
|
|
|
private:
|
|
request att_request;
|
|
vector<couple_info> recv_info;
|
|
|
|
int listen_socket;
|
|
int listen_port;
|
|
struct sockaddr_in serv_addr;
|
|
struct sockaddr_in client;
|
|
socklen_t client_len;
|
|
|
|
Positioning calcul;
|
|
vector<Measurement> point_list;
|
|
|
|
public:
|
|
Server(int);
|
|
~Server()
|
|
{
|
|
close(listen_socket);
|
|
};
|
|
|
|
int initFile(const string &, const string &, const string &, const string &);
|
|
int start();
|
|
void treatment(request, vector<couple_info>);
|
|
void makeMeasurementList(vector<couple_info>);
|
|
};
|
|
|
|
#endif
|