From 30f7b36a9cdf4a59d9ed79c78e9bef497c902039 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=9A=D0=BB=D0=B8=D0=BC=D0=BE=D0=B2=20=D0=90=D0=BD=D0=B4?= =?UTF-8?q?=D1=80=D0=B5=D0=B9=20=D0=9D=D0=B8=D0=BA=D0=BE=D0=BB=D0=B0=D0=B5?= =?UTF-8?q?=D0=B2=D0=B8=D1=87?= Date: Mon, 10 Apr 2023 19:19:45 +0300 Subject: [PATCH] Multi-AC --- compiled/lighthub21/firmware.bin | Bin 197264 -> 197464 bytes compiled/lighthub21/unlock.bat | 91 ++++++++++ compiled/lighthub21/upload.bat | 2 +- compiled/lighthub21/uploadNative.bat | 2 +- lighthub/modules/out_ac.cpp | 243 ++++++++++++++++----------- lighthub/modules/out_ac.h | 14 +- 6 files changed, 255 insertions(+), 97 deletions(-) create mode 100644 compiled/lighthub21/unlock.bat diff --git a/compiled/lighthub21/firmware.bin b/compiled/lighthub21/firmware.bin index c8f4a87637bbac8c1241ac73d0b5417381dd1d39..1cccf1819d484f1868a9159252a34a1a4d4dc6ed 100644 GIT binary patch delta 54637 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 F_y-5JzrO$g diff --git a/compiled/lighthub21/unlock.bat b/compiled/lighthub21/unlock.bat new file mode 100644 index 0000000..b0a2a9d --- /dev/null +++ b/compiled/lighthub21/unlock.bat @@ -0,0 +1,91 @@ +@ECHO off + +REM Wait X second for memory on Arduino Due is erased. +SET WAIT_ERASED=4 + +ECHO ------ External tool BossacArduinoDue started ------ + +REM number of command line arguments ok? +REM IF [%1]==[] GOTO error_args +REM IF [%2]==[] GOTO error_args + +REM set command line arguments +SET BOSSACPATH=..\tools\win\tool-bossac\bossac.exe +SET BINFILE=firmware.bin + +REM parse command line arguments +SET BOSSACPATH=%BOSSACPATH:"=% +SET BINFILE=%BINFILE:"=% + +REM workeround for bug in Atmel Studio 6.0.1996 Service Pack 2 +SET BINFILE=%BINFILE:\\=\% +SET BINFILE=%BINFILE:.cproj=% + +REM bossac path exist? +IF NOT EXIST "%BOSSACPATH%" GOTO error_arg1 + +REM bin file exist? +IF NOT EXIST "%BINFILE%" GOTO error_binfile + +REM fetch DeviceID of Arduino Due Programming Port from WMI Service +FOR /f "tokens=* skip=1" %%a IN ('wmic PATH Win32_SerialPort Where "Caption LIKE '%%BOSSA%%'" get DeviceID') DO ( + SET COMX=%%a + GOTO exit1 +) + +REM Arduino Due Programming Port not exist +GOTO error_comport + +:exit1 + +REM remove blank +SET COMPORT=%COMX: =% + +REM report in Atmel Studio 6.0 IDE output window +ECHO BossacPath=%BOSSACPATH% +ECHO BinFile=%BINFILE% +ECHO Arduino Due Programming Port is detected as %COMPORT%. + +REM The bossac bootloader only runs if the memory on Arduino Due is erased. +REM The Arduino IDE does this by opening and closing the COM port at 1200 baud. +REM This causes the Due to execute a soft erase command. +ECHO Forcing reset using 1200bps open/close on port +ECHO MODE %COMPORT%:1200,N,8,1 +MODE %COMPORT%:1200,N,8,1 + +REM Wait X second for memory on Arduino Due is erased. +ECHO Wait for memory on Arduino Due is erased... +PING -n %WAIT_ERASED% 127.0.0.1>NUL + +REM Execute bossac.exe +ECHO Execute bossac with command line: + +"%BOSSACPATH%" -i --port=%COMPORT% --unlock -R +REM START /WAIT "" "%BOSSACPATH%" -i --port=%COMPORT% -u -e -w -v -b "%BINFILE%" -R + +GOTO end + +:error_args +ECHO Error: wrong number of command line arguments passed! +GOTO end + +:error_arg1 +ECHO Error: command line argument 1 - path to bossac.exe not exist! - "C:\Program Files (x86)\arduino-1.5.2\hardware\tools\bossac.exe" +ECHO Error: command line argument 1 - argument passed = %1 +GOTO end + +:error_arg2 +ECHO Error: command line argument 2 - path to bin file not exist! - use $(OutputDirectory)\$(OutputFileName).bin +ECHO Error: command line argument 2 - argument passed = %1 +GOTO end + +:error_binfile +ECHO Error: bin file "%BINFILE%" not exist! +GOTO end + +:error_comport +ECHO Error: Arduino Due Programming Port not found! + +:end + +ECHO ======================== Done ======================== \ No newline at end of file diff --git a/compiled/lighthub21/upload.bat b/compiled/lighthub21/upload.bat index bdc64ae..49098ce 100644 --- a/compiled/lighthub21/upload.bat +++ b/compiled/lighthub21/upload.bat @@ -59,7 +59,7 @@ PING -n %WAIT_ERASED% 127.0.0.1>NUL REM Execute bossac.exe ECHO Execute bossac with command line: -"%BOSSACPATH%" -i --port=%COMPORT% -U false -e -u -w -v -b "%BINFILE%" -R +"%BOSSACPATH%" -i --port=%COMPORT% -U false -w -v -b "%BINFILE%" -R REM START /WAIT "" "%BOSSACPATH%" -i --port=%COMPORT% -U false -e -w -v -b "%BINFILE%" -R GOTO end diff --git a/compiled/lighthub21/uploadNative.bat b/compiled/lighthub21/uploadNative.bat index def9a70..7d92b87 100644 --- a/compiled/lighthub21/uploadNative.bat +++ b/compiled/lighthub21/uploadNative.bat @@ -60,7 +60,7 @@ PING -n %WAIT_ERASED% 127.0.0.1>NUL REM Execute bossac.exe ECHO Execute bossac with command line: -"%BOSSACPATH%" -i --port=%COMPORT% -u -e -w -v -b "%BINFILE%" -R +"%BOSSACPATH%" -i --port=%COMPORT% -w -v -b "%BINFILE%" -R REM START /WAIT "" "%BOSSACPATH%" -i --port=%COMPORT% -u -e -w -v -b "%BINFILE%" -R GOTO end diff --git a/lighthub/modules/out_ac.cpp b/lighthub/modules/out_ac.cpp index b1e8d81..c050e8a 100644 --- a/lighthub/modules/out_ac.cpp +++ b/lighthub/modules/out_ac.cpp @@ -19,21 +19,14 @@ extern bool disableCMD; #define INTERVAL_AC_POLLING 5000L -//static int driverStatus = CST_UNKNOWN; +#define AC_FAILED 15 +#define AC_UNKNOWN CST_UNKNOWN +#define AC_IDLE CST_INITIALIZED +#define AC_SENDING 2 -static int fresh =0; -static int power = 0; -static int swing =0; -static int lock_rem =0; -static int cur_tmp = 0; -static int set_tmp = 0; -static int fan_spd = 0; -static int mode = 0; - -long prevPolling = 0; byte inCheck = 0; byte qstn[] = {255,255,10,0,0,0,0,0,1,1,77,1,90}; // Команда опроса -byte data[37] = {}; //Массив данных + byte on[] = {255,255,10,0,0,0,0,0,1,1,77,2,91}; // Включение кондиционера byte off[] = {255,255,10,0,0,0,0,0,1,1,77,3,92}; // Выключение кондиционера byte lock[] = {255,255,10,0,0,0,0,0,1,3,0,0,14}; // Блокировка пульта @@ -45,7 +38,10 @@ const char SWING_P[] PROGMEM = "swing"; const char RAW_P[] PROGMEM = "raw"; void out_AC::getConfig(){ + ACSerial=&AC_Serial; + if (!item) return; + if (item->getArgCount()) switch(portNum=item->getArg(0)){ @@ -72,14 +68,24 @@ void out_AC::getConfig(){ void out_AC::InsertData(byte data[], size_t size){ + int fresh =0; + + int swing =0; + int lock_rem =0; + int cur_tmp = 0; + int set_tmp = 0; + int fan_spd = 0; + + char s_mode[10]; + set_tmp = data[B_SET_TMP]+16; if (set_tmp>40 || set_tmp<16) return; cur_tmp = data[B_CUR_TMP]; - mode = data[B_MODE]; + store->mode = data[B_MODE]; fan_spd = data[B_FAN_SPD]; swing = data[B_SWING]; - power = data[B_POWER]; + store->power = data[B_POWER]; lock_rem = data[B_LOCK_REM]; fresh = data[B_FRESH]; ///////////////////////////////// @@ -104,15 +110,15 @@ void out_AC::InsertData(byte data[], size_t size){ } */ - debugSerial.print ("Power="); - debugSerial.println(power); + debugSerial.print ("AC: Power="); + debugSerial.println(store->power); - if (power & 0x08) + if (store->power & 0x08) publishTopic(item->itemArr->name, "ON", "/quiet"); else publishTopic(item->itemArr->name, "OFF" , "/quiet"); - if (power & 0x02) //Compressor on + if (store->power & 0x02) //Compressor on publishTopic(item->itemArr->name, "ON","/compressor"); else publishTopic(item->itemArr->name, "OFF","/compressor"); @@ -155,28 +161,28 @@ void out_AC::InsertData(byte data[], size_t size){ //////////////////////////////////// s_mode[0]='\0'; - if (mode == 0x00){ + if (store->mode == 0x00){ strcpy_P(s_mode,AUTO_P); } - else if (mode == 0x01){ + else if (store->mode == 0x01){ strcpy_P(s_mode,COOL_P); } - else if (mode == 0x02){ + else if (store->mode == 0x02){ strcpy_P(s_mode,HEAT_P); } - else if (mode == 0x03){ + else if (store->mode == 0x03){ strcpy_P(s_mode,FAN_ONLY_P); } - else if (mode == 0x04){ + else if (store->mode == 0x04){ strcpy_P(s_mode,DRY_P); } - else if (mode == 109){ + else if (store->mode == 109){ strcpy_P(s_mode,ERROR_P); } - publishTopic(item->itemArr->name, (long) mode, "/mode"); + publishTopic(item->itemArr->name, (long) store->mode, "/mode"); - if (power & 0x01) + if (store->power & 0x01) publishTopic(item->itemArr->name, s_mode,"/cmd"); else publishTopic(item->itemArr->name, "OFF","/cmd"); @@ -208,11 +214,17 @@ byte getCRC(byte req[], size_t size){ } void out_AC::SendData(byte req[], size_t size){ +if (!store || !item) return; +if (item->itemArr->subtype == AC_SENDING) + { + while (store->timestamp && !isTimeOver(store->timestamp,millis(),150)) yield(); + } + ACSerial->write(req, size - 1); ACSerial->write(getCRC(req, size-1)); //ACSerial->flush(); - item->setExt(millisNZ()); - debugSerial<timestamp=millisNZ(); + debugSerial<itemArr->subtype = AC_SENDING; } inline unsigned char toHex( char ch ){ @@ -238,19 +250,32 @@ int out_AC::Setup() { abstractOut::Setup(); if (!item) return 0; -debugSerial<setPersistent(new acPersistent); +if (!store) + { errorSerial<data,0,sizeof(acPersistent::data)); +store->mode=0; +store->power=0; +store->inCheck=0; +store->timestamp=millisNZ(); + if (!portNum)// && (g_APinDescription[0].ulPinType == PIO_PA8A_URXD)) { pinMode(0, INPUT_PULLUP); #if debugSerial == Serial - infoSerial<begin(9600); -item->itemArr->subtype = CST_INITIALIZED; +item->itemArr->subtype = AC_IDLE; + //driverStatus = CST_INITIALIZED; return 1; } @@ -258,7 +283,10 @@ return 1; int out_AC::Stop() { if (!item) return 0; -debugSerial<setPersistent(NULL); +store = NULL; item->itemArr->subtype = CST_UNKNOWN; return 1; } @@ -266,49 +294,72 @@ return 1; int out_AC::Status() { if (!item) return 0; -return item->itemArr->subtype; +switch (item->itemArr->subtype) +{ +case AC_FAILED: return CST_FAILED; +case AC_UNKNOWN: return CST_UNKNOWN; +default: +return CST_INITIALIZED; +//return item->itemArr->subtype; +} } - int out_AC::isActive() { -return (power & 1); +if (!store) return 0; +return (store->power & 1); } int out_AC::Poll(short cause) { +if (!store) return -1; + +switch (item->itemArr->subtype) +{ +case AC_FAILED: return -1; +case AC_UNKNOWN: return -1; +case AC_SENDING: + { + if (store->timestamp && isTimeOver(store->timestamp,millis(),150)) + { + item->itemArr->subtype = AC_IDLE; + store->timestamp=millisNZ(); + } + } +} + if (cause!=POLLING_SLOW) return false; - if (isTimeOver(prevPolling,millis(),INTERVAL_AC_POLLING)) { - prevPolling = millisNZ(); - debugSerial.println(F("Polling")); + if ((item->itemArr->subtype == AC_IDLE) && isTimeOver(store->timestamp,millis(),INTERVAL_AC_POLLING)) + { + debugSerial.println(F("AC: Polling")); SendData(qstn, sizeof(qstn)/sizeof(byte)); //Опрос кондиционера } if(ACSerial->available() >= 37){ //was 0 - ACSerial->readBytes(data, 37); + ACSerial->readBytes(store->data, 37); while(ACSerial->available()){ delay(2); ACSerial->read(); } -debugSerial<> "); +debugSerial<> "); for (int i=0; i < 37-1; i++) { - if (data[i] < 10){ + if (store->data[i] < 10){ debugSerial.print("0"); - debugSerial.print(data[i], HEX); + debugSerial.print(store->data[i], HEX); } else { - debugSerial.print(data[i], HEX); + debugSerial.print(store->data[i], HEX); } } - if (data[36] != inCheck){ - inCheck = data[36]; - InsertData(data, 37); - debugSerial<data[36] != store->inCheck){ + store->inCheck = store->data[36]; + InsertData(store->data, 37); + debugSerial<= 16 && set_tmp <= 40) { //if (set_tmp>40 || set_tmp<16) set_temp=21; - data[B_SET_TMP] = set_tmp -16; + store->data[B_SET_TMP] = set_tmp -16; publishTopic(item->itemArr->name,(long) set_tmp,"/set"); } - else return -1; + else return -1; + } break; case S_CMD: @@ -351,52 +404,52 @@ int out_AC::Ctrl(itemCmd cmd, char* subItem , bool toExecute) { case CMD_ON: case CMD_XON: - data[B_POWER] = power; - data[B_POWER] |= 1; + store->data[B_POWER] = store->power; + store->data[B_POWER] |= 1; SendData(on, sizeof(on)/sizeof(byte)); // publishTopic(item->itemArr->name,"ON","/cmd"); return 1; break; case CMD_OFF: case CMD_HALT: - data[B_POWER] = power; - data[B_POWER] &= ~1; + store->data[B_POWER] = store->power; + store->data[B_POWER] &= ~1; SendData(off, sizeof(off)/sizeof(byte)); // publishTopic(item->itemArr->name,"OFF","/cmd"); return 1; break; case CMD_AUTO: - data[B_MODE] = 0; - data[B_POWER] = power; - data[B_POWER] |= 1; + store->data[B_MODE] = 0; + store->data[B_POWER] = store->power; + store->data[B_POWER] |= 1; // strcpy_P(s_mode,AUTO_P); break; case CMD_COOL: - data[B_MODE] = 1; - data[B_POWER] = power; - data[B_POWER] |= 1; + store->data[B_MODE] = 1; + store->data[B_POWER] = store->power; + store->data[B_POWER] |= 1; // strcpy_P(s_mode,COOL_P); break; case CMD_HEAT: - data[B_MODE] = 2; - data[B_POWER] = power; - data[B_POWER] |= 1; + store->data[B_MODE] = 2; + store->data[B_POWER] = store->power; + store->data[B_POWER] |= 1; // strcpy_P(s_mode,HEAT_P); break; case CMD_DRY: - data[B_MODE] = 4; - data[B_POWER] = power; - data[B_POWER] |= 1; + store->data[B_MODE] = 4; + store->data[B_POWER] = store->power; + store->data[B_POWER] |= 1; // strcpy_P(s_mode,DRY_P); break; case CMD_FAN: - data[B_MODE] = 3; + store->data[B_MODE] = 3; // debugSerial<<"fan\n"; - data[B_POWER] = power; - data[B_POWER] |= 1; - if (data[B_FAN_SPD] == 3) + store->data[B_POWER] = store->power; + store->data[B_POWER] |= 1; + if (store->data[B_FAN_SPD] == 3) { - data[B_FAN_SPD] = 2; //Auto - fan speed in Ventilation mode not working + store->data[B_FAN_SPD] = 2; //Auto - fan speed in Ventilation mode not working } // strcpy_P(s_mode,FAN_ONLY_P); break; @@ -413,24 +466,24 @@ int out_AC::Ctrl(itemCmd cmd, char* subItem , bool toExecute) switch (cmd.getCmd()) { case CMD_AUTO: - data[B_FAN_SPD] = 3; + store->data[B_FAN_SPD] = 3; strcpy_P(s_speed,AUTO_P); break; case CMD_HIGH: - data[B_FAN_SPD] = 0; + store->data[B_FAN_SPD] = 0; strcpy_P(s_speed,HIGH_P); break; case CMD_MED: - data[B_FAN_SPD] = 1; + store->data[B_FAN_SPD] = 1; strcpy_P(s_speed,MED_P); break; case CMD_LOW: - data[B_FAN_SPD] = 2; + store->data[B_FAN_SPD] = 2; strcpy_P(s_speed,LOW_P); break; default: //if (n) data[B_FAN_SPD] = Parameters[0]; - data[B_FAN_SPD] = cmd.getInt(); + store->data[B_FAN_SPD] = cmd.getInt(); //TODO - mapping digits to speed } publishTopic(item->itemArr->name,s_speed,"/fan"); @@ -438,17 +491,17 @@ int out_AC::Ctrl(itemCmd cmd, char* subItem , bool toExecute) case S_MODE: //data[B_MODE] = Parameters[0]; - data[B_MODE] = cmd.getInt(); + store->data[B_MODE] = cmd.getInt(); break; case S_LOCK: switch (cmd.getCmd()) { case CMD_ON: - data[B_LOCK_REM] = 80; + store->data[B_LOCK_REM] = 80; break; case CMD_OFF: - data[B_LOCK_REM] = 0; + store->data[B_LOCK_REM] = 0; break; } break; @@ -457,16 +510,16 @@ int out_AC::Ctrl(itemCmd cmd, char* subItem , bool toExecute) switch (cmd.getCmd()) { case CMD_ON: - data[B_SWING] = 3; + store->data[B_SWING] = 3; publishTopic(item->itemArr->name,"ON","/swing"); break; case CMD_OFF: - data[B_SWING] = 0; + store->data[B_SWING] = 0; publishTopic(item->itemArr->name,"OFF","/swing"); break; default: //if (n) data[B_SWING] = Parameters[0]; - data[B_SWING] = cmd.getInt(); + store->data[B_SWING] = cmd.getInt(); } break; @@ -475,10 +528,10 @@ int out_AC::Ctrl(itemCmd cmd, char* subItem , bool toExecute) switch (cmd.getCmd()) { case CMD_ON: - data[B_POWER] |= 8; + store->data[B_POWER] |= 8; break; case CMD_OFF: - data[B_POWER] &= ~8; + store->data[B_POWER] &= ~8; break; } @@ -532,14 +585,16 @@ int out_AC::Ctrl(itemCmd cmd, char* subItem , bool toExecute) //if (strTopic == "/myhome/in/Conditioner/RAW") - data[B_CMD] = 0; - data[9] = 1; - data[10] = 77; - data[11] = 95; - ACSerial->flush(); - uint32_t ts=item->getExt(); - while (ts && !isTimeOver(ts,millis(),100)) yield(); - SendData(data, sizeof(data)/sizeof(byte)); + store->data[B_CMD] = 0; + store->data[9] = 1; + store->data[10] = 77; + store->data[11] = 95; + + ///ACSerial->flush(); + + //uint32_t ts=item->getExt(); + //while (ts && !isTimeOver(ts,millis(),100)) yield(); + SendData(store->data, sizeof(store->data)/sizeof(byte)); //InsertData(data, sizeof(data)/sizeof(byte)); //ACSerial->flush(); //item->setExt(millisNZ()); diff --git a/lighthub/modules/out_ac.h b/lighthub/modules/out_ac.h index 5035f95..c6a72bd 100644 --- a/lighthub/modules/out_ac.h +++ b/lighthub/modules/out_ac.h @@ -2,6 +2,7 @@ #pragma once #ifndef AC_DISABLE #include +#include #include "itemCmd.h" #define LEN_B 37 @@ -21,10 +22,20 @@ //#define S_RAW S_ADDITIONAL+4 extern void modbusIdle(void) ; + +class acPersistent : public chPersistent { +public: + byte data[37]; + byte power; + byte mode; + byte inCheck; + uint32_t timestamp; +}; + class out_AC : public abstractOut { public: - out_AC(Item * _item):abstractOut(_item){getConfig();}; + out_AC(Item * _item):abstractOut(_item){store = (acPersistent *) item->getPersistent(); getConfig();}; void getConfig(); int Setup() override; int Poll(short cause) override; @@ -36,6 +47,7 @@ public: int Ctrl(itemCmd cmd, char* subItem=NULL, bool toExecute=true) override; protected: + acPersistent * store; void InsertData(byte data[], size_t size); void SendData(byte req[], size_t size); uint8_t portNum;