7#include "packetstream.hh"
43 Stdio = 0, CAT = 1, FMP = 2, XMODEM = 3
53 virtual bool isOpen()
const;
74 static uint16_t crc16(
const QByteArray &data);
79 QHash<unsigned int, QList<QByteArray>> _inBuffers;
80 OpenRTXLinkStream *_stdio;
82 OpenRTXLinkDatagram *_fmp;
83 OpenRTXLinkStream *_xmodem;
84 unsigned int _timeout;
86 friend class OpenRTXLinkStream;
87 friend class OpenRTXLinkDatagram;
88 friend class OpenRTXCAT;
93class OpenRTXLinkStream:
public QIODevice
101 qint64 writeData(
const char *data, qint64 len);
102 qint64 readData(
char *data, qint64 maxlen);
106 QByteArray _inBuffer;
109 friend class OpenRTXLink;
121 bool isOpen()
const override;
122 void close()
override;
124 bool send(
const QByteArray &buffer,
int timeout,
const ErrorStack &err)
override;
130 friend class OpenRTXLink;
149 friend class OpenRTXLink;
Implements a stack of error messages to provide a pretty formatted error traceback.
Definition errorstack.hh:43
Implements the CAT interface to OpenRTX devices.
Definition openrtx_link.hh:136
OpenRTXCAT(OpenRTXLink *link)
Hidden constrcutor.
Definition openrtx_link.cc:84
Definition openrtx_link.hh:114
void close() override
Closes the stream.
Definition openrtx_link.cc:66
bool isOpen() const override
Returns true if the stream is open.
Definition openrtx_link.cc:61
bool send(const QByteArray &buffer, int timeout, const ErrorStack &err) override
Receives a datagram.
Definition openrtx_link.cc:76
bool receive(QByteArray &buffer, int timeout, const ErrorStack &err) override
Receives a datagram.
Definition openrtx_link.cc:71
An abstract stream encapsulated within OpenRTXLink.
Definition openrtx_link.hh:94
Implements the OpenRTX link protocol.
Definition openrtx_link.hh:37
bool receive(Protocol proto, QByteArray &data, int timeout=-1, const ErrorStack &err=ErrorStack())
Dispatcher to receive datagrams over OpenRTXLink.
Definition openrtx_link.cc:193
Protocol
The possible protocols, encapsulated in OpenRTX link.
Definition openrtx_link.hh:42
OpenRTXLinkStream * stdio() const
Returns a stream to the stdio of the radio.
Definition openrtx_link.cc:147
OpenRTXLinkDatagram * fmp() const
The file-system management protocol interface to the radio.
Definition openrtx_link.cc:156
OpenRTXLink(PacketStream *link, QObject *parent=nullptr)
Constructor.
Definition openrtx_link.cc:119
bool send(Protocol proto, const QByteArray &data, int timeout=-1, const ErrorStack &err=ErrorStack())
Dispatcher to send datagrams over OpenRTXLink.
Definition openrtx_link.cc:182
unsigned int timeout() const
Returns the timeout in milliseconds.
Definition openrtx_link.cc:166
OpenRTXCAT * cat() const
The CAT interface to the radio.
Definition openrtx_link.cc:151
PacketStream * _link
Owns the packet stream to the device.
Definition openrtx_link.hh:78
OpenRTXLinkStream * xmodem() const
An XMODEM channel to transfer files.
Definition openrtx_link.cc:161
Defines an interface for a datagram socket.
Definition packetstream.hh:13
PacketStream(QObject *parent=nullptr)
Hidden constructor.
Definition packetstream.cc:8