avr: added widget SensorWatch

shows a pictogram for a sensor and changes background color according to
values received from a given sensor.
This commit is contained in:
Martin Preuss
2026-01-18 00:36:22 +01:00
parent 3009e9d0d0
commit 0443032de7
6 changed files with 486 additions and 84 deletions

View File

@@ -37,14 +37,16 @@ testWinHeader_ramdata:
testWinBody_ramdata:
.byte WIDGET_SD_SIZE
testWinBodyImg1_ramdata:
winSensorWatch1_ramdata:
.byte SENSORWATCH_SD_SIZE
winSensorWatch1Title_ramdata:
.byte WIDGET_SD_SIZE
winSensorWatch1Image_ramdata:
.byte IMGVIEW_SD_SIZE
testWinBodyImg2_ramdata:
.byte IMGVIEW_SD_SIZE
testWinBodyImg3_ramdata:
.byte IMGVIEW_SD_SIZE
@@ -164,7 +166,7 @@ testWinBody_flashdata:
.db 0x55, 0xaa ; magic
.dw 0 ; next
.dw testWin_flashdata*2 ; parent
.dw testWinBodyImg1_flashdata*2 ; first child
.dw winSensorWatch1*2 ; first child
.dw 0 ; target
.dw 0 ; selector (ony lower 8 bits used)
.dw testWinBody_signalmap*2 ; signal map
@@ -187,90 +189,99 @@ testWinBody_signalmap:
testWinBodyImg1_flashdata:
winSensorWatch1:
; OBJECT
.db 0x55, 0xaa ; magic
.dw 0 ; next
.dw testWinBody_flashdata*2 ; parent
.dw winSensorWatch1Title*2 ; first child
.dw 0 ; target
.dw 0 ; selector (ony lower 8 bits used)
.dw winSensorWatch1_signalmap*2 ; signal map
; WIDGET
.db (1<<WIDGETS_OPTSLO_MSGRECV_BIT), 0 ; opts lo, hi
.dw 4 ; X
.dw 4 ; Y
.dw 100 ; W (image=96, 2 px borders)
.dw 100 ; H
.dw STYLE_WIN_FOREGROUND ; front color
.dw STYLE_WIN_BACKGROUND ; back color
.dw STYLE_WIN_FONT*2 ; font
.dw winSensorWatch1_ramdata ; ptr to SDRAM
winSensorWatch1_signalmap:
.db 0, OBJECT_SIGNAL_CREATE, LOW(SensorWatch_OnCreate), HIGH(SensorWatch_OnCreate)
.db 0, WIDGET_SIGNAL_DRAW, LOW(Widget_OnDraw), HIGH(Widget_OnDraw)
.db 0, OBJECT_SIGNAL_RECVMSG, LOW(SensorWatch_OnMsgReceived), HIGH(SensorWatch_OnMsgReceived)
.db 0, SENSORWATCH_SIGNAL_SETSOURCE, LOW(SensorWatch_OnSetSource), HIGH(SensorWatch_OnSetSource)
.db 0, SENSORWATCH_SIGNAL_SETLIMWARN, LOW(SensorWatch_OnSetLimitWarn), HIGH(SensorWatch_OnSetLimitWarn)
.db 0, SENSORWATCH_SIGNAL_SETLIMCRIT, LOW(SensorWatch_OnSetLimitCrit), HIGH(SensorWatch_OnSetLimitCrit)
.db 0, 0, 0, 0 ; end of table
winSensorWatch1Title:
; OBJECT
.db 0x55, 0xaa ; magic
.dw testWinBodyImg2_flashdata*2 ; next
.dw testWinBody_flashdata*2 ; parent
.dw winSensorWatch1Image*2 ; next
.dw winSensorWatch1*2 ; parent
.dw 0 ; first child
.dw 0 ; target
.dw 0 ; selector (ony lower 8 bits used)
.dw winSensorWatch1Title_signalmap*2 ; signal map
; WIDGET
.db 0, 0 ; opts lo, hi
.dw 2 ; X
.dw 1 ; Y
.dw 96 ; W
.dw STYLE_WIN_FONT_HEIGHT+2 ; H
.dw STYLE_WIN_FOREGROUND ; front color
.dw STYLE_WIN_BACKGROUND ; back color
.dw STYLE_WIN_FONT*2 ; font
.dw winSensorWatch1Title_ramdata ; ptr to SDRAM
; LABEL
.dw winSensorWatch1Title_text*2 ; text
winSensorWatch1Title_text:
.db "CO2", 0
winSensorWatch1Title_signalmap:
.db 0, OBJECT_SIGNAL_CREATE, LOW(Widget_OnCreate), HIGH(Widget_OnCreate)
.db 0, WIDGET_SIGNAL_DRAW, LOW(Label_OnDraw), HIGH(Label_OnDraw)
.db 0, 0, 0, 0 ; end of table
winSensorWatch1Image:
; OBJECT
.db 0x55, 0xaa ; magic
.dw 0 ; next
.dw winSensorWatch1*2 ; parent
.dw 0 ; first child
.dw 0 ; target
.dw 0 ; selector (ony lower 8 bits used)
.dw testWinBodyImg1_signalmap*2 ; signal map
.dw winSensorWatch1Image_signalmap*2 ; signal map
; WIDGET
.db 0, 0 ; opts lo, hi
.dw 4 ; X
.dw 6 ; Y
.dw 2 ; X
.dw STYLE_WIN_FONT_HEIGHT+2 ; Y
.dw 96 ; W
.dw 96 ; H
.dw STYLE_WIN_FOREGROUND ; front color
.dw STYLE_WIN_BACKGROUND ; back color
.dw STYLE_WIN_FONT*2 ; font
.dw testWinBodyImg1_ramdata ; ptr to SDRAM
.dw winSensorWatch1Image_ramdata ; ptr to SDRAM
; IMGVIEW
.dw RESSSOURCE_IMG_CLOUD96 ; ressource id
testWinBodyImg1_signalmap:
.db 0, WIDGET_SIGNAL_DRAW, LOW(ImageView_OnDraw), HIGH(ImageView_OnDraw)
.db 0, OBJECT_SIGNAL_CREATE, LOW(ImageView_OnCreate), HIGH(ImageView_OnCreate)
winSensorWatch1Image_signalmap:
.db 0, WIDGET_SIGNAL_DRAW, LOW(ImageView_OnDraw), HIGH(ImageView_OnDraw)
.db 0, IMGVIEW_SIGNAL_SETBGCOL, LOW(ImageView_OnSetBgCol), HIGH(ImageView_OnSetBgCol)
.db 0, OBJECT_SIGNAL_CREATE, LOW(ImageView_OnCreate), HIGH(ImageView_OnCreate)
.db 0, 0, 0, 0 ; end of table
testWinBodyImg2_flashdata:
; OBJECT
.db 0x55, 0xaa ; magic
.dw testWinBodyImg3_flashdata*2 ; next
.dw testWinBody_flashdata*2 ; parent
.dw 0 ; first child
.dw 0 ; target
.dw 0 ; selector (ony lower 8 bits used)
.dw testWinBodyImg2_signalmap*2 ; signal map
; WIDGET
.db 0, 0 ; opts lo, hi
.dw 104 ; X
.dw 6 ; Y
.dw 96 ; W
.dw 96 ; H
.dw STYLE_WIN_FOREGROUND ; front color
.dw STYLE_WIN_BACKGROUND ; back color
.dw STYLE_WIN_FONT*2 ; font
.dw testWinBodyImg2_ramdata ; ptr to SDRAM
; IMGVIEW
.dw RESSSOURCE_IMG_TEMP96 ; ressource id
testWinBodyImg2_signalmap:
.db 0, WIDGET_SIGNAL_DRAW, LOW(ImageView_OnDraw), HIGH(ImageView_OnDraw)
.db 0, OBJECT_SIGNAL_CREATE, LOW(ImageView_OnCreate), HIGH(ImageView_OnCreate)
.db 0, 0, 0, 0 ; end of table
testWinBodyImg3_flashdata:
; OBJECT
.db 0x55, 0xaa ; magic
.dw 0 ; next
.dw testWinBody_flashdata*2 ; parent
.dw 0 ; first child
.dw 0 ; target
.dw 0 ; selector (ony lower 8 bits used)
.dw testWinBodyImg3_signalmap*2 ; signal map
; WIDGET
.db 0, 0 ; opts lo, hi
.dw 212 ; X
.dw 6 ; Y
.dw 96 ; W
.dw 96 ; H
.dw STYLE_WIN_FOREGROUND ; front color
.dw STYLE_WIN_BACKGROUND ; back color
.dw STYLE_WIN_FONT*2 ; font
.dw testWinBodyImg3_ramdata ; ptr to SDRAM
; IMGVIEW
.dw RESSSOURCE_IMG_HUMIDITY96 ; ressource id
testWinBodyImg3_signalmap:
.db 0, WIDGET_SIGNAL_DRAW, LOW(ImageView_OnDraw), HIGH(ImageView_OnDraw)
.db 0, OBJECT_SIGNAL_CREATE, LOW(ImageView_OnCreate), HIGH(ImageView_OnCreate)
.db 0, 0, 0, 0 ; end of table