-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathCitac.h
73 lines (57 loc) · 1.5 KB
/
Citac.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
#pragma once
#include "linux/if.h"
#include "linux/wireless.h"
#include "sys/socket.h"
#include "linux/if_packet.h"
#include "net/ethernet.h"
#include "sys/ioctl.h"
#include "arpa/inet.h"
#include "string.h"
#include <string>
#include <thread>
#include <chrono>
#include <unistd.h>
#include <mutex>
#include <Cvor.h>
#include <Okvir.h>
#include <Paketi.h>
#include "Procesiranje.h"
#include "ProzorAnaliza.h"
#include <QDebug>
#include <QElapsedTimer>
#include <QWaitCondition>
#include <QMutex>
#include <QThread>
#include <QTimer>
typedef std::vector<unsigned char> MACNiz;
typedef std::vector<Okvir> ListaOkvira;
class Citac : public QObject {
Q_OBJECT
public:
void pokreni();
int OtvoriSoket(QString nazivSucelja);
void PokreniCitanjePrometa(QString nazivSucelja);
void UgasiCitanjePrometa(QString nazivSucelja);
void DretvaSlusatelj(int rawSocket);
void DretvaCitatelj();
QList<Cvor> DohvatiSveCvorove();
signals:
void noviOkvir(Okvir okvir);
void noviCvor(Cvor cvor);
void osvjeziStatResp(std::vector<Okvir> _okviri);
public slots :
void osvjeziStatCitac();
private:
std::vector<QString> OdrediAdrese(unsigned char* bytes, Paket vrstaPaketa);
QString DodajMAC(MACNiz MAC);
std::vector<Okvir> sviOkviri;
void Testiraj();
bool ugasi = false;
std::vector<MACNiz> MACAdr;
QElapsedTimer timer;
QTimer* statTimer;
QWaitCondition bufferNotEmpty;
QWaitCondition bufferNotFull;
QMutex mutex;
int numUsedBytes = 0;
};