From 4691500f5f2d0bbfe81fef958ecdacc0fd103b9a Mon Sep 17 00:00:00 2001 From: Gingerman1996 Date: Mon, 6 Jan 2025 13:50:28 +0700 Subject: [PATCH] S88 Calibration log V3.1.9 --- platformio.ini | 26 ++++++++++++++------------ src/AgStateMachine.cpp | 1 + src/S8/S8.cpp | 41 +++++++++++++++++++++++++++++++++++++---- version.py | 18 ++++++++++++++++++ 4 files changed, 70 insertions(+), 16 deletions(-) create mode 100644 version.py diff --git a/platformio.ini b/platformio.ini index 09e2b02..bc0ec4e 100644 --- a/platformio.ini +++ b/platformio.ini @@ -12,7 +12,9 @@ platform = espressif32 board = esp32-c3-devkitm-1 framework = arduino -build_flags = !echo '-D ARDUINO_USB_CDC_ON_BOOT=1 -D ARDUINO_USB_MODE=1 -D GIT_VERSION=\\"'$(git describe --tags --always --dirty)'\\"' +; build_flags = !echo '-D ARDUINO_USB_CDC_ON_BOOT=1 -D ARDUINO_USB_MODE=1 -D GIT_VERSION=\\"'$(git describe --tags --always --dirty)'\\"' +build_flags = -D ARDUINO_USB_CDC_ON_BOOT=1 -D ARDUINO_USB_MODE=1 +extra_scripts = pre:version.py board_build.partitions = partitions.csv monitor_speed = 115200 lib_deps = @@ -27,17 +29,17 @@ lib_deps = Update DNSServer -[env:esp8266] -platform = espressif8266 -board = d1_mini -framework = arduino -monitor_speed = 115200 -lib_deps = - aglib=symlink://../arduino - EEPROM - ESP8266HTTPClient - ESP8266WebServer - DNSServer +; [env:esp8266] +; platform = espressif8266 +; board = d1_mini +; framework = arduino +; monitor_speed = 115200 +; lib_deps = +; aglib=symlink://../arduino +; EEPROM +; ESP8266HTTPClient +; ESP8266WebServer +; DNSServer monitor_filters = time diff --git a/src/AgStateMachine.cpp b/src/AgStateMachine.cpp index 85f87d5..2943323 100644 --- a/src/AgStateMachine.cpp +++ b/src/AgStateMachine.cpp @@ -242,6 +242,7 @@ void StateMachine::co2Calibration(void) { } delay(1000); } + delay(2000); if (ag->s8.setBaselineCalibration()) { if (ag->isOne() || (ag->isPro4_2()) || ag->isPro3_3()) { diff --git a/src/S8/S8.cpp b/src/S8/S8.cpp index a8f9158..4dfb2e2 100644 --- a/src/S8/S8.cpp +++ b/src/S8/S8.cpp @@ -1,6 +1,6 @@ #include "S8.h" -#include "mb_crc.h" #include "../Main/utils.h" +#include "mb_crc.h" #if defined(ESP8266) #include #else @@ -275,6 +275,7 @@ bool S8::isBaseLineCalibrationDone(void) { return true; } if (getAcknowledgement() & S8_MASK_CO2_BACKGROUND_CALIBRATION) { + Serial.println("Waiting getAcknowlagdement"); return true; } return false; @@ -396,10 +397,8 @@ bool S8::manualCalib(void) { } bool result = clearAcknowledgement(); - if (result) { result = sendSpecialCommand(S8_CO2_BACKGROUND_CALIBRATION); - if (result) { AgLog("Manual calibration in background has started"); } else { @@ -425,17 +424,29 @@ int16_t S8::getAcknowledgement(void) { // Ask acknowledgement flags sendCommand(MODBUS_FUNC_READ_HOLDING_REGISTERS, MODBUS_HR1, 0x0001); + Serial.print("Get Acknowladgement Command > "); + for (int i = 0; i < 8; i++) { + Serial.printf(" 0x%02X ", buf_msg[i]); + } + Serial.println(); + // Wait response memset(buf_msg, 0, S8_LEN_BUF_MSG); uint8_t nb = uartReadBytes(7, S8_TIMEOUT); + Serial.print("Get Acknowladgement Response > "); + for (int i = 0; i < nb; i++) { + Serial.printf(" 0x%02X ", buf_msg[i]); + } + Serial.println(); // Check response and get data if (validResponseLenght(MODBUS_FUNC_READ_HOLDING_REGISTERS, nb, 7)) { flags = ((buf_msg[3] << 8) & 0xFF00) | (buf_msg[4] & 0x00FF); + Serial.printf("Flags: %x\n", flags); } else { AgLog("Error getting acknowledgement flags!"); + Serial.println("Error getting acknowledgement flags!"); } - return flags; } @@ -455,6 +466,11 @@ bool S8::clearAcknowledgement(void) { // Ask clear acknowledgement flags sendCommand(MODBUS_FUNC_WRITE_SINGLE_REGISTER, MODBUS_HR1, 0x0000); + Serial.print("Clear Acknowladgement Command > "); + for (int i = 0; i < 8; i++) { + Serial.printf(" 0x%02X ", buf_msg[i]); + } + Serial.println(); // Save bytes sent memcpy(buf_msg_sent, buf_msg, 8); @@ -462,6 +478,12 @@ bool S8::clearAcknowledgement(void) { // Wait response memset(buf_msg, 0, S8_LEN_BUF_MSG); uartReadBytes(8, S8_TIMEOUT); + Serial.print("Clear Acknowladgement Response > "); + for (int i = 0; i < 8; i++) { + Serial.printf(" 0x%02X ", buf_msg[i]); + } + Serial.println(); + // Check response if (memcmp(buf_msg_sent, buf_msg, 8) == 0) { @@ -578,6 +600,11 @@ bool S8::sendSpecialCommand(CalibrationSpecialComamnd command) { // Ask set user special command sendCommand(MODBUS_FUNC_WRITE_SINGLE_REGISTER, MODBUS_HR2, command); + Serial.print("Send Calibration Command > "); + for (int i = 0; i < 8; i++) { + Serial.printf(" 0x%02X ", buf_msg[i]); + } + Serial.println(); // Save bytes sent memcpy(buf_msg_sent, buf_msg, 8); @@ -586,6 +613,12 @@ bool S8::sendSpecialCommand(CalibrationSpecialComamnd command) { memset(buf_msg, 0, S8_LEN_BUF_MSG); uartReadBytes(8, S8_TIMEOUT); + Serial.print("Send Calibration Response > "); + for (int i = 0; i < 8; i++) { + Serial.printf(" 0x%02X ", buf_msg[i]); + } + Serial.println(); + // Check response if (memcmp(buf_msg_sent, buf_msg, 8) == 0) { result = true; diff --git a/version.py b/version.py new file mode 100644 index 0000000..22d408c --- /dev/null +++ b/version.py @@ -0,0 +1,18 @@ +import subprocess +import os + +def get_git_version(): + try: + version = subprocess.check_output(["git", "describe", "--tags", "--always", "--dirty"]).decode("utf-8").strip() + return version + except Exception as e: + print("Could not get git version:", e) + return "unknown" + +git_version = get_git_version() +# git_version = "0.8.7-1-g118f259-dirty" +print("GIT_VERSION:", git_version) + +# เพิ่ม GIT_VERSION เป็น build flag +Import("env") +env.Append(CPPDEFINES=[("GIT_VERSION", '\\"{}\\"'.format(git_version))])