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:
@@ -229,7 +229,30 @@ test:
|
||||
ldi zl, LOW(testApp_flashdata*2)
|
||||
ldi zh, HIGH(testApp_flashdata*2)
|
||||
bigcall GuiApp_Init
|
||||
|
||||
ldi zl, LOW(winSensorWatch1*2)
|
||||
ldi zh, HIGH(winSensorWatch1*2)
|
||||
; set source
|
||||
ldi r16, SENSORWATCH_SIGNAL_SETSOURCE
|
||||
clr r17
|
||||
ldi xl, 191 ; node address
|
||||
ldi xh, 10 ; value 0x0a (SGP30_CO2)
|
||||
bigcall OBJ_HandleSignal
|
||||
|
||||
; set warning limit
|
||||
ldi r16, SENSORWATCH_SIGNAL_SETLIMWARN
|
||||
clr r17
|
||||
ldi xl, LOW(800)
|
||||
ldi xh, HIGH(800)
|
||||
bigcall OBJ_HandleSignal
|
||||
|
||||
; set critical limit
|
||||
ldi r16, SENSORWATCH_SIGNAL_SETLIMCRIT
|
||||
clr r17
|
||||
ldi xl, LOW(2000)
|
||||
ldi xh, HIGH(2000)
|
||||
bigcall OBJ_HandleSignal
|
||||
|
||||
ret
|
||||
|
||||
|
||||
@@ -266,6 +289,7 @@ test:
|
||||
.include "modules/lcd2/gui2/widget.asm"
|
||||
.include "modules/lcd2/gui2/label.asm"
|
||||
.include "modules/lcd2/gui2/imageview.asm"
|
||||
.include "modules/lcd2/gui2/sensorwatch.asm"
|
||||
.include "modules/lcd2/gui2/guiapp.asm"
|
||||
|
||||
.include "testwin.asm"
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user