45 lines
1.2 KiB
C++
45 lines
1.2 KiB
C++
/*
|
|
* DataToSend.h
|
|
*
|
|
* Created on: 19 ÿíâàðÿ 2022 ã.
|
|
* Author: Igor
|
|
*/
|
|
//---------------------------------------------------------------------------
|
|
#ifndef DATATOSEND_H_
|
|
#define DATATOSEND_H_
|
|
//---------------------------------------------------------------------------
|
|
#include <cstdlib>
|
|
#include <cstring>
|
|
#include <string>
|
|
//---------------------------------------------------------------------------
|
|
//Äëÿ îðãàíèçàöèè FIFO áóôåðà îòïðàâêè äàííûõ â òåðìèíàë èç ðàçíûõ ïîòîêîâ
|
|
class DataToSend
|
|
{
|
|
public:
|
|
static int uid;
|
|
|
|
int id; //
|
|
char mas[65535]; //Áóôåð äëÿ îòïðàâêè
|
|
int len; //Äëèíà âñåõ áàéò â ìàññèâå mas
|
|
int pos; //Ïîçèöèÿ â êîòîðóþ çàïèñûâàþòñÿ äàííûå
|
|
|
|
DataToSend* child;
|
|
std::string log_text; //Òåêñò êîòîðûé áóäåò çàïèñàí ïðè ëîãèðîâàíèè
|
|
|
|
DataToSend() {
|
|
id = uid++;
|
|
memset(mas, 0, sizeof(mas));
|
|
len = 0;
|
|
pos = 0;
|
|
child = NULL;
|
|
};
|
|
|
|
int addStringTag(int tag, std::string data); //Äîáàâèòü ñòðîêîâûé òåã â ìàññèâ
|
|
int addUIntTag(int tag, unsigned int data);
|
|
int addChar(char ch);
|
|
int addUChar(unsigned char ch);
|
|
|
|
void calcCRC(); //Ïîñ÷èòàòü CRC è çàïèñàòü â ïîñëåäíèé áàéò (len - 1)
|
|
};
|
|
//---------------------------------------------------------------------------
|
|
#endif |