mirror of
https://github.com/Show-maket/IR-protocol.git
synced 2025-06-28 05:09:40 +00:00
formatting
This commit is contained in:
131
PacketTypes.h
131
PacketTypes.h
@ -2,9 +2,12 @@
|
||||
#include "IR_config.h"
|
||||
|
||||
class IR_Decoder;
|
||||
namespace PacketTypes {
|
||||
class BasePack {
|
||||
namespace PacketTypes
|
||||
{
|
||||
class BasePack
|
||||
{
|
||||
friend IR_Decoder;
|
||||
|
||||
protected:
|
||||
bool isAvailable;
|
||||
bool isRawAvailable;
|
||||
@ -15,49 +18,80 @@ namespace PacketTypes {
|
||||
uint8_t addressToOffset;
|
||||
uint8_t DataOffset;
|
||||
|
||||
IR_FOX::PackInfo* packInfo;
|
||||
IR_FOX::PackInfo *packInfo;
|
||||
uint16_t id;
|
||||
|
||||
virtual bool checkAddress(){return true;};
|
||||
void set(IR_FOX::PackInfo* packInfo, uint16_t id) {
|
||||
virtual bool checkAddress() { return true; };
|
||||
void set(IR_FOX::PackInfo *packInfo, uint16_t id)
|
||||
{
|
||||
this->packInfo = packInfo;
|
||||
this->id = id;
|
||||
|
||||
if (checkAddress()) {
|
||||
if (checkAddress())
|
||||
{
|
||||
isAvailable = true;
|
||||
isRawAvailable = true;
|
||||
#ifdef IRDEBUG_INFO
|
||||
#ifdef IRDEBUG_INFO
|
||||
Serial.print(" OK ");
|
||||
#endif
|
||||
} else {
|
||||
#endif
|
||||
}
|
||||
else
|
||||
{
|
||||
isRawAvailable = true;
|
||||
#ifdef IRDEBUG_INFO
|
||||
#ifdef IRDEBUG_INFO
|
||||
Serial.print(" NOT-OK ");
|
||||
#endif
|
||||
#endif
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
static uint16_t _getAddrFrom(BasePack* obj) {
|
||||
static uint16_t _getAddrFrom(BasePack *obj)
|
||||
{
|
||||
return (obj->packInfo->buffer[obj->addressFromOffset] << 8) | obj->packInfo->buffer[obj->addressFromOffset + 1];
|
||||
};
|
||||
static uint16_t _getAddrTo(BasePack* obj) {
|
||||
static uint16_t _getAddrTo(BasePack *obj)
|
||||
{
|
||||
return (obj->packInfo->buffer[obj->addressToOffset] << 8) | obj->packInfo->buffer[obj->addressToOffset + 1];
|
||||
};
|
||||
|
||||
static uint8_t _getDataSize(BasePack* obj) {
|
||||
static uint8_t _getDataSize(BasePack *obj)
|
||||
{
|
||||
return obj->packInfo->packSize - crcBytes - obj->DataOffset;
|
||||
};
|
||||
static uint8_t* _getDataPrt(BasePack* obj) {
|
||||
static uint8_t *_getDataPrt(BasePack *obj)
|
||||
{
|
||||
return obj->packInfo->buffer + obj->DataOffset;
|
||||
};
|
||||
static uint8_t _getDataRawSize(BasePack* obj) {
|
||||
static uint8_t _getDataRawSize(BasePack *obj)
|
||||
{
|
||||
return obj->packInfo->packSize;
|
||||
};
|
||||
|
||||
public:
|
||||
bool available() { if (isAvailable) { isAvailable = false; isRawAvailable = false; return true; } else { return false; } };
|
||||
bool availableRaw() { if (isRawAvailable) { isRawAvailable = false; return true; } else { return false; } };
|
||||
bool available()
|
||||
{
|
||||
if (isAvailable)
|
||||
{
|
||||
isAvailable = false;
|
||||
isRawAvailable = false;
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
return false;
|
||||
}
|
||||
};
|
||||
bool availableRaw()
|
||||
{
|
||||
if (isRawAvailable)
|
||||
{
|
||||
isRawAvailable = false;
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
return false;
|
||||
}
|
||||
};
|
||||
uint8_t getMsgInfo() { return packInfo->buffer[0] & IR_MASK_MSG_INFO; };
|
||||
uint8_t getMsgType() { return (packInfo->buffer[0] >> 5) & IR_MASK_MSG_TYPE; };
|
||||
uint8_t getMsgRAW() { return packInfo->buffer[0]; };
|
||||
@ -66,56 +100,65 @@ namespace PacketTypes {
|
||||
uint8_t getErrorHighSignal() { return packInfo->err.highSignal; };
|
||||
uint8_t getErrorOther() { return packInfo->err.other; };
|
||||
uint16_t getTunerTime() { return packInfo->rTime; };
|
||||
uint8_t* getDataRawPtr() { return packInfo->buffer; };
|
||||
uint8_t *getDataRawPtr() { return packInfo->buffer; };
|
||||
};
|
||||
|
||||
|
||||
class Data : public BasePack {
|
||||
class Data : public BasePack
|
||||
{
|
||||
public:
|
||||
Data() {
|
||||
Data()
|
||||
{
|
||||
msgOffset = 0;
|
||||
addressFromOffset = 1;
|
||||
addressToOffset = 3;
|
||||
DataOffset = 5;
|
||||
}
|
||||
|
||||
uint16_t getAddrFrom() { return _getAddrFrom(this); };
|
||||
uint16_t getAddrFrom() { return _getAddrFrom(this); };
|
||||
uint16_t getAddrTo() { return _getAddrTo(this); };
|
||||
|
||||
uint8_t getDataSize() { return _getDataSize(this); };
|
||||
uint8_t* getDataPrt() { return _getDataPrt(this); };
|
||||
uint8_t *getDataPrt() { return _getDataPrt(this); };
|
||||
uint8_t getDataRawSize() { return _getDataRawSize(this); };
|
||||
|
||||
private:
|
||||
bool checkAddress() override {
|
||||
bool checkAddress() override
|
||||
{
|
||||
bool ret;
|
||||
IR_FOX::checkAddressRuleApply(getAddrTo(), this->id, ret);
|
||||
return ret;
|
||||
}
|
||||
};
|
||||
|
||||
class DataBack : public BasePack {
|
||||
class DataBack : public BasePack
|
||||
{
|
||||
public:
|
||||
DataBack() {
|
||||
DataBack()
|
||||
{
|
||||
msgOffset = 0;
|
||||
addressFromOffset = 1;
|
||||
addressToOffset = 3;
|
||||
DataOffset = 3;
|
||||
}
|
||||
|
||||
uint16_t getAddrFrom() { return _getAddrFrom(this); };
|
||||
uint16_t getAddrFrom() { return _getAddrFrom(this); };
|
||||
uint16_t getAddrTo() { return _getAddrTo(this); };
|
||||
|
||||
uint8_t getDataSize() { return _getDataSize(this); };
|
||||
uint8_t* getDataPrt() { return _getDataPrt(this); };
|
||||
uint8_t *getDataPrt() { return _getDataPrt(this); };
|
||||
uint8_t getDataRawSize() { return _getDataRawSize(this); };
|
||||
|
||||
private:
|
||||
bool checkAddress() override {
|
||||
bool checkAddress() override
|
||||
{
|
||||
bool ret;
|
||||
if (getMsgType() == IR_MSG_BACK_TO) {
|
||||
if (getMsgType() == IR_MSG_BACK_TO)
|
||||
{
|
||||
DataOffset = 5;
|
||||
IR_FOX::checkAddressRuleApply((packInfo->buffer[addressToOffset] << 8) | packInfo->buffer[addressToOffset + 1], this->id, ret);
|
||||
} else {
|
||||
}
|
||||
else
|
||||
{
|
||||
DataOffset = 3;
|
||||
ret = true;
|
||||
}
|
||||
@ -123,34 +166,40 @@ namespace PacketTypes {
|
||||
}
|
||||
};
|
||||
|
||||
class Accept : public BasePack {
|
||||
class Accept : public BasePack
|
||||
{
|
||||
public:
|
||||
Accept() {
|
||||
Accept()
|
||||
{
|
||||
msgOffset = 0;
|
||||
addressFromOffset = 1;
|
||||
DataOffset = 3;
|
||||
}
|
||||
|
||||
uint16_t getAddrFrom() { return _getAddrFrom(this); };
|
||||
uint16_t getAddrFrom() { return _getAddrFrom(this); };
|
||||
uint8_t getCustomByte() { return packInfo->buffer[DataOffset]; };
|
||||
|
||||
private:
|
||||
bool checkAddress() override { return true; }
|
||||
};
|
||||
|
||||
class Request : public BasePack {
|
||||
class Request : public BasePack
|
||||
{
|
||||
public:
|
||||
Request() {
|
||||
Request()
|
||||
{
|
||||
msgOffset = 0;
|
||||
addressFromOffset = 1;
|
||||
addressToOffset = 3;
|
||||
DataOffset = 3;
|
||||
}
|
||||
|
||||
uint16_t getAddrFrom() { return _getAddrFrom(this); };
|
||||
uint16_t getAddrFrom() { return _getAddrFrom(this); };
|
||||
uint16_t getAddrTo() { return _getAddrTo(this); };
|
||||
|
||||
private:
|
||||
bool checkAddress() override {
|
||||
bool checkAddress() override
|
||||
{
|
||||
bool ret;
|
||||
IR_FOX::checkAddressRuleApply(getAddrTo(), this->id, ret);
|
||||
return ret;
|
||||
@ -227,7 +276,7 @@ namespace PacketTypes {
|
||||
|
||||
// class IHasAddresData : virtual protected IBaseEmptyPack {
|
||||
// public:
|
||||
// virtual uint8_t getDataSize() { return packInfo->packSize - crcBytes - DataOffset; };
|
||||
// virtual uint8_t getDataSize() { return packInfo->packSize - crcBytes - DataOffset; };
|
||||
// virtual uint8_t* getDataPrt() { return packInfo->buffer + DataOffset; };
|
||||
// virtual uint8_t getDataRawSize() { return packInfo->packSize; };
|
||||
// virtual uint8_t* getDataRawPtr() { return packInfo->buffer; };
|
||||
|
Reference in New Issue
Block a user