mirror of
https://github.com/Show-maket/IR-protocol.git
synced 2025-05-04 07:10:16 +00:00
add customByte to Accept
This commit is contained in:
parent
9643237465
commit
9af3e95ec8
@ -14,7 +14,7 @@
|
|||||||
|
|
||||||
//////////////// Ini /////////////////
|
//////////////// Ini /////////////////
|
||||||
|
|
||||||
#define INFO "Машинка"
|
#define INFO "IR_FOX TEST"
|
||||||
#define SERIAL_SPEED 115200
|
#define SERIAL_SPEED 115200
|
||||||
|
|
||||||
//////////////// Var /////////////////
|
//////////////// Var /////////////////
|
||||||
|
@ -72,10 +72,11 @@ void IR_Encoder::sendData(uint16_t addrTo, uint8_t* data, uint8_t len, bool need
|
|||||||
rawSend(sendBuffer, packSize);
|
rawSend(sendBuffer, packSize);
|
||||||
}
|
}
|
||||||
|
|
||||||
void IR_Encoder::sendAccept(uint16_t addrTo) {
|
void IR_Encoder::sendAccept(uint16_t addrTo, uint8_t customByte = 0) {
|
||||||
|
constexpr uint8_t packsize = msgBytes + addrBytes + 1U + crcBytes;
|
||||||
memset(sendBuffer, 0x00, dataByteSizeMax);
|
memset(sendBuffer, 0x00, dataByteSizeMax);
|
||||||
sendBuffer[0] = IR_MSG_ACCEPT << 5;
|
sendBuffer[0] = IR_MSG_ACCEPT << 5;
|
||||||
sendBuffer[0] |= msgBytes + addrBytes + crcBytes & IR_MASK_MSG_INFO; // размер пакета
|
sendBuffer[0] |= packsize & IR_MASK_MSG_INFO; // размер пакета
|
||||||
|
|
||||||
// addr_self
|
// addr_self
|
||||||
sendBuffer[1] = id >> 8 & 0xFF;
|
sendBuffer[1] = id >> 8 & 0xFF;
|
||||||
@ -84,18 +85,20 @@ void IR_Encoder::sendAccept(uint16_t addrTo) {
|
|||||||
// Serial.print("\nRAW Accept to ");
|
// Serial.print("\nRAW Accept to ");
|
||||||
// Serial.println(addrTo);
|
// Serial.println(addrTo);
|
||||||
|
|
||||||
|
sendBuffer[3] = customByte;
|
||||||
|
|
||||||
// data crc
|
// data crc
|
||||||
sendBuffer[3] = crc8(sendBuffer, 0, 3, poly1) & 0xFF;
|
sendBuffer[4] = crc8(sendBuffer, 0, 4, poly1) & 0xFF;
|
||||||
sendBuffer[4] = crc8(sendBuffer, 0, 4, poly2) & 0xFF;
|
sendBuffer[5] = crc8(sendBuffer, 0, 5, poly2) & 0xFF;
|
||||||
|
|
||||||
rawSend(sendBuffer, msgBytes + addrBytes + crcBytes);
|
rawSend(sendBuffer, packsize);
|
||||||
}
|
}
|
||||||
|
|
||||||
void IR_Encoder::sendRequest(uint16_t addrTo) {
|
void IR_Encoder::sendRequest(uint16_t addrTo) {
|
||||||
|
constexpr uint8_t packsize = msgBytes + addrBytes + addrBytes + crcBytes;
|
||||||
memset(sendBuffer, 0x00, dataByteSizeMax);
|
memset(sendBuffer, 0x00, dataByteSizeMax);
|
||||||
sendBuffer[0] = IR_MSG_REQUEST << 5;
|
sendBuffer[0] = IR_MSG_REQUEST << 5;
|
||||||
sendBuffer[0] |= msgBytes + addrBytes + addrBytes + crcBytes & IR_MASK_MSG_INFO;
|
sendBuffer[0] |= packsize & IR_MASK_MSG_INFO;
|
||||||
|
|
||||||
// addr_self
|
// addr_self
|
||||||
sendBuffer[1] = id >> 8 & 0xFF;
|
sendBuffer[1] = id >> 8 & 0xFF;
|
||||||
@ -109,7 +112,7 @@ void IR_Encoder::sendRequest(uint16_t addrTo) {
|
|||||||
sendBuffer[5] = crc8(sendBuffer, 0, 5, poly1) & 0xFF;
|
sendBuffer[5] = crc8(sendBuffer, 0, 5, poly1) & 0xFF;
|
||||||
sendBuffer[6] = crc8(sendBuffer, 0, 6, poly2) & 0xFF;
|
sendBuffer[6] = crc8(sendBuffer, 0, 6, poly2) & 0xFF;
|
||||||
|
|
||||||
rawSend(sendBuffer, msgBytes + addrBytes + addrBytes + crcBytes);
|
rawSend(sendBuffer, packsize);
|
||||||
}
|
}
|
||||||
|
|
||||||
void IR_Encoder::sendBack(uint8_t* data = nullptr, uint8_t len = 0) {
|
void IR_Encoder::sendBack(uint8_t* data = nullptr, uint8_t len = 0) {
|
||||||
|
@ -45,7 +45,7 @@ public:
|
|||||||
void IR_Encoder::setBlindDecoders(IR_DecoderRaw* decoders [], uint8_t count);
|
void IR_Encoder::setBlindDecoders(IR_DecoderRaw* decoders [], uint8_t count);
|
||||||
void rawSend(uint8_t* ptr, uint8_t len);
|
void rawSend(uint8_t* ptr, uint8_t len);
|
||||||
void sendData(uint16_t addrTo, uint8_t* data, uint8_t len, bool needAccept = false);
|
void sendData(uint16_t addrTo, uint8_t* data, uint8_t len, bool needAccept = false);
|
||||||
void sendAccept(uint16_t addrTo);
|
void sendAccept(uint16_t addrTo, uint8_t customByte = 0);
|
||||||
void sendRequest(uint16_t addrTo);
|
void sendRequest(uint16_t addrTo);
|
||||||
void sendBack(uint8_t* data = nullptr, uint8_t len = 0);
|
void sendBack(uint8_t* data = nullptr, uint8_t len = 0);
|
||||||
void sendBackTo(uint16_t addrTo, uint8_t* data = nullptr, uint8_t len = 0);
|
void sendBackTo(uint16_t addrTo, uint8_t* data = nullptr, uint8_t len = 0);
|
||||||
|
18
IR_config.h
18
IR_config.h
@ -52,15 +52,15 @@ msg type:
|
|||||||
|
|
||||||
/```````````````````` подтверждение ```````````````````\ /``````````````````````````````````````` запрос ``````````````````````````````````\
|
/```````````````````` подтверждение ```````````````````\ /``````````````````````````````````````` запрос ``````````````````````````````````\
|
||||||
|
|
||||||
{``````````} [````````````````````````] [``````````````] {``````````} [````````````````````````] [````````````````````````] [``````````````]
|
{``````````} [````````````````````````] [``````````````````] [``````````````] {``````````} [````````````````````````] [````````````````````````] [``````````````]
|
||||||
{ 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 ] [=== customByte ===] [ 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] [=== customByte ===] [ 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 5 | 0 1 2 3 4 5 6
|
||||||
\__________________________________________/ | \_____________________________________________________________________/ |
|
\________________________________________________________________/ | \_____________________________________________________________________/ |
|
||||||
| | | |
|
| | | |
|
||||||
\__________________________________________________/ \_____________________________________________________________________________/
|
\________________________________________________________________________/ \_____________________________________________________________________________/
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -50,10 +50,6 @@ namespace PacketTypes {
|
|||||||
static uint8_t _getDataRawSize(BasePack* obj) {
|
static uint8_t _getDataRawSize(BasePack* obj) {
|
||||||
return obj->packInfo->packSize;
|
return obj->packInfo->packSize;
|
||||||
};
|
};
|
||||||
static uint8_t* _getDataRawPtr(BasePack* obj) {
|
|
||||||
return obj->packInfo->buffer;
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
public:
|
public:
|
||||||
bool available() { if (isAvailable) { isAvailable = false; isRawAvailable = false; return true; } else { return false; } };
|
bool available() { if (isAvailable) { isAvailable = false; isRawAvailable = false; return true; } else { return false; } };
|
||||||
@ -66,6 +62,7 @@ namespace PacketTypes {
|
|||||||
uint8_t getErrorHighSignal() { return packInfo->err.highSignal; };
|
uint8_t getErrorHighSignal() { return packInfo->err.highSignal; };
|
||||||
uint8_t getErrorOther() { return packInfo->err.other; };
|
uint8_t getErrorOther() { return packInfo->err.other; };
|
||||||
uint16_t getTunerTime() { return packInfo->rTime; };
|
uint16_t getTunerTime() { return packInfo->rTime; };
|
||||||
|
uint8_t* getDataRawPtr() { return packInfo->buffer; };
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
@ -84,7 +81,6 @@ namespace PacketTypes {
|
|||||||
uint8_t getDataSize() { return _getDataSize(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); };
|
uint8_t getDataRawSize() { return _getDataRawSize(this); };
|
||||||
uint8_t* getDataRawPtr() { return _getDataRawPtr(this); };
|
|
||||||
|
|
||||||
private:
|
private:
|
||||||
bool checkAddress() override {
|
bool checkAddress() override {
|
||||||
@ -109,7 +105,6 @@ namespace PacketTypes {
|
|||||||
uint8_t getDataSize() { return _getDataSize(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); };
|
uint8_t getDataRawSize() { return _getDataRawSize(this); };
|
||||||
uint8_t* getDataRawPtr() { return _getDataRawPtr(this); };
|
|
||||||
private:
|
private:
|
||||||
bool checkAddress() override {
|
bool checkAddress() override {
|
||||||
bool ret;
|
bool ret;
|
||||||
@ -129,10 +124,11 @@ namespace PacketTypes {
|
|||||||
Accept() {
|
Accept() {
|
||||||
msgOffset = 0;
|
msgOffset = 0;
|
||||||
addressFromOffset = 1;
|
addressFromOffset = 1;
|
||||||
DataOffset = 1;
|
DataOffset = 3;
|
||||||
}
|
}
|
||||||
|
|
||||||
uint16_t getAddrFrom() { return _getAddrFrom(this); };
|
uint16_t getAddrFrom() { return _getAddrFrom(this); };
|
||||||
|
uint8_t getCustomByte() { return packInfo->buffer[DataOffset]; };
|
||||||
private:
|
private:
|
||||||
bool checkAddress() override { return true; }
|
bool checkAddress() override { return true; }
|
||||||
};
|
};
|
||||||
|
Loading…
x
Reference in New Issue
Block a user