From fc02c79135bd47e72b6b805e8f1e40c32d51148a Mon Sep 17 00:00:00 2001 From: DashyFox Date: Mon, 22 Apr 2024 14:56:12 +0300 Subject: [PATCH 1/4] upd --- .gitignore | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index 75ec3f0..005e2da 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,3 @@ -.vscode/* \ No newline at end of file +.vscode/* +bin/* +log/* \ No newline at end of file From c4000d6b75e0c8e9d02037421eb3263efa217d82 Mon Sep 17 00:00:00 2001 From: DashyFox Date: Wed, 14 Aug 2024 17:43:12 +0300 Subject: [PATCH 2/4] test --- IR-protocol.ino | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/IR-protocol.ino b/IR-protocol.ino index 051759a..3415397 100644 --- a/IR-protocol.ino +++ b/IR-protocol.ino @@ -4,8 +4,8 @@ #include "MemoryCheck.h" /////////////// Pinout /////////////// -#define encForward_PIN 5 -#define encBackward_PIN 6 +#define encForward_PIN 0 +#define encBackward_PIN 5 #define LoopOut 12 #define ISR_Out 10 @@ -32,9 +32,9 @@ void decForwardISR() { decForward.isr(); } -// void decBackwardISR() { -// decBackward.isr(); -// } +void decBackwardISR() { + decBackward.isr(); +} static uint8_t* portOut; ISR(TIMER2_COMPA_vect) { @@ -42,9 +42,9 @@ ISR(TIMER2_COMPA_vect) { // encBackward.isr(); // encTree.isr(); //TODO: Сделать выбор порта - *portOut = (*portOut & 0b11001111) | + *portOut = (*portOut & 0b11111110) | ( - encForward.ir_out_virtual << 5U + encForward.ir_out_virtual << 0U // | encBackward.ir_out_virtual << 6U // | encTree.ir_out_virtual << 2U ); @@ -60,7 +60,7 @@ uint32_t loopTimer; uint8_t sig = 0; uint16_t targetAddr = IR_Broadcast; -Timer t1(500, millis, []() { +Timer t1(750, millis, []() { // Serial.println(sig); @@ -151,7 +151,7 @@ Timer t2(500, millis, []() { ///////////////////////////////////////////////////////////////////// void setup() { IR_Encoder::timerSetup(); - portOut = &PORTD; + portOut = &PORTB; Serial.begin(SERIAL_SPEED); Serial.println(F(INFO)); @@ -182,7 +182,7 @@ void setup() { attachInterrupt(0, decForwardISR, CHANGE); // D2 - // attachInterrupt(1, decBackwardISR, CHANGE); // D3 + attachInterrupt(1, decBackwardISR, CHANGE); // D3 } void loop() { @@ -193,7 +193,7 @@ void loop() { decBackward.tick(); status(decForward); - // status(decBackward); + status(decBackward); // Serial.println(micros() - loopTimer); @@ -227,7 +227,7 @@ void loop() { //test void status(IR_Decoder& dec) { - if (dec.gotData.available()) { + if (dec.gotData.available() && dec.gotData.getAddrFrom() != 42) { String str; if (/* dec.gotData.getDataPrt()[1] */1) { str += ("Data on pin "); str += (dec.isrPin); str += "\n"; From 6375c4eed5b6623f7053cb1dcd9e809370eac0f6 Mon Sep 17 00:00:00 2001 From: DashyFox Date: Wed, 4 Sep 2024 10:12:39 +0300 Subject: [PATCH 3/4] for debug test --- IR-protocol.ino | 25 +++++++++++++++++++++++-- 1 file changed, 23 insertions(+), 2 deletions(-) diff --git a/IR-protocol.ino b/IR-protocol.ino index 3415397..41afb54 100644 --- a/IR-protocol.ino +++ b/IR-protocol.ino @@ -2,6 +2,7 @@ #include "IR_Encoder.h" #include "TimerStatic.h" #include "MemoryCheck.h" +#include "CarCmdList.h" /////////////// Pinout /////////////// #define encForward_PIN 0 @@ -57,7 +58,7 @@ uint8_t data3 [] = { 42 , 127, 137 }; uint8_t data4 [] = { 42 , 127, 137, 255 }; uint32_t loopTimer; -uint8_t sig = 0; +uint8_t sig = 255; uint16_t targetAddr = IR_Broadcast; Timer t1(750, millis, []() { @@ -174,6 +175,7 @@ void setup() { pinMode(encForward_PIN, OUTPUT); pinMode(encBackward_PIN, OUTPUT); pinMode(13, OUTPUT); + pinMode(12, OUTPUT); @@ -185,8 +187,12 @@ void setup() { attachInterrupt(1, decBackwardISR, CHANGE); // D3 } + +bool testLed = false; +uint32_t testLed_timer; + void loop() { - digitalToggle(LoopOut); + // digitalToggle(LoopOut); Timer::tick(); decForward.tick(); @@ -218,6 +224,13 @@ void loop() { break; } } + + if(testLed && millis() - testLed_timer > 100){ + testLed=false; + digitalWrite(12, LOW); + + } + } @@ -228,6 +241,14 @@ void loop() { //test void status(IR_Decoder& dec) { if (dec.gotData.available() && dec.gotData.getAddrFrom() != 42) { + + digitalWrite(12, HIGH); + testLed = true; + testLed_timer = millis(); + + encForward.sendData(IR_Broadcast, CarCmd::stop); //<<<<<<<<<<<<<<<<<<<<<<<<<<< CMD IS HERE + + String str; if (/* dec.gotData.getDataPrt()[1] */1) { str += ("Data on pin "); str += (dec.isrPin); str += "\n"; From 37522f974f837e8f353c7f4234700d49fea040f5 Mon Sep 17 00:00:00 2001 From: DashyFox Date: Wed, 25 Dec 2024 16:56:18 +0300 Subject: [PATCH 4/4] upd --- IR_Encoder.cpp | 9 ++++++--- IR_Encoder.h | 5 +++-- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/IR_Encoder.cpp b/IR_Encoder.cpp index 2eff385..f817ba1 100644 --- a/IR_Encoder.cpp +++ b/IR_Encoder.cpp @@ -48,7 +48,10 @@ void IR_Encoder::sendData(uint16_t addrTo, uint8_t dataByte, bool needAccept = f delete[] dataPtr; } -void IR_Encoder::sendData(uint16_t addrTo, uint8_t *data = nullptr, uint8_t len = 0, bool needAccept = false) +void IR_Encoder::sendData(uint16_t addrTo, uint8_t *data = nullptr, uint8_t len = 0, bool needAccept = false){ + sendData(id, addrTo, data, len, needAccept); +} +void IR_Encoder::sendData(uint16_t addrFrom, uint16_t addrTo, uint8_t *data = nullptr, uint8_t len = 0, bool needAccept = false) { if (len > bytePerPack) { @@ -65,8 +68,8 @@ void IR_Encoder::sendData(uint16_t addrTo, uint8_t *data = nullptr, uint8_t len sendBuffer[0] = msgType; // addr_self - sendBuffer[1] = id >> 8 & 0xFF; - sendBuffer[2] = id & 0xFF; + sendBuffer[1] = addrFrom >> 8 & 0xFF; + sendBuffer[2] = addrFrom & 0xFF; // addr_to sendBuffer[3] = addrTo >> 8 & 0xFF; diff --git a/IR_Encoder.h b/IR_Encoder.h index a7972d4..0344ed0 100644 --- a/IR_Encoder.h +++ b/IR_Encoder.h @@ -4,13 +4,13 @@ // TODO: Отложенная передача после завершения приема class IR_DecoderRaw; -class IR_Encoder : IR_FOX +class IR_Encoder : public IR_FOX { friend IR_DecoderRaw; public: private: - uint16_t id; /// @brief Адрес передатчика + // uint16_t id; /// @brief Адрес передатчика public: /// @brief Класс передатчика @@ -49,6 +49,7 @@ public: void sendData(uint16_t addrTo, uint8_t dataByte, bool needAccept = false); void sendData(uint16_t addrTo, uint8_t *data = nullptr, uint8_t len = 0, bool needAccept = false); + void sendData(uint16_t addrFrom, uint16_t addrTo, uint8_t *data = nullptr, uint8_t len = 0, bool needAccept = false); void sendAccept(uint16_t addrTo, uint8_t customByte = 0); void sendRequest(uint16_t addrTo);