From 55f1c8f82fb0b5c5a1ab19934c74ba7b7638d56c Mon Sep 17 00:00:00 2001 From: Richard Ulrich Date: Fri, 4 Oct 2024 17:11:11 +0200 Subject: [PATCH] adding a mode with NFC reader on I2C and a relais on pin 35 --- .github/workflows/cont_integration.yml | 24 ++++++++++++++++++++++++ platformio.ini | 6 ++++++ src/main.cpp | 8 ++++++++ src/tapconfig.h | 3 ++- src/ui.c | 2 +- src/ui_events.cpp | 2 ++ 6 files changed, 43 insertions(+), 2 deletions(-) create mode 100644 .github/workflows/cont_integration.yml diff --git a/.github/workflows/cont_integration.yml b/.github/workflows/cont_integration.yml new file mode 100644 index 0000000..9487bef --- /dev/null +++ b/.github/workflows/cont_integration.yml @@ -0,0 +1,24 @@ +name: PlatformIO CI + +on: [push] + +jobs: + build: + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v4 + - uses: actions/cache@v4 + with: + path: | + ~/.cache/pip + ~/.platformio/.cache + key: ${{ runner.os }}-pio + - uses: actions/setup-python@v5 + with: + python-version: '3.11' + - name: Install PlatformIO Core + run: pip install --upgrade platformio + + - name: Build PlatformIO Project + run: pio run diff --git a/platformio.ini b/platformio.ini index 35deb50..b031ca3 100644 --- a/platformio.ini +++ b/platformio.ini @@ -44,6 +44,7 @@ build_flags = -D TAP_I2C_BUS=1 -D NFC_TIMEOUT=1000 -D TAP_SERVO_PIN=21 + -D TAP_RELAY_PIN=35 -D TAP_I2C_SERVO_PIN=4 -D TAP_I2C_RELAY_PIN=4 -D TAP_I2C_TAP_ADDRESS=21 @@ -64,6 +65,7 @@ build_flags = -D TAP_I2C_BUS=1 -D NFC_TIMEOUT=1000 -D TAP_SERVO_PIN=21 + -D TAP_RELAY_PIN=35 -D TAP_I2C_SERVO_PIN=4 -D TAP_I2C_RELAY_PIN=4 -D TAP_I2C_TAP_ADDRESS=21 @@ -84,6 +86,7 @@ build_flags = -D TAP_I2C_BUS=1 -D NFC_TIMEOUT=1000 -D TAP_SERVO_PIN=21 + -D TAP_RELAY_PIN=35 -D TAP_I2C_SERVO_PIN=4 -D BB_FGCOLOR=0xFFFFFF -D BB_BGCOLOR=0x4E4D4D @@ -105,6 +108,7 @@ build_flags = -D BB_NAME=\"BitcoinTaps.com\" -D NFC_TIMEOUT=1000 -D TAP_SERVO_PIN=21 + -D TAP_RELAY_PIN=35 -D TAP_I2C_SERVO_PIN=4 -D TAP_I2C_RELAY_PIN=4 -D TAP_I2C_TAP_ADDRESS=21 @@ -125,6 +129,7 @@ build_flags = -D BB_BGCOLOR=0x4E4D4D -D BB_NAME=\"BitcoinTaps.com\" -D TAP_SERVO_PIN=21 + -D TAP_RELAY_PIN=35 -D TAP_I2C_SERVO_PIN=4 -D TAP_I2C_RELAY_PIN=4 -D TAP_I2C_TAP_ADDRESS=21 @@ -141,6 +146,7 @@ build_flags = -D TAP_I2C_BUS=1 -D NFC_TIMEOUT=1000 -D TAP_SERVO_PIN=21 + -D TAP_RELAY_PIN=35 -D TAP_I2C_SERVO_PIN=4 -D TAP_I2C_RELAY_PIN=4 -D TAP_I2C_TAP_ADDRESS=21 diff --git a/src/main.cpp b/src/main.cpp index 26dcba9..0d0c6ef 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -325,6 +325,7 @@ void tapOpen(int i) { sensact->writeServo(i); break; case CONTROL_MODE_RELAY_TIME: + case CONTROL_MODE_RELAY_TIME_NFC: sensact->relayHigh(); break; case CONTROL_MODE_I2C_SERVO_TICKS: @@ -350,6 +351,7 @@ void tapClose(int i) { sensact->writeServo(i); break; case CONTROL_MODE_RELAY_TIME: + case CONTROL_MODE_RELAY_TIME_NFC: sensact->relayLow(); break; case CONTROL_MODE_I2C_SERVO_TICKS: @@ -979,6 +981,12 @@ void setup() case CONTROL_MODE_RELAY_TIME: sensact->initRelay(TAP_SERVO_PIN); break; + case CONTROL_MODE_RELAY_TIME_NFC: + sensact->initRelay(TAP_RELAY_PIN); + sensact->initI2C(TAP_I2C_SDA, TAP_I2C_SCL,TAP_I2C_BUS); + sensact->initNFC(); + delay(1000); + break; case CONTROL_MODE_I2C_SERVO_TIME: sensact->initI2C(TAP_I2C_SDA, TAP_I2C_SCL,TAP_I2C_BUS); sensact->initI2CExtender(TAP_I2C_TAP_ADDRESS); diff --git a/src/tapconfig.h b/src/tapconfig.h index dcb9bee..5757e70 100644 --- a/src/tapconfig.h +++ b/src/tapconfig.h @@ -14,6 +14,7 @@ #define CONTROL_MODE_I2C_RELAY_TIME 4 #define CONTROL_MODE_I2C_SERVO_TICKS 5 #define CONTROL_MODE_I2C_RELAY_TICKS 6 +#define CONTROL_MODE_RELAY_TIME_NFC 7 class TapConfig { private: @@ -60,4 +61,4 @@ class TapConfig { void setControlMode(int i); }; -#endif \ No newline at end of file +#endif diff --git a/src/ui.c b/src/ui.c index 5bfe81c..52491b0 100644 --- a/src/ui.c +++ b/src/ui.c @@ -1344,7 +1344,7 @@ void ui_ScreenConfig_screen_init(void) // Drop Down for switching mode ui_DropdownConfigControlMode = lv_dropdown_create(ui_ScreenConfig); - lv_dropdown_set_options(ui_DropdownConfigControlMode, "None\nServo, Time\nRelay, Time\nI2C Servo, Time\nI2C Relay, Time\nI2C Servo, Ticks\nI2C Relay, Ticks"); + lv_dropdown_set_options(ui_DropdownConfigControlMode, "None\nServo, Time\nRelay, Time\nRelay, Time, NFC\nI2C Servo, Time\nI2C Relay, Time\nI2C Servo, Ticks\nI2C Relay, Ticks"); lv_obj_set_width(ui_DropdownConfigControlMode, 170); lv_obj_set_height(ui_DropdownConfigControlMode, LV_SIZE_CONTENT); /// 1 lv_obj_set_x(ui_DropdownConfigControlMode, -10); diff --git a/src/ui_events.cpp b/src/ui_events.cpp index b58ac66..ddbaf5b 100644 --- a/src/ui_events.cpp +++ b/src/ui_events.cpp @@ -107,6 +107,8 @@ void ButtonConfigDoneClicked(lv_event_t * e) tapConfig.setControlMode(CONTROL_MODE_SERVO_TIME); } else if ( strncasecmp(buf,"Relay, Time",11) == 0 ) { tapConfig.setControlMode(CONTROL_MODE_RELAY_TIME); + } else if ( strncasecmp(buf,"Relay, Time, NFC",16) == 0 ) { + tapConfig.setControlMode(CONTROL_MODE_RELAY_TIME_NFC); } else if ( strncasecmp(buf,"I2C Servo, Time",15) == 0 ) { tapConfig.setControlMode(CONTROL_MODE_I2C_SERVO_TIME); } else if ( strncasecmp(buf,"I2C Relay, Time",15) == 0 ) {