diff --git a/IR-protocol.ino b/IR-protocol.ino index c7c019b..3242940 100644 --- a/IR-protocol.ino +++ b/IR-protocol.ino @@ -4,9 +4,6 @@ #include "MemoryCheck.h" /////////////// Pinout /////////////// -#define encForward_PIN PA0 -#define encBackward_PIN PA1 - #define dec0_PIN PB0 #define dec1_PIN PB1 #define dec2_PIN PA2 @@ -44,16 +41,23 @@ #define SERIAL_SPEED 115200 //////////////// Var ///////////////// +// IR_Encoder encForward(PA5, 42 /* , &decBackward */); + +IR_Encoder enc0(PA5, 42 /* , &decBackward */); +IR_Encoder enc1(PA4, 127 /* , &decBackward */); +IR_Encoder enc2(PA3, 137 /* , &decBackward */); +IR_Encoder enc3(PA0, 777 /* , &decBackward */); +IR_Encoder enc10(PC15, 555 /* , &decBackward */); +// IR_Encoder enc11(PC14, 127 /* , &decBackward */); +// IR_Encoder enc12(PC13, 137 /* , &decBackward */); +// IR_Encoder enc13(PA12, 777 /* , &decBackward */); -IR_Encoder encForward(PA5, 42 /* , &decBackward */); -// IR_Encoder encBackward(321, encBackward_PIN); // IR_Encoder encTree(325, A2); //////////////////////// Функции прерываний //////////////////////// void EncoderISR() { - // Serial.println("EncoderISR"); IR_Encoder::isr(); } @@ -86,84 +90,94 @@ uint8_t sig = 0; uint16_t targetAddr = IR_Broadcast; Timer t1(500, millis, []() { + // Serial.println( digitalPinToBitMask(enc0.getPin()), BIN); + enc0.sendData(IR_Broadcast, data4, sizeof(data4)); + enc1.sendData(IR_Broadcast, data3, sizeof(data3)); + enc2.sendData(IR_Broadcast, data2, sizeof(data2)); + enc3.sendData(IR_Broadcast, data1, sizeof(data1)); + enc10.sendData(IR_Broadcast, data4, sizeof(data4)); + // enc11.sendData(IR_Broadcast, data3, sizeof(data3)); + // enc12.sendData(IR_Broadcast, data2, sizeof(data2)); + // enc13.sendData(IR_Broadcast, data1, sizeof(data1)); + // Serial.println(sig); - switch (sig) - { - case 0: - encForward.sendData(targetAddr); - break; - case 1: - encForward.sendData(targetAddr, data1, sizeof(data1)); - break; - case 2: - encForward.sendData(targetAddr, data2, sizeof(data2)); - break; - case 3: - encForward.sendData(targetAddr, data3, sizeof(data3)); - break; - case 4: - encForward.sendData(targetAddr, data4, sizeof(data4)); - break; + // switch (sig) + // { + // case 0: + // encForward.sendData(targetAddr); + // break; + // case 1: + // encForward.sendData(targetAddr, data1, sizeof(data1)); + // break; + // case 2: + // encForward.sendData(targetAddr, data2, sizeof(data2)); + // break; + // case 3: + // encForward.sendData(targetAddr, data3, sizeof(data3)); + // break; + // case 4: + // encForward.sendData(targetAddr, data4, sizeof(data4)); + // break; - case 10: - encForward.sendData(targetAddr, data0, sizeof(data0), true); - break; - case 11: - encForward.sendData(targetAddr, data1, sizeof(data1), true); - break; - case 12: - encForward.sendData(targetAddr, data2, sizeof(data2), true); - break; - case 13: - encForward.sendData(targetAddr, data3, sizeof(data3), true); - break; - case 14: - encForward.sendData(targetAddr, data4, sizeof(data4), true); - break; + // case 10: + // encForward.sendData(targetAddr, data0, sizeof(data0), true); + // break; + // case 11: + // encForward.sendData(targetAddr, data1, sizeof(data1), true); + // break; + // case 12: + // encForward.sendData(targetAddr, data2, sizeof(data2), true); + // break; + // case 13: + // encForward.sendData(targetAddr, data3, sizeof(data3), true); + // break; + // case 14: + // encForward.sendData(targetAddr, data4, sizeof(data4), true); + // break; - case 20: - encForward.sendBack(); - break; - case 21: - encForward.sendBack(data1, sizeof(data1)); - break; - case 22: - encForward.sendBack(data2, sizeof(data2)); - break; - case 23: - encForward.sendBack(data3, sizeof(data3)); - break; - case 24: - encForward.sendBack(data4, sizeof(data4)); - break; + // case 20: + // encForward.sendBack(); + // break; + // case 21: + // encForward.sendBack(data1, sizeof(data1)); + // break; + // case 22: + // encForward.sendBack(data2, sizeof(data2)); + // break; + // case 23: + // encForward.sendBack(data3, sizeof(data3)); + // break; + // case 24: + // encForward.sendBack(data4, sizeof(data4)); + // break; - case 30: - encForward.sendBackTo(targetAddr); - break; - case 31: - encForward.sendBackTo(targetAddr, data1, sizeof(data1)); - break; - case 32: - encForward.sendBackTo(targetAddr, data2, sizeof(data2)); - break; - case 33: - encForward.sendBackTo(targetAddr, data3, sizeof(data3)); - break; - case 34: - encForward.sendBackTo(targetAddr, data4, sizeof(data4)); - break; + // case 30: + // encForward.sendBackTo(targetAddr); + // break; + // case 31: + // encForward.sendBackTo(targetAddr, data1, sizeof(data1)); + // break; + // case 32: + // encForward.sendBackTo(targetAddr, data2, sizeof(data2)); + // break; + // case 33: + // encForward.sendBackTo(targetAddr, data3, sizeof(data3)); + // break; + // case 34: + // encForward.sendBackTo(targetAddr, data4, sizeof(data4)); + // break; - case 41: - encForward.sendRequest(targetAddr); - break; - case 42: - encForward.sendAccept(targetAddr); - break; + // case 41: + // encForward.sendRequest(targetAddr); + // break; + // case 42: + // encForward.sendAccept(targetAddr); + // break; - default: - break; - } + // default: + // break; + // } // encBackward.sendData(IR_Broadcast, data2); // encTree.sendData(IR_Broadcast, rawData3); }); @@ -192,23 +206,40 @@ void setup() pinMode(dec1_PIN, INPUT_PULLUP); // pinMode(dec2_PIN, INPUT_PULLUP); - pinMode(encForward_PIN, OUTPUT); - pinMode(encBackward_PIN, OUTPUT); + static IR_DecoderRaw *blind[]{ + &dec0, + &dec1, + &dec2, + &dec3, + &dec4, + &dec5, + &dec6, + &dec7, + &dec8, + &dec9, + &dec10, + &dec11, + &dec12, + &dec13, + }; - // IR_DecoderRaw* blindFromForward [] { &decForward, &decBackward }; - // encForward.setBlindDecoders(blindFromForward, sizeof(blindFromForward) / sizeof(IR_DecoderRaw*)); + enc0.setBlindDecoders(blind, sizeof(blind) / sizeof(IR_DecoderRaw *)); + enc1.setBlindDecoders(blind, sizeof(blind) / sizeof(IR_DecoderRaw *)); + enc2.setBlindDecoders(blind, sizeof(blind) / sizeof(IR_DecoderRaw *)); + enc3.setBlindDecoders(blind, sizeof(blind) / sizeof(IR_DecoderRaw *)); + enc10.setBlindDecoders(blind, sizeof(blind) / sizeof(IR_DecoderRaw *)); decSetup(0); - decSetup(1); - decSetup(2); - decSetup(3); - decSetup(4); - decSetup(5); - decSetup(6); - decSetup(7); - decSetup(8); - decSetup(9); - decSetup(10); + // decSetup(1); + // decSetup(2); + // decSetup(3); + // decSetup(4); + // decSetup(5); + // decSetup(6); + // decSetup(7); + // decSetup(8); + // decSetup(9); + // decSetup(10); decSetup(11); decSetup(12); decSetup(13); @@ -300,7 +331,7 @@ void status(IR_Decoder &dec) if (/* dec.gotData.getDataPrt()[1] */ 1) { str += ("Data on pin "); - str += (dec.isrPin); + str += (dec.getPin()); str += "\n"; uint8_t msg = dec.gotData.getMsgRAW(); @@ -374,7 +405,7 @@ void status(IR_Decoder &dec) if (/* dec.gotData.getDataPrt()[1] */ 1) { str += ("BackData on pin "); - str += (dec.isrPin); + str += (dec.getPin()); str += "\n"; uint8_t msg = dec.gotBackData.getMsgRAW(); @@ -446,7 +477,7 @@ void status(IR_Decoder &dec) if (/* dec.gotData.getDataPrt()[1] */ 1) { str += ("Accept on pin "); - str += (dec.isrPin); + str += (dec.getPin()); str += "\n"; uint8_t msg = dec.gotAccept.getMsgRAW(); @@ -498,7 +529,7 @@ void status(IR_Decoder &dec) if (/* dec.gotData.getDataPrt()[1] */ 1) { str += ("Request on pin "); - str += (dec.isrPin); + str += (dec.getPin()); str += "\n"; uint8_t msg = dec.gotRequest.getMsgRAW();