mirror of
https://github.com/Show-maket/IR-protocol.git
synced 2025-06-28 05:09:40 +00:00
add listen and fix
This commit is contained in:
56
IR_config.h
56
IR_config.h
@ -37,7 +37,7 @@ msg type:
|
||||
#define IR_MSG_ 4U // | 100..... | = */ /* = ??
|
||||
#define IR_MSG_ 5U // | 101..... | = */ /* = ??
|
||||
#define IR_MSG_DATA_NOACCEPT 6U // | 110..... | = */ /* = данные, не требующие подтверждения
|
||||
// // | \\\xxxxx | = = L длина данных
|
||||
// // | \\\xxxxx | = = L длина данных
|
||||
#define IR_MSG_DATA_ACCEPT 7U // | 111..... | = */ /* = данные требующие подтверждения
|
||||
// // | \\\xxxxx | = = L длина данных
|
||||
/* // ----------
|
||||
@ -84,7 +84,7 @@ typedef uint16_t crc_t;
|
||||
#define syncBits 3U // количество битов синхронизации
|
||||
|
||||
#define dataByteSizeMax (msgBytes + addrBytes + addrBytes + bytePerPack + crcBytes)
|
||||
// размер msg в битах // размер короткой посылки в битах
|
||||
// размер msg в битах // размер короткой посылки в битах
|
||||
#define dataBitSize ((8 + syncBits) * dataByteSizeMax) // размер посылки с данными в битах
|
||||
#define bufferBitSizeMax (dataBitSize) // Размер буффера в битах
|
||||
|
||||
@ -106,7 +106,7 @@ const auto viewValue = bitTime;
|
||||
class IR_FOX {
|
||||
private:
|
||||
bool isSending = false;
|
||||
public:
|
||||
protected:
|
||||
uint8_t crc8(uint8_t* data, uint8_t start, uint8_t end, uint8_t poly) { //TODO: сделать возможность межбайтовой проверки
|
||||
uint8_t crc = 0xff;
|
||||
size_t i, j;
|
||||
@ -121,34 +121,36 @@ public:
|
||||
}
|
||||
return crc;
|
||||
}
|
||||
String printBytes(uint8_t* d ,uint8_t s , uint8_t mode = 10) {
|
||||
String str = "";
|
||||
uint8_t control = bitPerByte;
|
||||
uint8_t* _data = d;
|
||||
switch (mode) {
|
||||
case 2:
|
||||
for (size_t i = 0; i < s * 8; i++) {
|
||||
if (i == control) {
|
||||
str += " ";
|
||||
control += bitPerByte;
|
||||
}
|
||||
|
||||
str += _data[(i / 8)] >> (7 - (i % 8)) & 1;
|
||||
}
|
||||
break;
|
||||
case 10:
|
||||
for (size_t i = 0; i < s; i++) {
|
||||
str += _data[i];
|
||||
public:
|
||||
String printBytes(uint8_t* d, uint8_t s, uint8_t mode = 10) {
|
||||
String str = "";
|
||||
uint8_t control = bitPerByte;
|
||||
uint8_t* _data = d;
|
||||
switch (mode) {
|
||||
case 2:
|
||||
for (size_t i = 0; i < s * 8; i++) {
|
||||
if (i == control) {
|
||||
str += " ";
|
||||
control += bitPerByte;
|
||||
}
|
||||
|
||||
break;
|
||||
str += _data[(i / 8)] >> (7 - (i % 8)) & 1;
|
||||
}
|
||||
break;
|
||||
case 10:
|
||||
for (size_t i = 0; i < s; i++) {
|
||||
str += _data[i];
|
||||
str += " ";
|
||||
}
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
break;
|
||||
|
||||
str += " ";
|
||||
return str;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
str += " ";
|
||||
return str;
|
||||
}
|
||||
|
||||
};
|
||||
|
Reference in New Issue
Block a user