# pybricks blocks file:{"blocks":{"languageVersion":0,"blocks":[{"type":"blockGlobalSetup","id":"bjK,wS1MYO7aiYkFSwd{","x":0,"y":0,"deletable":false,"next":{"block":{"type":"variables_set_prime_hub","id":"5*I7CuD#@Z~3}`ZzI_*|","extraState":{"optionLevel":0},"fields":{"VAR":{"id":"jJIkyz1^UOv,0qf6Q`S+"}},"next":{"block":{"type":"variables_set_app_data","id":"iw?R+g)2p_iIwsSLNZ`P","extraState":{"optionLevel":1},"fields":{"VAR":{"id":"GkGG0MMBQV:n+-Pe/u2["},"METHOD":"APP_DATA_COLOR_TRACKER"},"inputs":{"ARG0":{"shadow":{"type":"variables_get_color","id":"dLqImFWL+%P)@(gR+j2L","fields":{"COLOUR":"#ff0000","VAR":{"id":"PEdMV`y{f+/2bEqDNOT3","name":"red","type":"ColorDef"}}}}},"next":{"block":{"type":"variables_setup_any","id":"^?s%BcX8k9h}WFC/O`X_","fields":{"VAR":{"id":"6?g;wjP(]/Ue$NbGoB,b"}},"inputs":{"VALUE0":{"shadow":{"type":"blockMathNumber","id":"nhfK{GN~-oCUWz*B!=+3","fields":{"NUM":0}}}},"next":{"block":{"type":"variables_setup_any","id":"il!xtYAQ2in}JEUJkwd)","fields":{"VAR":{"id":"i%@f$U=Kr9w@vAw!M6G/"}},"inputs":{"VALUE0":{"shadow":{"type":"blockMathNumber","id":"c4|O`f07S}c54TAq#s^s","fields":{"NUM":0}}}},"next":{"block":{"type":"variables_setup_any","id":"3x7IvT=csRS{d~=ci^jT","fields":{"VAR":{"id":"IYa/Zz%f?z2kP^TsRnRM"}},"inputs":{"VALUE0":{"shadow":{"type":"blockMathNumber","id":")O1h6VtejZ-HL-fFIO2+","fields":{"NUM":0}}}},"next":{"block":{"type":"variables_setup_any","id":"J{0gd-|^Y7#wdx;Hs;%;","fields":{"VAR":{"id":")pDyHoH+%-3sFl*J*%5O"}},"inputs":{"VALUE0":{"shadow":{"type":"blockMathNumber","id":"w9_e-w%nWI6C@8JZAoyb","fields":{"NUM":0}}}}}}}}}}}}}}}}},{"type":"blockGlobalStart","id":"3tJe|AWl0baN(wH9a$@.","x":0,"y":362,"deletable":false,"next":{"block":{"type":"blockFlowWhile","id":"?nRZ.J$5N-ODT6iNaP{0","fields":{"MODE":"WHILE"},"inputs":{"BOOL":{"shadow":{"type":"blockLogicTrue","id":"_*LTYi(Jqq|4u]Ows2Au"}},"DO":{"block":{"type":"blockComment","id":"6Y}|mMntUgaMnEp%Bl){","fields":{"FIELDNAME":"Unpack the list of values into our variables."},"next":{"block":{"type":"blockListUnpack","id":"u)](GUlIsj3p?~Zh=ZQ0","extraState":{"optionLevel":3},"inputs":{"LIST":{"shadow":{"type":"blockListEmpty","id":"SCl}0xJDU06/z@yLFa;0"},"block":{"type":"blockAppDataGetValues","id":"_NK04U+m]Taz:+_F5LbB","extraState":{"optionLevel":1},"fields":{"METHOD":"APP_DATA_ALL_VALUES"},"inputs":{"VAR":{"shadow":{"type":"variables_get_app_data","id":"U.jC7[Ik{li(Pb*{H=^M","fields":{"VAR":{"id":"GkGG0MMBQV:n+-Pe/u2[","name":"smart","type":"AppData"}}}}}}},"VAR":{"shadow":{"type":"variables_get_any","id":"1VRl/ftcU5v01e`Jy{vR","fields":{"VAR":{"id":"6?g;wjP(]/Ue$NbGoB,b","name":"x","type":"Any"}}}},"VAR0":{"shadow":{"type":"variables_get_any","id":"7fhwIZK6!X%0R%EQ+ljv","fields":{"VAR":{"id":"i%@f$U=Kr9w@vAw!M6G/","name":"y","type":"Any"}}}},"VAR1":{"shadow":{"type":"variables_get_any","id":"b;751=Qg%k#bVlrjUWzF","fields":{"VAR":{"id":"IYa/Zz%f?z2kP^TsRnRM","name":"width","type":"Any"}}}},"VAR2":{"shadow":{"type":"variables_get_any","id":"S]2%~ag[GSseU4N}@z-E","fields":{"VAR":{"id":")pDyHoH+%-3sFl*J*%5O","name":"height","type":"Any"}}}}},"next":{"block":{"type":"blockComment","id":"Jl5snJUDhV1D|t$,as|F","fields":{"FIELDNAME":"Display the x position on the display for easy testing."},"next":{"block":{"type":"blockLightMatrixDo","id":"^!%QAq88b4$fY/DP.;qE","extraState":{"optionLevel":1},"fields":{"METHOD":"LIGHT_MATRIX_NUMBER"},"inputs":{"VAR":{"shadow":{"type":"variables_get_light_matrix_hub","id":"[f#/fOJ)CqwBkS5eCCiW","fields":{"VAR":{"id":"jJIkyz1^UOv,0qf6Q`S+","name":"hub","type":"PrimeHub"}}}},"ARG0":{"shadow":{"type":"blockMathNumber","id":"8MXO]ICbo1E~8q_mbF44","fields":{"NUM":42}},"block":{"type":"blockVariableGetValue","id":"/GTZPV_mN3PUW3u.`Tsp","inputs":{"VAR":{"shadow":{"type":"variables_get_any","id":"LENd^fp)lF4i;fpwKsV7","fields":{"VAR":{"id":"6?g;wjP(]/Ue$NbGoB,b","name":"x","type":"Any"}}}}}}}}}}}}}}}}}}}}]},"variables":[{"name":"red","id":"PEdMV`y{f+/2bEqDNOT3","type":"ColorDef"},{"name":"orange","id":"8}O+)b^Kit?DH(eQc2DO","type":"ColorDef"},{"name":"yellow","id":"#1l3o=F,iI%WixF26%Ar","type":"ColorDef"},{"name":"green","id":"M_nB=k[Zdc=C~x]A2yx2","type":"ColorDef"},{"name":"cyan","id":"^Eh.^IzGcS:zTvnN3HZw","type":"ColorDef"},{"name":"blue","id":"l,Gi`v5:9h~@sC/XCK7.","type":"ColorDef"},{"name":"violet","id":"*s^*~Z*r=JO=h:4~^w@p","type":"ColorDef"},{"name":"magenta","id":"P$[C))1K+DQ|6bGt20)2","type":"ColorDef"},{"name":"white","id":":60`%,Y4d+y)p[*pn;pA","type":"ColorDef"},{"name":"none","id":"Spc!cR2SN`j[jNx/tX6k","type":"ColorDef"},{"name":"hub","id":"jJIkyz1^UOv,0qf6Q`S+","type":"PrimeHub"},{"name":"smart","id":"GkGG0MMBQV:n+-Pe/u2[","type":"AppData"},{"name":"height","id":")pDyHoH+%-3sFl*J*%5O","type":"Any"},{"name":"width","id":"IYa/Zz%f?z2kP^TsRnRM","type":"Any"},{"name":"x","id":"6?g;wjP(]/Ue$NbGoB,b","type":"Any"},{"name":"y","id":"i%@f$U=Kr9w@vAw!M6G/","type":"Any"}],"info":{"type":"pybricks","version":"2.0.0"},"workspaceOptions":{"scrollX":342.9578236607142,"scrollY":18.771428571428487,"scale":0.9385714285714286}}
from pybricks.hubs import PrimeHub
from pybricks.parameters import Color
from pybricks.tools import AppData
from ustruct import unpack

# Set up.
hub = PrimeHub()
app = AppData([(0, 4)])
app.configure(0, 0, bytes([Color.RED.h // 2]))
x = 0
y = 0
width = 0
height = 0


# The main program starts here.
while True:
    # Unpack the list of values into our variables.
    x, y, width, height = unpack('BBBB', app.get_bytes(0)) or [0] * 4
    # Display the x position on the display for easy testing.
    hub.display.number(x)
