diff --git a/avr/devices/c03/main/main.asm b/avr/devices/c03/main/main.asm index d4587dd..2163eb7 100644 --- a/avr/devices/c03/main/main.asm +++ b/avr/devices/c03/main/main.asm @@ -78,22 +78,10 @@ ; --------------------------------------------------------------------------- ; defines for values -.equ VALUE_ID_SI7021_TEMP = 0x01 -.equ VALUE_ID_SI7021_HUM = 0x02 - .equ VALUE_ID_ADC = 0x03 -;.equ VALUE_ID_DS18B20_TEMP = 0x06 -.equ VALUE_ID_MOTION = 0x07 - -.equ VALUE_ID_SGP40_TVOC = 0x08 - -.equ VALUE_ID_SGP30_TVOC = 0x09 -.equ VALUE_ID_SGP30_CO2 = 0x0a .equ VALUE_ID_BRIGHTNESS = 0x0b -;.equ VALUE_ID_REED_CONF = 0x81 - .equ VALUE_ID_DEBUG = 0x7f .equ VALUE_ID_SENSOR_CO2_BASE = 0x90 @@ -531,6 +519,9 @@ GUI_MODULE_BEGIN: .include "modules/lcd2/gui/base/button.asm" .include "modules/lcd2/gui/base/imageview.asm" .include "modules/lcd2/gui/base/valuelabel.asm" +.include "modules/lcd2/gui/base/checkbox.asm" +.include "modules/lcd2/gui/base/checkbutton.asm" +.include "modules/lcd2/gui/base/tile.asm" .include "modules/lcd2/gui/base/layout.asm" .include "modules/lcd2/gui/base/hlayout.asm" .include "modules/lcd2/gui/base/vlayout.asm" diff --git a/avr/devices/c03/main/w_lightsettings.asm b/avr/devices/c03/main/w_lightsettings.asm new file mode 100644 index 0000000..49e0dff --- /dev/null +++ b/avr/devices/c03/main/w_lightsettings.asm @@ -0,0 +1,188 @@ +; *************************************************************************** +; copyright : (C) 2026 by Martin Preuss +; email : martin@libchipcard.de +; +; *************************************************************************** +; * This file is part of the project "AqHome". * +; * Please see toplevel file COPYING of that project for license details. * +; *************************************************************************** + +#ifndef AQH_AVR_W_LIGHTSETTINGS_ASM +#define AQH_AVR_W_LIGHTSETTINGS_ASM + + +; *************************************************************************** +; defines + +.equ LIGHTSETTINGSWIN_NUM_COLORS = 8 + + +.equ LIGHTSETTINGSWIN_OFFS_BEGIN = MAINWINDOW_SIZE +.equ LIGHTSETTINGSWIN_OFFS_ID = LIGHTSETTINGSWIN_OFFS_BEGIN+0 +.equ LIGHTSETTINGSWIN_OFFS_TYPE = LIGHTSETTINGSWIN_OFFS_BEGIN+1 +.equ LIGHTSETTINGSWIN_OFFS_TEXTRES_LO = LIGHTSETTINGSWIN_OFFS_BEGIN+2 +.equ LIGHTSETTINGSWIN_OFFS_TEXTRES_HI = LIGHTSETTINGSWIN_OFFS_BEGIN+3 +.equ LIGHTSETTINGSWIN_OFFS_NODEADDR = LIGHTSETTINGSWIN_OFFS_BEGIN+4 +.equ LIGHTSETTINGSWIN_OFFS_EEPROM_ID = LIGHTSETTINGSWIN_OFFS_BEGIN+5 ; maybe remove... +.equ LIGHTSETTINGSWIN_OFFS_LEDNUM_LO = LIGHTSETTINGSWIN_OFFS_BEGIN+6 +.equ LIGHTSETTINGSWIN_OFFS_LEDNUM_HI = LIGHTSETTINGSWIN_OFFS_BEGIN+7 +.equ LIGHTSETTINGSWIN_OFFS_ONTIME_LO = LIGHTSETTINGSWIN_OFFS_BEGIN+8 +.equ LIGHTSETTINGSWIN_OFFS_ONTIME_HI = LIGHTSETTINGSWIN_OFFS_BEGIN+9 +.equ LIGHTSETTINGSWIN_OFFS_SOURCE1_NODEADDR = LIGHTSETTINGSWIN_OFFS_BEGIN+10 +.equ LIGHTSETTINGSWIN_OFFS_SOURCE1_VALUEID = LIGHTSETTINGSWIN_OFFS_BEGIN+11 +.equ LIGHTSETTINGSWIN_OFFS_SOURCE2_NODEADDR = LIGHTSETTINGSWIN_OFFS_BEGIN+12 +.equ LIGHTSETTINGSWIN_OFFS_SOURCE2_VALUEID = LIGHTSETTINGSWIN_OFFS_BEGIN+13 +.equ LIGHTSETTINGSWIN_OFFS_BSOURCE_NODEADDR = LIGHTSETTINGSWIN_OFFS_BEGIN+14 +.equ LIGHTSETTINGSWIN_OFFS_BSOURCE_VALUEID = LIGHTSETTINGSWIN_OFFS_BEGIN+15 +.equ LIGHTSETTINGSWIN_OFFS_COLORS = LIGHTSETTINGSWIN_OFFS_BEGIN+16 +.equ LIGHTSETTINGSWIN_SIZE = LIGHTSETTINGSWIN_OFFS_COLORS+(LIGHTSETTINGSWIN_NUM_COLORS*2) + + + +; *************************************************************************** +; code + +.cseg + + + +; --------------------------------------------------------------------------- +; @routine LightSettingsWin_new @global +; +; @param Y pointer to GUIAPP +; @return CFLAG set of okay, cleared otherwise +; @return Y address of newly created object + +LightSettingsWin_new: + bigcall GuiApp_GetRootWindow + brcc LightSettingsWin_new_ret + mov xl, r18 ; use root window as parent for main window + mov xh, r19 + ldi r24, LOW(LIGHTSETTINGSWIN_SIZE) + ldi r25, HIGH(LIGHTSETTINGSWIN_SIZE) + bigcall Object_Alloc ; Y=space (!r16, !r17, !X) + brcc LightSettingsWin_new_ret + rcall LightSettingsWin_Init +LightSettingsWin_new_ret: + ret +; @end + + + +; --------------------------------------------------------------------------- +; @routine LightSettingsWin_new @global +; +; @param Y pointer to newly allocated widget data +; @param X pointer to root window +; @return CFLAG set of okay, cleared otherwise +; @clobbers any, !Y + +LightSettingsWin_Init: + ldi r16, 0 ; OPTS + ldi r17, (WIDGET_PACK_FILLED<