SLAM
Veřejné typy | Signály | Veřejné metody | Privátní sloty | Privátní metody | Privátní atributy | Seznam všech členů
Dokumentace třídy UdpClient

Třída pro připojení se k serveru, ke kterému je připojen LIDAR. ...

#include <udpclient.h>

Diagram dědičnosti pro třídu UdpClient

Veřejné typy

enum  ClientState { NotConnected, ConnectedToServer, ConnectedToLidar, ReceivingData }
 Možné stavy vztahu aplikace - server.
 

Signály

void stateChange ()
 
void statisticChange ()
 

Veřejné metody

 UdpClient (DataPreProcessor *preProcessor, QObject *parent=0)
 Inicializace proměnných a nastavení timeru a zprávy pro heartbeat. ...
 
void tryConnect (QString address, quint16 serverPort, quint16 clientPort)
 Připojení k serveru. ...
 
void connectToLidar (QString path)
 Odeslání datagramu pro připojení k LIDARU. ...
 
void startGrabbing (int sample, int rate)
 Odešle se požadavek na začátek skenování a odesílání dat ze serveru do aplikace. ...
 
void stopGrabbing ()
 Požadavek na zastavení posílání dat.
 
void stateMessage ()
 Požadavek na odeslání informací o stavu.
 
int getState () const
 
QString getStateName ()
 Vrátí název aktuálního stavu. ...
 
QStringList getListOfModules () const
 Vrací uložený seznam modulů. ...
 
statisticLidar_tgetStatistic () const
 

Privátní sloty

void readPendingDatagrams ()
 Čtení příchozích datagramů.
 
void sendHeartbeat ()
 Pošle heartbeat na server.
 
void startPreprocessingData ()
 Začít příchozí data ukládat a zpracovávat.
 
void stopPreprocessingData ()
 Nezpracovávat příchozí data.
 

Privátní metody

void initSocket ()
 Inicializace UDP socketu.
 
void setState (int state)
 Nastavení stavu UDP. ...
 
void parseModuleList (QByteArray &datagram)
 Parsování příchozího seznamu modulů dostupných na serveru. ...
 
void parseStateMsg (QByteArray &datagram)
 Parsování informací o stavu. ...
 
QByteArray getBytesFromDatagram (int start, int end, QByteArray &datagram)
 Funkce pro načtení pouze některých bajtů z datagramu. ...
 
int byteArrayToInt (QByteArray array)
 Hodnota v QByteArray konvertována do int. ...
 
QByteArray convertIntToByteArray (int byteCount, QString bits)
 Uložení požadovaného čísla do QByteArray z požadovaných bitů. ...
 

Privátní atributy

QUdpSocket * udpSocket
 
modules_tmoduleList
 
QByteArray heartbeatMessage
 
DataPreProcessorpreProcessor
 
statisticLidar_tstat
 
int modulesCount
 
int state
 

Detailní popis

Třída pro připojení se k serveru, ke kterému je připojen LIDAR.

Odesílá dva signály. První při změně stavu stateChange() a druhý při změně nastavení UDP statisticChange(), pro real time zobrazení v aplikaci.

Dokumentace konstruktoru a destruktoru

UdpClient::UdpClient ( DataPreProcessor preProcessor,
QObject *  parent = 0 
)

Inicializace proměnných a nastavení timeru a zprávy pro heartbeat.

Parametry
preProcessor- Třída obsahující naměřené oblasti (tam se také nové budou ukládat).
parent

Dokumentace k metodám

int UdpClient::byteArrayToInt ( QByteArray  array)
private

Hodnota v QByteArray konvertována do int.

Parametry
array- Pole bajtů.
Návratová hodnota
Výsledné číslo.
void UdpClient::connectToLidar ( QString  path)

Odeslání datagramu pro připojení k LIDARU.

Parametry
path- Cesta k LIDARU.
QByteArray UdpClient::convertIntToByteArray ( int  byteCount,
QString  bits 
)
private

Uložení požadovaného čísla do QByteArray z požadovaných bitů.

Implementováno z toho důvodu, že defaultní chování QByteArray je ukládání každé číslice do bajtu. Takže například 1000 se uloží do 4 bajtů, ikdyž by se to vlezlo do 2 bajtů.

Parametry
byteCount- Na kolik bitů mají být bity uloženy.
bits- Číslo konvertováno na bity k uložení.
Návratová hodnota
Výsledné QByteArray.
QByteArray UdpClient::getBytesFromDatagram ( int  start,
int  end,
QByteArray &  datagram 
)
private

Funkce pro načtení pouze některých bajtů z datagramu.

Takže při požadavku na bajty od 0 do 4, vrátí 0., 1., 2. a 3. bajt.

Parametry
start- Index startovního bajtu.
end- Index koncového bajtu, který už není součástí.
datagram- Bajtové pole, z kterého se bajty vrací.
Návratová hodnota
Výsledné QByteArray.
QStringList UdpClient::getListOfModules ( ) const

Vrací uložený seznam modulů.

Návratová hodnota
Seznam modulů.
QString UdpClient::getStateName ( )

Vrátí název aktuálního stavu.

Návratová hodnota
Název aktuálního stavu.
void UdpClient::parseModuleList ( QByteArray &  datagram)
private

Parsování příchozího seznamu modulů dostupných na serveru.

Parametry
datagram- Příchozí zpráva.
void UdpClient::parseStateMsg ( QByteArray &  datagram)
private

Parsování informací o stavu.

Parametry
datagram- Příchozí zpráva.
void UdpClient::setState ( int  state)
private

Nastavení stavu UDP.

Parametry
state= Stav.
void UdpClient::startGrabbing ( int  sample,
int  rate 
)

Odešle se požadavek na začátek skenování a odesílání dat ze serveru do aplikace.

Server se chová divně při nastavených hodnotách vzorků, proto je potřeba zkoušet jaký počet je nejlepší (s ohledem na počet nulových měření). Například při požadavku 360 hodnot je pouze cca 120 nenulových, takže je zjíštěno, že je lepší mít například 720 hodnot, protože příchozí data obsahují alespoň 220 hodnot.

Parametry
sample- Počet vzorků na měření.
rate- Jak často se mají hodnoty posílat.
void UdpClient::tryConnect ( QString  address,
quint16  serverPort,
quint16  clientPort 
)

Připojení k serveru.

Parametry
address- Adresa serveru.
serverPort- Port serveru.
clientPort- Port klienta (pro příjem).

Dokumentace pro tuto třídu byla generována z následujících souborů: