diff --git a/avr/devices/c03/main/g_app.asm b/avr/devices/c03/main/g_app.asm index c5cdaba..c047b22 100644 --- a/avr/devices/c03/main/g_app.asm +++ b/avr/devices/c03/main/g_app.asm @@ -15,7 +15,8 @@ ; defines -.equ APPC03_SEL_BUTTON_NETWORK = 1 +.equ APPC03_SEL_BUTTON_CLIMATE = 1 +.equ APPC03_SEL_BUTTON_NETWORK = 2 @@ -59,6 +60,7 @@ appC03_signalmap: .db 0, OBJECT_SIGNAL_RECVMSG, LOW(GuiApp_OnMsgReceived), HIGH(GuiApp_OnMsgReceived) .db 0, OBJECT_SIGNAL_CREATE, LOW(GuiApp_OnCreate), HIGH(GuiApp_OnCreate) .db APPC03_SEL_BUTTON_NETWORK, WIDGET_SIGNAL_CLICKED, LOW(AppC03_OnClickedNetwork), HIGH(AppC03_OnClickedNetwork) + .db APPC03_SEL_BUTTON_CLIMATE, WIDGET_SIGNAL_CLICKED, LOW(AppC03_OnClickedClimate), HIGH(AppC03_OnClickedClimate) .db 0, 0, 0, 0 ; end of table @@ -95,11 +97,24 @@ testRootWin_signalmap: AppC03_OnClickedNetwork: -; TODO: select network window + ldi xl, LOW(winNetwork*2) + ldi xh, HIGH(winNetwork*2) + bigcall GuiApp_ShowView + sec ret +AppC03_OnClickedClimate: + ldi xl, LOW(winClimate*2) + ldi xh, HIGH(winClimate*2) + bigcall GuiApp_ShowView + sec + ret + + + + #endif diff --git a/avr/devices/c03/main/g_win_climate.asm b/avr/devices/c03/main/g_win_climate.asm index 0363a89..0aaf5d7 100644 --- a/avr/devices/c03/main/g_win_climate.asm +++ b/avr/devices/c03/main/g_win_climate.asm @@ -77,12 +77,12 @@ buttonClimateNetwork_ramdata: winClimate: ; OBJECT .db 0x55, 0xaa ; magic - .dw 0 ; next + .dw winNetwork*2 ; next .dw winRoot*2 ; parent .dw winClimateHeader*2 ; first child .dw 0 ; target .dw 0 ; selector (ony lower 8 bits used) - .dw winClimate_signalmap*2 ; signal map + .dw winClimate_signalmap*2 ; signal map ; WIDGET .db 0, 0 ; opts lo, hi .dw 0 ; X @@ -95,36 +95,36 @@ winClimate: .dw winClimate_ramdata ; ptr to SDRAM winClimate_signalmap: - .db 0, OBJECT_SIGNAL_CREATE, LOW(Widget_OnCreate), HIGH(Widget_OnCreate) - .db 0, WIDGET_SIGNAL_DRAW, LOW(Widget_OnDraw), HIGH(Widget_OnDraw) + .db 0, OBJECT_SIGNAL_CREATE, LOW(Widget_OnCreate), HIGH(Widget_OnCreate) + .db 0, WIDGET_SIGNAL_DRAW, LOW(Widget_OnDrawNop), HIGH(Widget_OnDrawNop) .db 0, 0, 0, 0 ; end of table winClimateHeader: ; OBJECT - .db 0x55, 0xaa ; magic - .dw winClimateBody*2 ; next - .dw winClimate*2 ; parent + .db 0x55, 0xaa ; magic + .dw winClimateBody*2 ; next + .dw winClimate*2 ; parent .dw 0 ; first child .dw 0 ; target .dw 0 ; selector (ony lower 8 bits used) - .dw Label_DefaultSignalmap*2 ; signal map + .dw Label_DefaultSignalmap*2 ; signal map ; WIDGET - .db 0, 0 ; opts lo, hi - .dw 0 ; X - .dw 0 ; Y - .dw DISPLAY_WIDTH ; W - .dw STYLE_WIN_TITLE_HEIGHT ; H - .dw STYLE_WIN_TITLE_FOREGROUND ; front color - .dw STYLE_WIN_TITLE_BACKGROUND ; back color - .dw STYLE_WIN_FONT*2 ; font - .dw winClimateHeader_ramdata ; ptr to SDRAM + .db 0, 0 ; opts lo, hi + .dw 0 ; X + .dw 0 ; Y + .dw DISPLAY_WIDTH ; W + .dw STYLE_WIN_TITLE_HEIGHT ; H + .dw STYLE_WIN_TITLE_FOREGROUND ; front color + .dw STYLE_WIN_TITLE_BACKGROUND ; back color + .dw STYLE_WIN_FONT*2 ; font + .dw winClimateHeader_ramdata ; ptr to SDRAM ; LABEL - .dw winClimateHeader_text*2 ; text + .dw winClimateHeader_text*2 ; text winClimateHeader_text: - .db "Test-Window", 0 + .db "Raumklima", 0 diff --git a/avr/devices/c03/main/g_win_network.asm b/avr/devices/c03/main/g_win_network.asm new file mode 100644 index 0000000..03ba887 --- /dev/null +++ b/avr/devices/c03/main/g_win_network.asm @@ -0,0 +1,527 @@ +; *************************************************************************** +; 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_DEVICE_C03_WIN_NETWORK_ASM +#define AQH_AVR_DEVICE_C03_WIN_NETWORK_ASM + + + +; *************************************************************************** +; defines + + +.equ WINNETWORK_INTERVAL_100ms = 50 ; update every 5s + +; SDRAM data for WINNETWORK +.equ WINNETWORK_SD_OFFS_BEGIN = WIDGET_SD_SIZE +.equ WINNETWORK_SD_OFFS_TIMER = WINNETWORK_SD_OFFS_BEGIN+0 +.equ WINNETWORK_SD_SIZE = WINNETWORK_SD_OFFS_BEGIN+1 + + + +; *************************************************************************** +; data + +.dseg + + +winNetwork_ramdata: + .byte WINNETWORK_SD_SIZE + +winNetworkHeader_ramdata: + .byte WIDGET_SD_SIZE + +winNetworkBody_ramdata: + .byte WIDGET_SD_SIZE + +winNetworkLabel1_ramdata: + .byte WIDGET_SD_SIZE + +winNetworkLabel2_ramdata: + .byte WIDGET_SD_SIZE + +winNetworkLabel3_ramdata: + .byte WIDGET_SD_SIZE + +winNetworkLabel4_ramdata: + .byte WIDGET_SD_SIZE + +winNetworkLabel5_ramdata: + .byte WIDGET_SD_SIZE + +winNetworkValue1_ramdata: + .byte VLABEL_SD_SIZE + +winNetworkValue2_ramdata: + .byte VLABEL_SD_SIZE + +winNetworkValue3_ramdata: + .byte VLABEL_SD_SIZE + +winNetworkValue4_ramdata: + .byte VLABEL_SD_SIZE + +winNetworkValue5_ramdata: + .byte VLABEL_SD_SIZE + +buttonNetworkClimate_ramdata: + .byte IMGVIEW_SD_SIZE + + + +; *************************************************************************** +; code + +.cseg + + +winNetwork: + ; OBJECT + .db 0x55, 0xaa ; magic + .dw 0 ; next + .dw winRoot*2 ; parent + .dw winNetworkHeader*2 ; first child + .dw 0 ; target + .dw 0 ; selector (ony lower 8 bits used) + .dw winNetwork_signalmap*2 ; signal map + ; WIDGET + .db (1<