mirror of
https://github.com/Show-maket/IR-protocol.git
synced 2025-05-04 07:10:16 +00:00
refactor working
This commit is contained in:
parent
e35bf7ae23
commit
1dc702f05d
@ -230,58 +230,56 @@ void status(IR_Decoder& dec) {
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
// IR_DecoderRaw::AnyData* infoArr [] = { &dec.gotData, &dec.gotBackData };
|
if (dec.gotData.available()) {
|
||||||
// for (auto&& obj : infoArr) {
|
String str;
|
||||||
// if (obj->available()) {
|
if (/* dec.gotData.getDataPrt()[1] */1) {
|
||||||
// String str;
|
str += ("Data on pin "); str += (dec.isrPin); str += "\n";
|
||||||
// if (obj->getDataPrt()[1]) {
|
|
||||||
// str += ("Data on pin "); str += (dec.isrPin); str += "\n";
|
|
||||||
|
|
||||||
// uint8_t msg = obj->getMsgRAW();
|
uint8_t msg = dec.gotData.getMsgRAW();
|
||||||
// str += (" MSG: ");
|
str += (" MSG: ");
|
||||||
// for (size_t i = 0; i < 8; i++) {
|
for (size_t i = 0; i < 8; i++) {
|
||||||
// if (i == 3) str += " ";
|
if (i == 3) str += " ";
|
||||||
// str += (msg >> (7 - i)) & 1U;
|
str += (msg >> (7 - i)) & 1U;
|
||||||
// }
|
}
|
||||||
|
|
||||||
// str += "\n";
|
str += "\n";
|
||||||
|
|
||||||
// str += (" DATA SIZE: "); str += (obj->getDataSize()); str += "\n";
|
str += (" DATA SIZE: "); str += (dec.gotData.getDataSize()); str += "\n";
|
||||||
// str += (" ADDRESS FROM: "); str += (obj->getAddrFrom()); str += "\n";
|
str += (" ADDRESS FROM: "); str += (dec.gotData.getAddrFrom()); str += "\n";
|
||||||
// str += (" ADDRESS TO: "); str += (obj->getAddrTo()); str += "\n";
|
str += (" ADDRESS TO: "); str += (dec.gotData.getAddrTo()); str += "\n";
|
||||||
// // str += (" CRC PACK: "); str += (obj->getCrcIN()); str += "\n";
|
// str += (" CRC PACK: "); str += (dec.gotData.getCrcIN()); str += "\n";
|
||||||
// // str += (" CRC CALC: "); str += (obj->getCrcCALC()); str += "\n";
|
// str += (" CRC CALC: "); str += (dec.gotData.getCrcCALC()); str += "\n";
|
||||||
// str += "\n";
|
str += "\n";
|
||||||
|
|
||||||
// for (size_t i = 0; i < obj->getDataSize(); i++) {
|
for (size_t i = 0; i < min(10, dec.gotData.getDataSize()); i++) {
|
||||||
// switch (i) {
|
switch (i) {
|
||||||
// // case 0:
|
// case 0:
|
||||||
// // str += (" ADDR: ");
|
// str += (" ADDR: ");
|
||||||
// // break;
|
// break;
|
||||||
// // case 1:
|
// case 1:
|
||||||
// // str += (" CMD: ");
|
// str += (" CMD: ");
|
||||||
// // break;
|
// break;
|
||||||
|
|
||||||
// default:
|
default:
|
||||||
// str += (" Data["); str += (i); str += ("]: ");
|
str += (" Data["); str += (i); str += ("]: ");
|
||||||
// break;
|
break;
|
||||||
// }
|
}
|
||||||
// str += (obj->getDataPrt()[i]); str += "\n";
|
str += (dec.gotData.getDataPrt()[i]); str += "\n";
|
||||||
// }
|
}
|
||||||
|
|
||||||
|
|
||||||
// str += ("\n*******ErrAll: "); str += (obj->getErrorCount()); str += "\n";
|
str += ("\n*******ErrAll: "); str += (dec.gotData.getErrorCount()); str += "\n";
|
||||||
// str += ("**ErrDistance: "); str += ((int)(obj->getErrorHighSignal() - obj->getErrorLowSignal())); str += "\n";
|
str += ("**ErrDistance: "); str += ((int)(dec.gotData.getErrorHighSignal() - dec.gotData.getErrorLowSignal())); str += "\n";
|
||||||
|
|
||||||
|
str += "\n";
|
||||||
|
} else {
|
||||||
|
str += ("SELF"); str += "\n";
|
||||||
|
str += "\n";
|
||||||
|
}
|
||||||
|
// obj->resetAvailable();
|
||||||
|
Serial.write(str.c_str());
|
||||||
|
}
|
||||||
|
|
||||||
// str += "\n";
|
|
||||||
// } else {
|
|
||||||
// str += ("SELF"); str += "\n";
|
|
||||||
// str += "\n";
|
|
||||||
// }
|
|
||||||
// obj->resetAvailable();
|
|
||||||
// Serial.write(str.c_str());
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
26
IR_Decoder.h
26
IR_Decoder.h
@ -4,9 +4,7 @@
|
|||||||
|
|
||||||
class IR_Decoder : public IR_DecoderRaw {
|
class IR_Decoder : public IR_DecoderRaw {
|
||||||
public:
|
public:
|
||||||
IR_Decoder(const uint8_t isrPin, uint16_t addr, IR_Encoder* encPair = nullptr) :
|
IR_Decoder(const uint8_t isrPin, uint16_t addr, IR_Encoder* encPair = nullptr) : IR_DecoderRaw(isrPin, addr, encPair) {
|
||||||
IR_DecoderRaw(isrPin, addr, encPair),
|
|
||||||
gotData(Data(&packInfo)) {
|
|
||||||
}
|
}
|
||||||
|
|
||||||
Data gotData;
|
Data gotData;
|
||||||
@ -16,9 +14,9 @@ public:
|
|||||||
if (available()) {
|
if (available()) {
|
||||||
Serial.println("PARSING RAW DATA");
|
Serial.println("PARSING RAW DATA");
|
||||||
|
|
||||||
switch (packInfo.buffer[0] & IR_MASK_MSG_TYPE) {
|
switch (packInfo.buffer[0] >> 5 & IR_MASK_MSG_TYPE) {
|
||||||
case IR_MSG_DATA_NOACCEPT:
|
case IR_MSG_DATA_NOACCEPT:
|
||||||
|
gotData.set(&packInfo);
|
||||||
break;
|
break;
|
||||||
case IR_MSG_DATA_ACCEPT:
|
case IR_MSG_DATA_ACCEPT:
|
||||||
break;
|
break;
|
||||||
@ -34,28 +32,10 @@ public:
|
|||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// class IDataPack : protected IR_FOX {
|
// class IDataPack : protected IR_FOX {
|
||||||
// friend IR_Decoder;
|
// friend IR_Decoder;
|
||||||
// public:
|
// public:
|
||||||
|
@ -96,6 +96,7 @@ void IR_DecoderRaw::tick() {
|
|||||||
// Serial.print(" SUB: "); Serial.println(currentFront.time - prevRise);
|
// Serial.print(" SUB: "); Serial.println(currentFront.time - prevRise);
|
||||||
#endif
|
#endif
|
||||||
isRecive = true;
|
isRecive = true;
|
||||||
|
isWrongPack = false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -326,6 +327,7 @@ void IR_DecoderRaw::writeToBuffer(bool bit) {
|
|||||||
#ifdef IRDEBUG_INFO
|
#ifdef IRDEBUG_INFO
|
||||||
Serial.print("****************");
|
Serial.print("****************");
|
||||||
#endif
|
#endif
|
||||||
|
isRecive = false;
|
||||||
};
|
};
|
||||||
|
|
||||||
}//**************************************************************************************************//
|
}//**************************************************************************************************//
|
||||||
@ -343,7 +345,7 @@ void IR_DecoderRaw::writeToBuffer(bool bit) {
|
|||||||
if (i_dataBuffer == ((msgBytes)*bitPerByte)) { Serial.print(" -> "); Serial.print(dataBuffer[0] & IR_MASK_MSG_INFO); Serial.print(" ->"); }
|
if (i_dataBuffer == ((msgBytes)*bitPerByte)) { Serial.print(" -> "); Serial.print(dataBuffer[0] & IR_MASK_MSG_INFO); Serial.print(" ->"); }
|
||||||
if (i_dataBuffer == ((msgBytes + addrBytes) * bitPerByte)) { Serial.print(" |"); }
|
if (i_dataBuffer == ((msgBytes + addrBytes) * bitPerByte)) { Serial.print(" |"); }
|
||||||
if (i_dataBuffer == ((msgBytes + addrBytes + addrBytes) * bitPerByte)) { Serial.print(" ->"); }
|
if (i_dataBuffer == ((msgBytes + addrBytes + addrBytes) * bitPerByte)) { Serial.print(" ->"); }
|
||||||
if (i_dataBuffer == ((dataBuffer[0] & IR_MASK_MSG_INFO) * bitPerByte)) { Serial.print(" <-"); }
|
if (i_dataBuffer == (((dataBuffer[0] & IR_MASK_MSG_INFO)-2) * bitPerByte)) { Serial.print(" <-"); }
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@ -353,7 +355,7 @@ void IR_DecoderRaw::writeToBuffer(bool bit) {
|
|||||||
Serial.print(" ["); Serial.print(packSize); Serial.print("] ");
|
Serial.print(" ["); Serial.print(packSize); Serial.print("] ");
|
||||||
}
|
}
|
||||||
|
|
||||||
if (packSize && (i_dataBuffer == packSize*bitPerByte)) { // Конец
|
if (packSize && (i_dataBuffer == packSize * bitPerByte)) { // Конец
|
||||||
Serial.print(" END DATA ");
|
Serial.print(" END DATA ");
|
||||||
|
|
||||||
packInfo.buffer = dataBuffer;
|
packInfo.buffer = dataBuffer;
|
||||||
|
82
IR_config.h
82
IR_config.h
@ -48,55 +48,55 @@ msg type:
|
|||||||
#define IR_MSG_ 5U // | 101..... | = ??
|
#define IR_MSG_ 5U // | 101..... | = ??
|
||||||
#define IR_MSG_DATA_NOACCEPT 6U // | 110..... | = данные, не требующие подтверждения
|
#define IR_MSG_DATA_NOACCEPT 6U // | 110..... | = данные, не требующие подтверждения
|
||||||
#define IR_MSG_DATA_ACCEPT 7U // | 111..... | = данные требующие подтверждения
|
#define IR_MSG_DATA_ACCEPT 7U // | 111..... | = данные требующие подтверждения
|
||||||
/* // ----------
|
/* // ----------
|
||||||
|
|
||||||
/```````````````````` подтверждение ```````````````````\ /``````````````````````````````````````` запрос ``````````````````````````````````\
|
/```````````````````` подтверждение ```````````````````\ /``````````````````````````````````````` запрос ``````````````````````````````````\
|
||||||
|
|
||||||
{``````````} [````````````````````````] [``````````````] {``````````} [````````````````````````] [````````````````````````] [``````````````]
|
{``````````} [````````````````````````] [``````````````] {``````````} [````````````````````````] [````````````````````````] [``````````````]
|
||||||
{ msg type } [ addr_from uint16_t ] [ CRC Bytes ] { msg type } [ addr_from uint16_t ] [ addr_to uint16_t ] [ CRC Bytes ]
|
{ msg type } [ addr_from uint16_t ] [ CRC Bytes ] { msg type } [ addr_from uint16_t ] [ addr_to uint16_t ] [ CRC Bytes ]
|
||||||
{..........} [........................] [..............] {..........} [........................] [........................] [..............]
|
{..........} [........................] [..............] {..........} [........................] [........................] [..............]
|
||||||
|
|
||||||
{ 001..... } [addr_from_H][addr_from_L] [ crc1 ][ crc2 ] { 010..... } [addr_from_H][addr_from_L] [addr_from_H][addr_from_L] [ crc1 ][ crc2 ]
|
{ 001..... } [addr_from_H][addr_from_L] [ crc1 ][ crc2 ] { 010..... } [addr_from_H][addr_from_L] [addr_from_H][addr_from_L] [ crc1 ][ crc2 ]
|
||||||
| 0 1 2 3 4 | 0 1 2 3 4 5 6
|
| 0 1 2 3 4 | 0 1 2 3 4 5 6
|
||||||
\__________________________________________/ | \_____________________________________________________________________/ |
|
\__________________________________________/ | \_____________________________________________________________________/ |
|
||||||
| | | |
|
| | | |
|
||||||
\__________________________________________________/ \_____________________________________________________________________________/
|
\__________________________________________________/ \_____________________________________________________________________________/
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/`````````````````````` Задний сигнал машинки без адресации ``````````````````````\ В (IR_MASK_MSG_INFO & 15U) содержится количество байт
|
/`````````````````````` Задний сигнал машинки без адресации ``````````````````````\ В (IR_MASK_MSG_INFO & 15U) содержится количество байт
|
||||||
сквозных команд, максимум 15
|
сквозных команд, максимум 15
|
||||||
{``````````} [````````````````````````] [````````````````````````] [``````````````] Если полезных байт информации нет, отправляется один
|
{``````````} [````````````````````````] [````````````````````````] [``````````````] Если полезных байт информации нет, отправляется один
|
||||||
{ msg type } [ addr_from uint16_t ] [====== data bytes ======] [ CRC Bytes ] байт нулей
|
{ msg type } [ addr_from uint16_t ] [====== data bytes ======] [ CRC Bytes ] байт нулей
|
||||||
{..........} [........................] [........................] [..............]
|
{..........} [........................] [........................] [..............]
|
||||||
|
|
||||||
{ 0000xxxx } [addr_from_H][addr_from_L] [data_H][data_n..][data_L] [ crc1 ][ crc2 ]
|
{ 0000xxxx } [addr_from_H][addr_from_L] [data_H][data_n..][data_L] [ crc1 ][ crc2 ]
|
||||||
| 0 1 2 3 | |
|
| 0 1 2 3 | |
|
||||||
\_____________________________________________________________________/ |
|
\_____________________________________________________________________/ |
|
||||||
| |
|
| |
|
||||||
\_____________________________________________________________________________/
|
\_____________________________________________________________________________/
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/```````````````````````````````````` Задний сигнал машинки с адресацией ````````````````````````````````````\
|
/```````````````````````````````````` Задний сигнал машинки с адресацией ````````````````````````````````````\
|
||||||
|
|
||||||
{``````````} [````````````````````````] [````````````````````````] [````````````````````````] [``````````````]
|
{``````````} [````````````````````````] [````````````````````````] [````````````````````````] [``````````````]
|
||||||
{ msg type } [ addr_from uint16_t ] [ addr_to uint16_t ] [====== data bytes ======] [ CRC Bytes ]
|
{ msg type } [ addr_from uint16_t ] [ addr_to uint16_t ] [====== data bytes ======] [ CRC Bytes ]
|
||||||
{..........} [........................] [........................] [........................] [..............]
|
{..........} [........................] [........................] [........................] [..............]
|
||||||
|
|
||||||
{ 0001xxxx } [addr_from_H][addr_from_L] [addr_from_H][addr_from_L] [data_H][data_n..][data_L] [ crc1 ][ crc2 ]
|
{ 0001xxxx } [addr_from_H][addr_from_L] [addr_from_H][addr_from_L] [data_H][data_n..][data_L] [ crc1 ][ crc2 ]
|
||||||
| 0 1 2 3 4 5 | |
|
| 0 1 2 3 4 5 | |
|
||||||
\________________________________________________________________________________________________/ |
|
\________________________________________________________________________________________________/ |
|
||||||
| |
|
| |
|
||||||
\________________________________________________________________________________________________________/
|
\________________________________________________________________________________________________________/
|
||||||
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#define IR_MASK_MSG_TYPE 0b00000111
|
#define IR_MASK_MSG_TYPE 0b00000111
|
||||||
#define IR_MASK_MSG_INFO 0b00011111
|
#define IR_MASK_MSG_INFO 0b00011111
|
||||||
|
|
||||||
/*
|
/*
|
||||||
/////////////////////////////////////////////////////////////////////////////////////*/
|
/////////////////////////////////////////////////////////////////////////////////////*/
|
||||||
typedef uint16_t crc_t;
|
typedef uint16_t crc_t;
|
||||||
|
|
||||||
#define bytePerPack 16 // колличество байтов в пакете
|
#define bytePerPack 16 // колличество байтов в пакете
|
||||||
@ -147,8 +147,8 @@ public:
|
|||||||
|
|
||||||
struct ErrorsStruct {
|
struct ErrorsStruct {
|
||||||
uint8_t lowSignal = 0;
|
uint8_t lowSignal = 0;
|
||||||
uint8_t highSignal= 0;
|
uint8_t highSignal = 0;
|
||||||
uint8_t other= 0;
|
uint8_t other = 0;
|
||||||
|
|
||||||
void reset() {
|
void reset() {
|
||||||
lowSignal = 0;
|
lowSignal = 0;
|
||||||
@ -162,7 +162,7 @@ public:
|
|||||||
struct PackInfo {
|
struct PackInfo {
|
||||||
uint8_t* buffer = nullptr;
|
uint8_t* buffer = nullptr;
|
||||||
uint8_t packSize = 0;
|
uint8_t packSize = 0;
|
||||||
uint16_t crc= 0;
|
uint16_t crc = 0;
|
||||||
ErrorsStruct err;
|
ErrorsStruct err;
|
||||||
uint16_t rTime = 0;
|
uint16_t rTime = 0;
|
||||||
};
|
};
|
||||||
@ -170,7 +170,7 @@ public:
|
|||||||
protected:
|
protected:
|
||||||
ErrorsStruct errors;
|
ErrorsStruct errors;
|
||||||
|
|
||||||
void checkaddressRuleApply(uint16_t address, uint16_t id, bool &flag) {
|
void checkaddressRuleApply(uint16_t address, uint16_t id, bool& flag) {
|
||||||
flag = false;
|
flag = false;
|
||||||
flag |= id == 0;
|
flag |= id == 0;
|
||||||
flag |= address == id;
|
flag |= address == id;
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
#include "IR_config.h"
|
#include "IR_config.h"
|
||||||
|
|
||||||
class IOffsets {
|
class IOffsets {
|
||||||
public:
|
protected:
|
||||||
uint8_t msgOffset;
|
uint8_t msgOffset;
|
||||||
uint8_t addressFromOffset;
|
uint8_t addressFromOffset;
|
||||||
uint8_t addressToOffset;
|
uint8_t addressToOffset;
|
||||||
@ -14,14 +14,34 @@ public:
|
|||||||
IR_FOX::PackInfo* packInfo;
|
IR_FOX::PackInfo* packInfo;
|
||||||
};
|
};
|
||||||
|
|
||||||
class IBaseEmptyPack : virtual public IOffsets, virtual public IPackInfo {};
|
class IBaseEmptyPack : virtual public IOffsets, virtual public IPackInfo {
|
||||||
|
};
|
||||||
|
|
||||||
|
class IR_Decoder;
|
||||||
class IEmptyPack : virtual protected IBaseEmptyPack {
|
class IEmptyPack : virtual protected IBaseEmptyPack {
|
||||||
|
friend IR_Decoder;
|
||||||
bool isAvailable;
|
bool isAvailable;
|
||||||
|
|
||||||
|
protected:
|
||||||
|
virtual void set(IR_FOX::PackInfo *packInfo) {
|
||||||
|
IBaseEmptyPack::IPackInfo::packInfo = packInfo;
|
||||||
|
Serial.print(" SET ");
|
||||||
|
|
||||||
|
Serial.print("\n*******ErrAll: "); Serial.println(packInfo->err.all());
|
||||||
|
Serial.print("**ErrDistance: "); Serial.println((int)(packInfo->err.highSignal - packInfo->err.lowSignal));
|
||||||
|
|
||||||
|
isAvailable = true;
|
||||||
|
}
|
||||||
|
|
||||||
public:
|
public:
|
||||||
IEmptyPack(IR_FOX::PackInfo* _packInfo) { packInfo = _packInfo; }
|
virtual bool available() {
|
||||||
virtual bool available() { if (isAvailable) { isAvailable = false; return true; } else { return false; } };
|
if (isAvailable) {
|
||||||
|
isAvailable = false;
|
||||||
|
return true;
|
||||||
|
} else {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
};
|
||||||
virtual uint8_t getMsgInfo() { return packInfo->buffer[0] & IR_MASK_MSG_INFO; };
|
virtual uint8_t getMsgInfo() { return packInfo->buffer[0] & IR_MASK_MSG_INFO; };
|
||||||
virtual uint8_t getMsgType() { return (packInfo->buffer[0] >> 5) & IR_MASK_MSG_TYPE; };
|
virtual uint8_t getMsgType() { return (packInfo->buffer[0] >> 5) & IR_MASK_MSG_TYPE; };
|
||||||
virtual uint8_t getMsgRAW() { return packInfo->buffer[0]; };
|
virtual uint8_t getMsgRAW() { return packInfo->buffer[0]; };
|
||||||
@ -33,27 +53,34 @@ public:
|
|||||||
};
|
};
|
||||||
|
|
||||||
class IHasAddresFrom : virtual protected IBaseEmptyPack {
|
class IHasAddresFrom : virtual protected IBaseEmptyPack {
|
||||||
virtual uint16_t getAddrFrom() { return packInfo->buffer[addressFromOffset] | packInfo->buffer[addressFromOffset + 1]; };
|
public:
|
||||||
|
virtual uint16_t getAddrFrom() { return (packInfo->buffer[addressFromOffset]<<8) | packInfo->buffer[addressFromOffset + 1]; };
|
||||||
};
|
};
|
||||||
|
|
||||||
class IHasAddresTo : virtual protected IBaseEmptyPack {
|
class IHasAddresTo : virtual protected IBaseEmptyPack {
|
||||||
virtual uint16_t getAddrTo() { return packInfo->buffer[addressToOffset] | packInfo->buffer[addressToOffset + 1]; };
|
public:
|
||||||
|
virtual uint16_t getAddrTo() { return (packInfo->buffer[addressToOffset]<<8) | packInfo->buffer[addressToOffset + 1]; };
|
||||||
};
|
};
|
||||||
|
|
||||||
class IHasAddresData : virtual protected IBaseEmptyPack {
|
class IHasAddresData : virtual protected IBaseEmptyPack {
|
||||||
virtual uint8_t getDataSize() { return /* packInfo->buffer[packInfo->packSize-2] */0; };//TODO:
|
public:
|
||||||
|
virtual uint8_t getDataSize() { return &(packInfo->buffer[packInfo->packSize - 2]) - &(packInfo->buffer[DataOffset]); }; // TODO:
|
||||||
virtual uint8_t* getDataPrt() { return packInfo->buffer + DataOffset; };
|
virtual uint8_t* getDataPrt() { return packInfo->buffer + DataOffset; };
|
||||||
virtual uint8_t getDataRawSize() { return packInfo->packSize; };
|
virtual uint8_t getDataRawSize() { return packInfo->packSize; };
|
||||||
virtual uint8_t* getDataRawPtr() { return packInfo->buffer; };
|
virtual uint8_t* getDataRawPtr() { return packInfo->buffer; };
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
class Data :
|
class Data :
|
||||||
virtual public IEmptyPack,
|
virtual public IEmptyPack,
|
||||||
virtual public IHasAddresFrom {
|
virtual public IHasAddresFrom,
|
||||||
|
virtual public IHasAddresTo,
|
||||||
|
virtual public IHasAddresData {
|
||||||
public:
|
public:
|
||||||
Data(IR_FOX::PackInfo* packInfo) : IEmptyPack(packInfo) {
|
Data() {
|
||||||
msgOffset = 0;
|
msgOffset = 0;
|
||||||
|
addressFromOffset = 1;
|
||||||
|
addressToOffset = 3;
|
||||||
|
DataOffset = 5;
|
||||||
}
|
}
|
||||||
};
|
};
|
Loading…
x
Reference in New Issue
Block a user