owlps/owlps-positioning/server.hh

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