more ai generated doc with human review
This commit is contained in:
@@ -29,24 +29,39 @@
|
||||
#include "picrc.h"
|
||||
#include "pidiagnostics.h"
|
||||
|
||||
//! \~english Base class for reliable send and receive data in fixed packets with error correction, pause and resume
|
||||
//! \~russian Базовый класс для надежного обмена данными с помощью фиксированных пакетов с коррекцией ошибок и паузой
|
||||
class PIP_EXPORT PIBaseTransfer: public PIObject {
|
||||
PIOBJECT_SUBCLASS(PIBaseTransfer, PIObject);
|
||||
|
||||
public:
|
||||
//! \~english Constructs empty transfer
|
||||
//! \~russian Создает пустой transfer
|
||||
PIBaseTransfer();
|
||||
|
||||
//! \~english Destructor
|
||||
//! \~russian Деструктор
|
||||
~PIBaseTransfer();
|
||||
|
||||
#pragma pack(push, 1)
|
||||
//! \~english Packet header structure
|
||||
//! \~russian Структура заголовка пакета
|
||||
struct PIP_EXPORT PacketHeader {
|
||||
uint sig;
|
||||
int type; // PacketType
|
||||
int session_id;
|
||||
uint id;
|
||||
uint crc;
|
||||
//! \~english Check if signature is valid
|
||||
//! \~russian Проверка валидности подписи
|
||||
bool check_sig() { return (sig == signature); }
|
||||
};
|
||||
|
||||
//! \~english Part information structure
|
||||
//! \~russian Структура информации о части
|
||||
struct PIP_EXPORT Part {
|
||||
//! \~english Constructor
|
||||
//! \~russian Конструктор
|
||||
Part(uint id_ = 0, ullong size_ = 0, ullong start_ = 0): id(id_), size(size_), start(start_) {}
|
||||
uint id;
|
||||
ullong size;
|
||||
@@ -54,29 +69,76 @@ public:
|
||||
};
|
||||
#pragma pack(pop)
|
||||
|
||||
//! \~english Stop sending data
|
||||
//! \~russian Остановить отправку данных
|
||||
void stopSend();
|
||||
|
||||
//! \~english Stop receiving data
|
||||
//! \~russian Остановить прием данных
|
||||
void stopReceive();
|
||||
|
||||
//! \~english Check if currently sending
|
||||
//! \~russian Проверка, идет ли отправка
|
||||
bool isSending() const { return is_sending; }
|
||||
|
||||
//! \~english Check if currently receiving
|
||||
//! \~russian Проверка, идет ли прием
|
||||
bool isReceiving() const { return is_receiving; }
|
||||
|
||||
//! \~english Check if paused
|
||||
//! \~russian Проверка, на паузе ли
|
||||
bool isPause() const { return is_pause; }
|
||||
|
||||
//! \~english Set pause state
|
||||
//! \~russian Установить состояние паузы
|
||||
void setPause(bool pause_);
|
||||
|
||||
//! \~english Set packet size
|
||||
//! \~russian Установить размер пакета
|
||||
void setPacketSize(int size) { packet_size = size; }
|
||||
|
||||
//! \~english Get packet size
|
||||
//! \~russian Получить размер пакета
|
||||
int packetSize() const { return packet_size; }
|
||||
|
||||
//! \~english Set timeout in seconds
|
||||
//! \~russian Установить таймаут в секундах
|
||||
void setTimeout(double sec);
|
||||
|
||||
//! \~english Get timeout in seconds
|
||||
//! \~russian Получить таймаут в секундах
|
||||
double timeout() const { return timeout_; }
|
||||
|
||||
//! \~english Enable/disable CRC check
|
||||
//! \~russian Включить/выключить проверку CRC
|
||||
void setCRCEnabled(bool en = true) { crc_enabled = en; }
|
||||
|
||||
//! \~english Check if CRC is enabled
|
||||
//! \~russian Проверка, включен ли CRC
|
||||
bool isCRCEnabled() const { return crc_enabled; }
|
||||
|
||||
//! \~english Get state as string
|
||||
//! \~russian Получить состояние в виде строки
|
||||
PIString stateString() const { return state_string; }
|
||||
|
||||
//! \~english Get packet map as string
|
||||
//! \~russian Получить карту пакетов в виде строки
|
||||
PIString packetMap() const { return pm_string; }
|
||||
|
||||
//! \~english Get total bytes count
|
||||
//! \~russian Получить общее количество байт
|
||||
llong bytesAll() const { return bytes_all; }
|
||||
|
||||
//! \~english Get current bytes count
|
||||
//! \~russian Получить текущее количество байт
|
||||
llong bytesCur() const { return bytes_cur; }
|
||||
|
||||
//! \~english Get diagnostics object
|
||||
//! \~russian Получить объект диагностики
|
||||
const PIDiagnostics & diagnostic() { return diag; }
|
||||
|
||||
//! \~english Get packet signature
|
||||
//! \~russian Получить подпись пакета
|
||||
static uint packetSignature() { return signature; }
|
||||
|
||||
EVENT_HANDLER1(void, received, PIByteArray, data);
|
||||
|
||||
Reference in New Issue
Block a user