-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy path_history
More file actions
1 lines (1 loc) · 105 KB
/
_history
File metadata and controls
1 lines (1 loc) · 105 KB
1
{"entries":[{"timestamp":1731846265997,"editorVersion":"7.0.51","changes":[{"type":"edited","filename":"main.blocks","patch":[{"diffs":[[0,"http"],[-1,"s"],[0,"://"],[-1,"developers.google.com/blockly/xml\"><variables><variable id=\"2RAZ0)^bVHs!Fi~U*y}K\">Radio Group</variable></variables><block type=\"device_forever\" x=\"-116\" y=\"-394\"><statement name=\"HANDLER\"><block type=\"radio_set_group\"><value name=\"ID\"><shadow type=\"math_number_minmax\"><mutation min=\"0\" max=\"255\" label=\"Id\" precision=\"0\"></mutation><field name=\"SLIDER\">1</field></shadow><block type=\"variables_get\"><field name=\"VAR\" id=\"2RAZ0)^bVHs!Fi~U*y}K\">Radio Group</field></block></value><next><block type=\"controls_if\"><value name=\"IF0\"><shadow type=\"logic_boolean\"><field name=\"BOOL\">TRUE</field></shadow><block type=\"logic_operation\"><field name=\"OP\">AND</field><value name=\"A\"><block type=\"device_pin_is_pressed\"><field name=\"NAME\">TouchPin.P2</field></block></value><value name=\"B\"><block type=\"device_pin_is_pressed\"><field name=\"NAME\">TouchPin.P0</field></block></value></block></value><statement name=\"DO0\"><block type=\"device_while\"><value name=\"COND\"><shadow type=\"logic_boolean\" disabled-reasons=\"MANUALLY_DISABLED\"><field name=\"BOOL\">FALSE</field></shadow><block type=\"logic_negate\"></block></value><next><block type=\"radio_set_group\"><value name=\"ID\"><shadow type=\"math_number_minmax\"><mutation min=\"0\" max=\"255\" label=\"Id\" precision=\"0\"></mutation><field name=\"SLIDER\">117</field></shadow></value><next><block type=\"radio_datagram_send_value\"><value name=\"name\"><shadow type=\"text\"><field name=\"TEXT\">I know the password!</field></shadow></value><value name=\"value\"><shadow type=\"math_number\"><field name=\"NUM\">1234</field></shadow></value><next><block type=\"variables_set\"><field name=\"VAR\" id=\"2RAZ0)^bVHs!Fi~U*y}K\">Radio Group</field><value name=\"VALUE\"><shadow type=\"math_number\"><field name=\"NUM\">1</field></shadow></value></block></next></block></next></block></next></block></statement></block></next></block></statement></block><block type=\"pxt-on-start\" x=\"88\" y=\"119\"><statement name=\"HANDLER\"><block type=\"radio_set_group\"><value name=\"ID\"><shadow type=\"math_number_minmax\"><mutation min=\"0\" max=\"255\" label=\"Id\" precision=\"0\"></mutation><field name=\"SLIDER\">1</field></shadow></value></block></statement></block><block type=\"device_button_event\" x=\"99\" y=\"275\"><field name=\"NAME\">Button.A</field><statement name=\"HANDLER\"><block type=\"radio_datagram_send_string\"><value name=\"msg\"><shadow type=\"text\"><field name=\"TEXT\">Hi</field></shadow></value></block></statement></block><block type=\"radio_on_string_drag\" x=\"130\" y=\"432\"><value name=\"HANDLER_DRAG_PARAM_receivedString\"><block type=\"argument_reporter_string\"><mutation duplicateondrag=\"true\"></mutation><field name=\"VALUE\">receivedString</field></block></value><statement name=\"HANDLER\"><block type=\"device_print_message\"><value name=\"text\"><shadow type=\"text\"><field name=\"TEXT\">Hello!</field></shadow><block type=\"argument_reporter_string\"><field name=\"VALUE\">receivedString</field></block></value></block></statement></block>"],[1,"www.w3.org/1999/xhtml\">\n <block type=\"pxt-on-start\"></block>\n <block type=\"device_forever\"></block>\n"],[0,"</xm"]],"start1":12,"start2":12,"length1":2912,"length2":113}]},{"type":"edited","filename":"main.ts","patch":[{"diffs":[[-1,"input.onButtonPressed(Button.A, function () {\n radio.sendString(\"Hi\")\n})\nradio.onReceivedString(function (receivedString) {\n basic.showString(receivedString)\n})\nlet Radio_Group = 0\nradio.setGroup(1)\nbasic.forever(function () {\n radio.setGroup(Radio_Group)\n if (input.pinIsPressed(TouchPin.P2) && input.pinIsPressed(TouchPin.P0)) {\n while (!(false)) {\n \t\n }\n radio.setGroup(117)\n radio.sendValue(\"I know the password!\", 1234)\n Radio_Group = 1\n }\n})"],[0,"\n"]],"start1":0,"start2":0,"length1":505,"length2":1}]},{"type":"edited","filename":"pxt.json","patch":[{"diffs":[[0,".md\""],[-1,",\n \"pxt.json\",\n \"_history\""],[0,"\n "]],"start1":225,"start2":225,"length1":48,"length2":8},{"diffs":[[0,"ocksprj\""],[1,",\n \"additionalFilePaths\": []"],[0,"\n}\n"]],"start1":263,"start2":263,"length1":11,"length2":42}]}]},{"timestamp":1731846871726,"editorVersion":"7.0.51","changes":[{"type":"edited","filename":"main.blocks","patch":[{"diffs":[[0,"ock "],[-1,"type=\"device_note\" disabled-reasons=\"ORPHANED_BLOCK,MANUALLY_DISABLED\" x=\"-103\" y=\"171\"><field name=\"name\">262</field></block><block "],[0,"type"]],"start1":2153,"start2":2153,"length1":141,"length2":8}]}]},{"timestamp":1731846924652,"editorVersion":"7.0.51","changes":[{"type":"edited","filename":"main.blocks","patch":[{"diffs":[[0,"le><"],[-1,"variable id=\"$P_aq_(,8a1LQG`OnGp.\">Password</variable><"],[0,"/var"]],"start1":121,"start2":121,"length1":63,"length2":8},{"diffs":[[0,"=\"-1"],[-1,"48"],[1,"16"],[0,"\" y=\"-"],[-1,"550"],[1,"394"],[0,"\"><s"]],"start1":166,"start2":166,"length1":19,"length2":19},{"diffs":[[0,"pe=\""],[-1,"radio_set_group\"><value name=\"ID\"><shadow type=\"math_number_minmax\"><mutation min=\"0\" max=\"255\" label=\"Id\" precision=\"0\"></mutation><field name=\"SLIDER\">255</field></shadow></value><next><block type=\"device_while\"><value name=\"COND\"><shadow type=\"logic_boolean\" disabled-reasons=\"MANUALLY_DISABLED\"><field name=\"BOOL\">FALSE</field></shadow><block type=\"logic_negate\"><value name=\"BOOL\"><block type=\"device_get_button2\"><field name=\"NAME\">Button.A</field></block></value></block></value><statement name=\"DO\"><block type=\"variables_change\"><field name=\"VAR\" id=\"$P_aq_(,8a1LQG`OnGp.\">Password</field><value name=\"VALUE\"><shadow type=\"math_number\"><field name=\"NUM\">1</field></shadow></value><next><block type=\"device_show_number\"><value name=\"number\"><shadow type=\"math_number\"><field name=\"NUM\">0</field></shadow><block type=\"variables_get\"><field name=\"VAR\" id=\"$P_aq_(,8a1LQG`OnGp.\">Password</field></block></value><next><block type=\"controls_if\"><value name=\"IF0\"><shadow type=\"logic_boolean\"><field name=\"BOOL\">TRUE</field></shadow><block type=\"device_get_button2\"><field name=\"NAME\">Button.B</field></block></value></block></next></block></next></block></statement"],[1,"device_while\"><value name=\"COND\"><shadow type=\"logic_boolean\" disabled-reasons=\"MANUALLY_DISABLED\"><field name=\"BOOL\">FALSE</field></shadow><block type=\"logic_negate\"></block></value"],[0,"><ne"]],"start1":936,"start2":936,"length1":1176,"length2":190},{"diffs":[[0,"ow><"],[-1,"block type=\"variables_get\"><field name=\"VAR\" id=\"$P_aq_(,8a1LQG`OnGp.\">Password</field></block><"],[0,"/val"]],"start1":1555,"start2":1555,"length1":104,"length2":8},{"diffs":[[0,"t></block></"],[-1,"next></block></"],[0,"statement></"]],"start1":1797,"start2":1797,"length1":39,"length2":24},{"diffs":[[0,"ice_"],[-1,"pin_event\" x=\"-183\" y=\"236\"><field name=\"name\">TouchPin.P1</field><statement name=\"HANDLER\"><block type=\"radio_datagram_send_string\"><value name=\"msg\"><shadow type=\"text\"><field name=\"TEXT\">Got it!</field></shadow></value></block></statement"],[1,"note\" disabled-reasons=\"ORPHANED_BLOCK,MANUALLY_DISABLED\" x=\"-103\" y=\"171\"><field name=\"name\">262</field"],[0,"></b"]],"start1":2166,"start2":2166,"length1":249,"length2":112},{"diffs":[[0," x=\""],[-1,"193"],[1,"99"],[0,"\" y=\"2"],[-1,"69"],[1,"75"],[0,"\"><f"]],"start1":2316,"start2":2316,"length1":19,"length2":18},{"diffs":[[0,"ck><"],[-1,"block type=\"device_button_event\" x=\"-250\" y=\"549\"><field name=\"NAME\">Button.B</field><statement name=\"HANDLER\"><block type=\"radio_datagram_send_string\"><value name=\"msg\"><shadow type=\"text\"><field name=\"TEXT\">Bye!</field></shadow></value></block></statement></block><block type=\"device_button_event\" x=\"-265\" y=\"801\"><field name=\"NAME\">Button.AB</field><statement name=\"HANDLER\"><block type=\"radio_datagram_send_string\"><value name=\"msg\"><shadow type=\"text\"><field name=\"TEXT\">I'm Hungry</field></shadow></value></block></statement></block><"],[0,"/xml"]],"start1":3050,"start2":3050,"length1":549,"length2":8}]},{"type":"edited","filename":"main.ts","patch":[{"diffs":[[0,"\n})\n"],[-1,"input.onButtonPressed(Button.AB, function () {\n radio.sendString(\"I'm Hungry\")\n})\n"],[0,"radi"]],"start1":72,"start2":72,"length1":93,"length2":8},{"diffs":[[0,"\n})\n"],[-1,"input.onButtonPressed(Button.B, function () {\n radio.sendString(\"Bye!\")\n})\ninput.onPinPressed(TouchPin.P1, function () {\n radio.sendString(\"Got it!\")\n})\nlet Password = 0\n"],[0,"let "]],"start1":163,"start2":163,"length1":184,"length2":8},{"diffs":[[0," "],[-1,"radio.setGroup(255)\n while (!(input.buttonIsPressed(Button.A))) {\n Password += 1\n basic.showNumber(Password)\n if (input.buttonIsPressed(Button.B"],[1,"while (!(false"],[0,")) {"]],"start1":347,"start2":347,"length1":192,"length2":22},{"diffs":[[0," "],[-1," "],[-1," \t\n }"],[1,"\t"],[0,"\n "]],"start1":374,"start2":374,"length1":27,"length2":9},{"diffs":[[0,"!\", "],[-1,"Password"],[1,"1234"],[0,")\n "]],"start1":462,"start2":462,"length1":16,"length2":12}]}]},{"timestamp":1731847490415,"editorVersion":"7.0.51","changes":[{"type":"edited","filename":"main.blocks","patch":[{"diffs":[[0,"riable><"],[1,"variable id=\"$P_aq_(,8a1LQG`OnGp.\">Password</variable><"],[0,"/variabl"]],"start1":117,"start2":117,"length1":16,"length2":71},{"diffs":[[0,"=\"-1"],[-1,"66"],[1,"48"],[0,"\" y=\"-5"],[-1,"78"],[1,"50"],[0,"\"><s"]],"start1":221,"start2":221,"length1":19,"length2":19},{"diffs":[[0,"ue><"],[-1,"/block></statement></block><block type=\"device_pin_event\" x=\"-91\" y=\"-325\"><field name=\"name\">TouchPin.P0</field><statement name=\"HANDLER\"><block type=\"variables_change"],[1,"next><block type=\"controls_if\"><value name=\"IF0\"><shadow type=\"logic_boolean\"><field name=\"BOOL\">TRUE</field></shadow><block type=\"logic_operation\"><field name=\"OP\">AND</field><value name=\"A\"><block type=\"device_pin_is_pressed\"><field name=\"NAME\">TouchPin.P2</field></block></value><value name=\"B\"><block type=\"device_pin_is_pressed\"><field name=\"NAME\">TouchPin.P0</field></block></value></block></value><statement name=\"DO0\"><block type=\"radio_set_group\"><value name=\"ID\"><shadow type=\"math_number_minmax\"><mutation min=\"0\" max=\"255\" label=\"Id\" precision=\"0\"></mutation><field name=\"SLIDER\">255</field></shadow></value><next><block type=\"device_while\"><value name=\"COND\"><shadow type=\"logic_boolean\" disabled-reasons=\"MANUALLY_DISABLED\"><field name=\"BOOL\">FALSE</field></shadow><block type=\"logic_negate\"><value name=\"BOOL\"><block type=\"device_get_button2\"><field name=\"NAME\">Button.A</field></block></value></block></value><statement name=\"DO\"><block type=\"variables_change\"><field name=\"VAR\" id=\"$P_aq_(,8a1LQG`OnGp.\">Password</field><value name=\"VALUE\"><shadow type=\"math_number\"><field name=\"NUM\">1</field></shadow></value><next><block type=\"device_show_number\"><value name=\"number\"><shadow type=\"math_number\"><field name=\"NUM\">0</field></shadow><block type=\"variables_get\"><field name=\"VAR\" id=\"$P_aq_(,8a1LQG`OnGp.\">Password</field></block></value><next><block type=\"controls_if\"><value name=\"IF0\"><shadow type=\"logic_boolean\"><field name=\"BOOL\">TRUE</field></shadow><block type=\"device_get_button2\"><field name=\"NAME\">Button.B</field></block></value></block></next></block></next></block></statement><next><block type=\"radio_set_group\"><value name=\"ID\"><shadow type=\"math_number_minmax\"><mutation min=\"0\" max=\"255\" label=\"Id\" precision=\"0\"></mutation><field name=\"SLIDER\">117</field></shadow></value><next><block type=\"radio_datagram_send_value\"><value name=\"name\"><shadow type=\"text\"><field name=\"TEXT\">I know the password!</field></shadow></value><value name=\"value\"><shadow type=\"math_number\"><field name=\"NUM\">1234</field></shadow><block type=\"variables_get\"><field name=\"VAR\" id=\"$P_aq_(,8a1LQG`OnGp.\">Password</field></block></value><next><block type=\"variables_set"],[0,"\"><f"]],"start1":552,"start2":552,"length1":176,"length2":2187},{"diffs":[[0,"value></block></"],[1,"next></block></next></block></next></block></next></block></statement></block></next></block></"],[0,"statement></bloc"]],"start1":2885,"start2":2885,"length1":32,"length2":127}]},{"type":"edited","filename":"main.ts","patch":[{"diffs":[[-1,"input.onPinPressed(TouchPin.P0, function on_pin_pressed_p0() {\n \n Radio_Group += 1\n})\n"],[0,"inpu"]],"start1":0,"start2":0,"length1":96,"length2":4},{"diffs":[[0,"unction "],[-1,"on_button_pressed_a"],[0,"() {\n "]],"start1":33,"start2":33,"length1":35,"length2":16},{"diffs":[[0,"ion "],[-1,"on_button_pressed_ab"],[0,"() {"]],"start1":114,"start2":114,"length1":28,"length2":8},{"diffs":[[0,"ion "],[-1,"on_received_string"],[0,"(rec"]],"start1":189,"start2":189,"length1":26,"length2":8},{"diffs":[[0,"ring"],[-1,": string"],[0,") {\n"]],"start1":204,"start2":204,"length1":16,"length2":8},{"diffs":[[0,"ion "],[-1,"on_button_pressed_b"],[0,"() {"]],"start1":289,"start2":289,"length1":27,"length2":8},{"diffs":[[0,"ion "],[-1,"on_pin_pressed_p1"],[0,"() {"]],"start1":367,"start2":367,"length1":25,"length2":8},{"diffs":[[0,"t!\")\n})\n"],[1,"let Password = 0\n"],[0,"let Radi"]],"start1":403,"start2":403,"length1":16,"length2":33},{"diffs":[[0,"ion "],[-1,"on_forever"],[0,"() {"]],"start1":485,"start2":485,"length1":18,"length2":8},{"diffs":[[0,"_Group)\n"],[1," if (input.pinIsPressed(TouchPin.P2) && input.pinIsPressed(TouchPin.P0)) {\n radio.setGroup(255)\n while (!(input.buttonIsPressed(Button.A))) {\n Password += 1\n basic.showNumber(Password)\n if (input.buttonIsPressed(Button.B)) {\n \t\n }\n }\n radio.setGroup(117)\n radio.sendValue(\"I know the password!\", Password)\n Radio_Group = 1\n }\n"],[0,"})\n"]],"start1":518,"start2":518,"length1":11,"length2":440}]},{"type":"edited","filename":"pxt.json","patch":[{"diffs":[[0,"\": \""],[-1,"Micro Chat"],[1,"Fun with Radio"],[0,"\",\n "]],"start1":11,"start2":11,"length1":18,"length2":22},{"diffs":[[0,"ory\""],[-1,",\n \"main.py\""],[0,"\n "]],"start1":265,"start2":265,"length1":27,"length2":8},{"diffs":[[0,"\": \""],[-1,"py"],[1,"blocks"],[0,"prj\""]],"start1":297,"start2":297,"length1":10,"length2":14}]},{"type":"added","filename":"main.py","value":"def on_pin_pressed_p0():\n global Radio_Group\n Radio_Group += 1\ninput.on_pin_pressed(TouchPin.P0, on_pin_pressed_p0)\n\ndef on_button_pressed_a():\n radio.send_string(\"Hi\")\ninput.on_button_pressed(Button.A, on_button_pressed_a)\n\ndef on_button_pressed_ab():\n radio.send_string(\"I'm Hungry\")\ninput.on_button_pressed(Button.AB, on_button_pressed_ab)\n\ndef on_received_string(receivedString):\n basic.show_string(receivedString)\nradio.on_received_string(on_received_string)\n\ndef on_button_pressed_b():\n radio.send_string(\"Bye!\")\ninput.on_button_pressed(Button.B, on_button_pressed_b)\n\ndef on_pin_pressed_p1():\n radio.send_string(\"Got it!\")\ninput.on_pin_pressed(TouchPin.P1, on_pin_pressed_p1)\n\nRadio_Group = 0\nradio.set_group(1)\n\ndef on_forever():\n radio.set_group(Radio_Group)\nbasic.forever(on_forever)\n"}]},{"timestamp":1731847871925,"editorVersion":"7.0.51","changes":[{"type":"edited","filename":"main.py","patch":[{"diffs":[[0,"p(1)"],[-1,"\nitem = 0"],[0,"\n\nde"]],"start1":735,"start2":735,"length1":17,"length2":8}]}]},{"timestamp":1731851140543,"editorVersion":"7.0.51","changes":[{"type":"edited","filename":"main.ts","patch":[{"diffs":[[0,"(1)\n"],[-1,"let item = 0\n"],[0,"basi"]],"start1":638,"start2":638,"length1":21,"length2":8}]}]},{"timestamp":1731851141424,"editorVersion":"7.0.51","changes":[{"type":"edited","filename":"main.blocks","patch":[{"diffs":[[0,"id=\""],[-1,"TQHAfm5rtZeV!5{iB^bw"],[1,"2RAZ0)^bVHs!Fi~U*y}K"],[0,"\">Radio"],[-1,"_"],[1," "],[0,"Grou"]],"start1":76,"start2":76,"length1":36,"length2":36},{"diffs":[[0,"le><"],[-1,"variable id=\"HNS{+9ABt$/nHP0^[.tJ\">item</variable><"],[0,"/var"]],"start1":121,"start2":121,"length1":59,"length2":8},{"diffs":[[0,"x=\"-"],[-1,"254"],[1,"166"],[0,"\" y=\"-"],[-1,"697"],[1,"578"],[0,"\"><s"]],"start1":165,"start2":165,"length1":20,"length2":20},{"diffs":[[0,"in=\"0\" max=\"255\""],[1," label=\"Id\""],[0," precision=\"0\"><"]],"start1":301,"start2":301,"length1":32,"length2":43},{"diffs":[[0,"SLIDER\">"],[-1,"0"],[1,"1"],[0,"</field>"]],"start1":367,"start2":367,"length1":17,"length2":17},{"diffs":[[0,"id=\""],[-1,"TQHAfm5rtZeV!5{iB^bw"],[1,"2RAZ0)^bVHs!Fi~U*y}K"],[0,"\">Radio"],[-1,"_"],[1," "],[0,"Grou"]],"start1":439,"start2":439,"length1":36,"length2":36},{"diffs":[[0,"x=\"-"],[-1,"17"],[0,"9"],[1,"1"],[0,"\" y=\"-"],[-1,"444"],[1,"325"],[0,"\"><f"]],"start1":559,"start2":559,"length1":20,"length2":19},{"diffs":[[0,"id=\""],[-1,"TQHAfm5rtZeV!5{iB^bw"],[1,"2RAZ0)^bVHs!Fi~U*y}K"],[0,"\">Radio"],[-1,"_"],[1," "],[0,"Grou"]],"start1":689,"start2":689,"length1":36,"length2":36},{"diffs":[[0,"pe=\""],[-1,"device_button_even"],[1,"pxt-on-star"],[0,"t\" x=\""],[-1,"213"],[1,"88"],[0,"\" y=\""],[-1,"-150\"><field name=\"NAME\">Button.A</field"],[1,"119\""],[0,"><st"]],"start1":862,"start2":862,"length1":80,"length2":36},{"diffs":[[0,"=\"radio_"],[-1,"datagram_send_string"],[1,"set_group"],[0,"\"><value"]],"start1":932,"start2":932,"length1":36,"length2":25},{"diffs":[[0,"p\"><value name=\""],[-1,"msg"],[1,"ID"],[0,"\"><shadow type=\""]],"start1":948,"start2":948,"length1":35,"length2":34},{"diffs":[[0,"\"><shadow type=\""],[-1,"text\""],[1,"math_number_minmax\"><mutation min=\"0\" max=\"255\" label=\"Id\" precision=\"0\"></mutation"],[0,"><field name=\"TE"]],"start1":966,"start2":966,"length1":37,"length2":115},{"diffs":[[0,"me=\""],[-1,"TEXT\">Hi"],[1,"SLIDER\">1"],[0,"</fi"]],"start1":1075,"start2":1075,"length1":16,"length2":17},{"diffs":[[0,"pe=\""],[-1,"pxt-on-start\" x=\"0\" y=\"0\"><statement name=\"HANDLER\"><block type=\"variables_set\"><field name=\"VAR\" id=\"HNS{+9ABt$/nHP0^[.tJ\">item</field><value name=\"VALUE\"><shadow type=\"math_number\"><field name=\"NUM\">0</field></shadow></value><next><block type=\"radio_set_group"],[1,"device_pin_event\" x=\"-183\" y=\"236\"><field name=\"name\">TouchPin.P1</field><statement name=\"HANDLER\"><block type=\"radio_datagram_send_string"],[0,"\"><v"]],"start1":1150,"start2":1150,"length1":269,"length2":146},{"diffs":[[0,"g\"><value name=\""],[-1,"ID"],[1,"msg"],[0,"\"><shadow type=\""]],"start1":1291,"start2":1291,"length1":34,"length2":35},{"diffs":[[0,"pe=\""],[-1,"math_number_minmax\"><mutation min=\"0\" max=\"255\" precision=\"0\"></mutation"],[1,"text\""],[0,"><fi"]],"start1":1322,"start2":1322,"length1":80,"length2":13},{"diffs":[[0,"field name=\""],[-1,"SLIDER\">1"],[1,"TEXT\">Got it!"],[0,"</field></sh"]],"start1":1333,"start2":1333,"length1":33,"length2":37},{"diffs":[[0,"k></"],[-1,"next></block></"],[0,"stat"]],"start1":1389,"start2":1389,"length1":23,"length2":8},{"diffs":[[0,"ck type=\"device_"],[-1,"pi"],[1,"butto"],[0,"n_event\" x=\"-334"]],"start1":1415,"start2":1415,"length1":34,"length2":37},{"diffs":[[0," x=\""],[-1,"-334"],[1,"193"],[0,"\" y=\""],[-1,"148"],[1,"269"],[0,"\"><f"]],"start1":1444,"start2":1444,"length1":20,"length2":19},{"diffs":[[0,"d name=\""],[-1,"name\">TouchPin.P1"],[1,"NAME\">Button.A"],[0,"</field>"]],"start1":1466,"start2":1466,"length1":33,"length2":30},{"diffs":[[0,"eld name=\"TEXT\">"],[-1,"Got it!"],[1,"Hi"],[0,"</field></shadow"]],"start1":1604,"start2":1604,"length1":39,"length2":34},{"diffs":[[0," x=\""],[-1,"42"],[1,"130"],[0,"\" y=\""],[-1,"313"],[1,"432"],[0,"\"><v"]],"start1":1709,"start2":1709,"length1":18,"length2":19},{"diffs":[[0,"\"text\"><"],[1,"shadow type=\"text\"><field name=\"TEXT\">Hello!</field></shadow><"],[0,"block ty"]],"start1":1988,"start2":1988,"length1":16,"length2":78},{"diffs":[[0,"x=\"-"],[-1,"338"],[1,"250"],[0,"\" y=\""],[-1,"430"],[1,"549"],[0,"\"><f"]],"start1":2216,"start2":2216,"length1":19,"length2":19},{"diffs":[[0,"x=\"-"],[-1,"353"],[1,"265"],[0,"\" y=\""],[-1,"682"],[1,"801"],[0,"\"><f"]],"start1":2483,"start2":2483,"length1":19,"length2":19}]},{"type":"edited","filename":"main.ts","patch":[{"diffs":[[0,"0, function "],[-1,"() {"],[1,"on_pin_pressed_p0() {\n "],[0,"\n Radio_G"]],"start1":29,"start2":29,"length1":28,"length2":50},{"diffs":[[0,"ton.A, function "],[1,"on_button_pressed_a"],[0,"() {\n radio.s"]],"start1":117,"start2":117,"length1":32,"length2":51},{"diffs":[[0,"on.AB, function "],[1,"on_button_pressed_ab"],[0,"() {\n radio.s"]],"start1":213,"start2":213,"length1":32,"length2":52},{"diffs":[[0,"unction "],[1,"on_received_string"],[0,"(receive"]],"start1":316,"start2":316,"length1":16,"length2":34},{"diffs":[[0,"edString"],[1,": string"],[0,") {\n "]],"start1":349,"start2":349,"length1":16,"length2":24},{"diffs":[[0,"ton.B, function "],[1,"on_button_pressed_b"],[0,"() {\n radio.s"]],"start1":434,"start2":434,"length1":32,"length2":51},{"diffs":[[0,"in.P1, function "],[1,"on_pin_pressed_p1"],[0,"() {\n radio.s"]],"start1":531,"start2":531,"length1":32,"length2":49},{"diffs":[[0,"= 0\n"],[-1,"let item = 0\n"],[0,"radi"]],"start1":620,"start2":620,"length1":21,"length2":8},{"diffs":[[0,"roup(1)\n"],[1,"let item = 0\n"],[0,"basic.fo"]],"start1":634,"start2":634,"length1":16,"length2":29},{"diffs":[[0,"unction "],[1,"on_forever"],[0,"() {\n "]],"start1":670,"start2":670,"length1":16,"length2":26}]},{"type":"edited","filename":"pxt.json","patch":[{"diffs":[[0,"itor\": \""],[-1,"blocks"],[1,"py"],[0,"prj\"\n}\n"]],"start1":308,"start2":308,"length1":21,"length2":17}]}]},{"timestamp":1731851169270,"editorVersion":"7.0.51","changes":[{"type":"edited","filename":"main.blocks","patch":[{"diffs":[[0,"ver\""],[-1," id=\"3*|TKL]ycG2/ZWf:[3C`\""],[0," x=\""]],"start1":211,"start2":211,"length1":34,"length2":8},{"diffs":[[0,"oup\""],[-1," id=\"MrvLz]dXl$-|_^u,0.EO\""],[0,"><va"]],"start1":285,"start2":285,"length1":34,"length2":8},{"diffs":[[0,"max\""],[-1," id=\"vt8zTjHn=r{DP;+an/O`\""],[0,"><mu"]],"start1":336,"start2":336,"length1":34,"length2":8},{"diffs":[[0,"get\""],[-1," id=\"b!C!Erlf1(XXo:Seg_u;\""],[0,"><fi"]],"start1":456,"start2":456,"length1":34,"length2":8},{"diffs":[[0,"ent\""],[-1," id=\"_Ewc9MuWv)|iT)gvHF:=\""],[0," x=\""]],"start1":594,"start2":594,"length1":34,"length2":8},{"diffs":[[0,"nge\""],[-1," id=\"Q]GN3-;Y[e@X~hyPKI6e\""],[0,"><fi"]],"start1":707,"start2":707,"length1":34,"length2":8},{"diffs":[[0,"ber\""],[-1," id=\"rG9_O?C?]6aQL}yrZlwD\""],[0,"><fi"]],"start1":817,"start2":817,"length1":34,"length2":8},{"diffs":[[0,"ent\""],[-1," id=\"K:,22}i6z6%U4A94q`Et\""],[0," x=\""]],"start1":923,"start2":923,"length1":34,"length2":8},{"diffs":[[0,"ing\""],[-1," id=\"`w%o?Rb)A5Ip=VM1Mj(]\""],[0,"><va"]],"start1":1042,"start2":1042,"length1":34,"length2":8},{"diffs":[[0,"ext\""],[-1," id=\"t]NjGRMVP,1G_RMyD2Tf\""],[0,"><fi"]],"start1":1080,"start2":1080,"length1":34,"length2":8},{"diffs":[[0,"art\""],[-1," id=\"r7{17vDD;fqaV,j#*em1\""],[0," x=\""]],"start1":1181,"start2":1181,"length1":34,"length2":8},{"diffs":[[0,"set\""],[-1," id=\"N6VZrHN|nek`DOnelpeH\""],[0,"><fi"]],"start1":1247,"start2":1247,"length1":34,"length2":8},{"diffs":[[0,"ber\""],[-1," id=\"UU4zlPj6@V7{Cz9;[/1O\""],[0,"><fi"]],"start1":1350,"start2":1350,"length1":34,"length2":8},{"diffs":[[0,"oup\""],[-1," id=\"bxa#WX399g0yn#=oIp^;\""],[0,"><va"]],"start1":1430,"start2":1430,"length1":34,"length2":8},{"diffs":[[0,"max\""],[-1," id=\"sf4{D.)$@5Ugtv0J_W$0\""],[0,"><mu"]],"start1":1481,"start2":1481,"length1":34,"length2":8},{"diffs":[[0,"ent\""],[-1," id=\"X2`LG/z(+|}B^gf9z,+%\""],[0," x=\""]],"start1":1655,"start2":1655,"length1":34,"length2":8},{"diffs":[[0,"ing\""],[-1," id=\",ZCm%SI[Ct(%bJYy6|9t\""],[0,"><va"]],"start1":1777,"start2":1777,"length1":34,"length2":8},{"diffs":[[0,"ext\""],[-1," id=\"Rr6;kR3dr0t=7G#.zzOJ\""],[0,"><fi"]],"start1":1815,"start2":1815,"length1":34,"length2":8},{"diffs":[[0,"rag\""],[-1," id=\"(Rj;GMuL:x;irSrv$7+v\""],[0," x=\""]],"start1":1929,"start2":1929,"length1":34,"length2":8},{"diffs":[[0,"ing\""],[-1," id=\"#^Rzfl94AcUm[{f7IzFC\""],[0,"><mu"]],"start1":2031,"start2":2031,"length1":34,"length2":8},{"diffs":[[0,"age\""],[-1," id=\"x|QAn=FQwp^;b[hN**rL\""],[0,"><va"]],"start1":2194,"start2":2194,"length1":34,"length2":8},{"diffs":[[0,"ing\""],[-1," id=\"I7M/tUgV=+oAeY8d5eVi\""],[0,"><fi"]],"start1":2252,"start2":2252,"length1":34,"length2":8},{"diffs":[[0,"ent\""],[-1," id=\"Uvco:Xlwm[Th*OnjWgO5\""],[0," x=\""]],"start1":2372,"start2":2372,"length1":34,"length2":8},{"diffs":[[0,"ing\""],[-1," id=\"dw229/F(Sz-,lcvy=N*$\""],[0,"><va"]],"start1":2491,"start2":2491,"length1":34,"length2":8},{"diffs":[[0,"ext\""],[-1," id=\"~X.eY:qopYH]!_D#F,X7\""],[0,"><fi"]],"start1":2529,"start2":2529,"length1":34,"length2":8},{"diffs":[[0,"ent\""],[-1," id=\"-fQg=w2gu$8#v`h`~Z7C\""],[0," x=\""]],"start1":2639,"start2":2639,"length1":34,"length2":8},{"diffs":[[0,"ing\""],[-1," id=\"O=hf4*Luv0~8vV^82JP+\""],[0,"><va"]],"start1":2759,"start2":2759,"length1":34,"length2":8},{"diffs":[[0,"ext\""],[-1," id=\"RLp;F`bFVX$f@J`mPTK[\""],[0,"><fi"]],"start1":2797,"start2":2797,"length1":34,"length2":8}]}]},{"timestamp":1733502644188,"editorVersion":"7.0.51","changes":[{"type":"edited","filename":"pxt.json","patch":[{"diffs":[[0," ],\n"],[-1," \"testFiles\": [\n \"test.ts\"\n ],\n"],[0," "]],"start1":288,"start2":288,"length1":52,"length2":8}]},{"type":"added","filename":"test.ts","value":"// tests go here; this will not be compiled when this package is used as an extension.\n"}]}],"snapshots":[{"timestamp":1731846265996,"editorVersion":"7.0.51","text":{"main.blocks":"<xml xmlns=\"http://www.w3.org/1999/xhtml\">\n <block type=\"pxt-on-start\"></block>\n <block type=\"device_forever\"></block>\n</xml>","main.ts":"","README.md":"","pxt.json":"{\n \"name\": \"Fun with Radio\",\n \"description\": \"\",\n \"dependencies\": {\n \"core\": \"*\",\n \"radio\": \"*\",\n \"microphone\": \"*\"\n },\n \"files\": [\n \"main.blocks\",\n \"main.ts\",\n \"README.md\"\n ],\n \"preferredEditor\": \"blocksprj\",\n \"additionalFilePaths\": []\n}\n"}},{"timestamp":1731851140543,"editorVersion":"7.0.51","text":{"main.blocks":"<xml xmlns=\"https://developers.google.com/blockly/xml\"><variables><variable id=\"2RAZ0)^bVHs!Fi~U*y}K\">Radio Group</variable></variables><block type=\"device_forever\" x=\"-166\" y=\"-578\"><statement name=\"HANDLER\"><block type=\"radio_set_group\"><value name=\"ID\"><shadow type=\"math_number_minmax\"><mutation min=\"0\" max=\"255\" label=\"Id\" precision=\"0\"></mutation><field name=\"SLIDER\">1</field></shadow><block type=\"variables_get\"><field name=\"VAR\" id=\"2RAZ0)^bVHs!Fi~U*y}K\">Radio Group</field></block></value></block></statement></block><block type=\"device_pin_event\" x=\"-91\" y=\"-325\"><field name=\"name\">TouchPin.P0</field><statement name=\"HANDLER\"><block type=\"variables_change\"><field name=\"VAR\" id=\"2RAZ0)^bVHs!Fi~U*y}K\">Radio Group</field><value name=\"VALUE\"><shadow type=\"math_number\"><field name=\"NUM\">1</field></shadow></value></block></statement></block><block type=\"pxt-on-start\" x=\"88\" y=\"119\"><statement name=\"HANDLER\"><block type=\"radio_set_group\"><value name=\"ID\"><shadow type=\"math_number_minmax\"><mutation min=\"0\" max=\"255\" label=\"Id\" precision=\"0\"></mutation><field name=\"SLIDER\">1</field></shadow></value></block></statement></block><block type=\"device_pin_event\" x=\"-183\" y=\"236\"><field name=\"name\">TouchPin.P1</field><statement name=\"HANDLER\"><block type=\"radio_datagram_send_string\"><value name=\"msg\"><shadow type=\"text\"><field name=\"TEXT\">Got it!</field></shadow></value></block></statement></block><block type=\"device_button_event\" x=\"193\" y=\"269\"><field name=\"NAME\">Button.A</field><statement name=\"HANDLER\"><block type=\"radio_datagram_send_string\"><value name=\"msg\"><shadow type=\"text\"><field name=\"TEXT\">Hi</field></shadow></value></block></statement></block><block type=\"radio_on_string_drag\" x=\"130\" y=\"432\"><value name=\"HANDLER_DRAG_PARAM_receivedString\"><block type=\"argument_reporter_string\"><mutation duplicateondrag=\"true\"></mutation><field name=\"VALUE\">receivedString</field></block></value><statement name=\"HANDLER\"><block type=\"device_print_message\"><value name=\"text\"><shadow type=\"text\"><field name=\"TEXT\">Hello!</field></shadow><block type=\"argument_reporter_string\"><field name=\"VALUE\">receivedString</field></block></value></block></statement></block><block type=\"device_button_event\" x=\"-250\" y=\"549\"><field name=\"NAME\">Button.B</field><statement name=\"HANDLER\"><block type=\"radio_datagram_send_string\"><value name=\"msg\"><shadow type=\"text\"><field name=\"TEXT\">Bye!</field></shadow></value></block></statement></block><block type=\"device_button_event\" x=\"-265\" y=\"801\"><field name=\"NAME\">Button.AB</field><statement name=\"HANDLER\"><block type=\"radio_datagram_send_string\"><value name=\"msg\"><shadow type=\"text\"><field name=\"TEXT\">I'm Hungry</field></shadow></value></block></statement></block></xml>","main.ts":"","README.md":"","pxt.json":"{\n \"name\": \"Micro Chat\",\n \"description\": \"\",\n \"dependencies\": {\n \"core\": \"*\",\n \"radio\": \"*\",\n \"microphone\": \"*\"\n },\n \"files\": [\n \"main.blocks\",\n \"main.ts\",\n \"README.md\",\n \"pxt.json\",\n \"_history\",\n \"main.py\"\n ],\n \"preferredEditor\": \"pyprj\"\n}\n","_history":"{\"entries\":[{\"timestamp\":1731846265997,\"editorVersion\":\"7.0.51\",\"changes\":[{\"type\":\"edited\",\"filename\":\"main.blocks\",\"patch\":[{\"diffs\":[[0,\"http\"],[-1,\"s\"],[0,\"://\"],[-1,\"developers.google.com/blockly/xml\\\"><variables><variable id=\\\"2RAZ0)^bVHs!Fi~U*y}K\\\">Radio Group</variable></variables><block type=\\\"device_forever\\\" x=\\\"-116\\\" y=\\\"-394\\\"><statement name=\\\"HANDLER\\\"><block type=\\\"radio_set_group\\\"><value name=\\\"ID\\\"><shadow type=\\\"math_number_minmax\\\"><mutation min=\\\"0\\\" max=\\\"255\\\" label=\\\"Id\\\" precision=\\\"0\\\"></mutation><field name=\\\"SLIDER\\\">1</field></shadow><block type=\\\"variables_get\\\"><field name=\\\"VAR\\\" id=\\\"2RAZ0)^bVHs!Fi~U*y}K\\\">Radio Group</field></block></value><next><block type=\\\"controls_if\\\"><value name=\\\"IF0\\\"><shadow type=\\\"logic_boolean\\\"><field name=\\\"BOOL\\\">TRUE</field></shadow><block type=\\\"logic_operation\\\"><field name=\\\"OP\\\">AND</field><value name=\\\"A\\\"><block type=\\\"device_pin_is_pressed\\\"><field name=\\\"NAME\\\">TouchPin.P2</field></block></value><value name=\\\"B\\\"><block type=\\\"device_pin_is_pressed\\\"><field name=\\\"NAME\\\">TouchPin.P0</field></block></value></block></value><statement name=\\\"DO0\\\"><block type=\\\"device_while\\\"><value name=\\\"COND\\\"><shadow type=\\\"logic_boolean\\\" disabled-reasons=\\\"MANUALLY_DISABLED\\\"><field name=\\\"BOOL\\\">FALSE</field></shadow><block type=\\\"logic_negate\\\"></block></value><next><block type=\\\"radio_set_group\\\"><value name=\\\"ID\\\"><shadow type=\\\"math_number_minmax\\\"><mutation min=\\\"0\\\" max=\\\"255\\\" label=\\\"Id\\\" precision=\\\"0\\\"></mutation><field name=\\\"SLIDER\\\">117</field></shadow></value><next><block type=\\\"radio_datagram_send_value\\\"><value name=\\\"name\\\"><shadow type=\\\"text\\\"><field name=\\\"TEXT\\\">I know the password!</field></shadow></value><value name=\\\"value\\\"><shadow type=\\\"math_number\\\"><field name=\\\"NUM\\\">1234</field></shadow></value><next><block type=\\\"variables_set\\\"><field name=\\\"VAR\\\" id=\\\"2RAZ0)^bVHs!Fi~U*y}K\\\">Radio Group</field><value name=\\\"VALUE\\\"><shadow type=\\\"math_number\\\"><field name=\\\"NUM\\\">1</field></shadow></value></block></next></block></next></block></next></block></statement></block></next></block></statement></block><block type=\\\"pxt-on-start\\\" x=\\\"88\\\" y=\\\"119\\\"><statement name=\\\"HANDLER\\\"><block type=\\\"radio_set_group\\\"><value name=\\\"ID\\\"><shadow type=\\\"math_number_minmax\\\"><mutation min=\\\"0\\\" max=\\\"255\\\" label=\\\"Id\\\" precision=\\\"0\\\"></mutation><field name=\\\"SLIDER\\\">1</field></shadow></value></block></statement></block><block type=\\\"device_button_event\\\" x=\\\"99\\\" y=\\\"275\\\"><field name=\\\"NAME\\\">Button.A</field><statement name=\\\"HANDLER\\\"><block type=\\\"radio_datagram_send_string\\\"><value name=\\\"msg\\\"><shadow type=\\\"text\\\"><field name=\\\"TEXT\\\">Hi</field></shadow></value></block></statement></block><block type=\\\"radio_on_string_drag\\\" x=\\\"130\\\" y=\\\"432\\\"><value name=\\\"HANDLER_DRAG_PARAM_receivedString\\\"><block type=\\\"argument_reporter_string\\\"><mutation duplicateondrag=\\\"true\\\"></mutation><field name=\\\"VALUE\\\">receivedString</field></block></value><statement name=\\\"HANDLER\\\"><block type=\\\"device_print_message\\\"><value name=\\\"text\\\"><shadow type=\\\"text\\\"><field name=\\\"TEXT\\\">Hello!</field></shadow><block type=\\\"argument_reporter_string\\\"><field name=\\\"VALUE\\\">receivedString</field></block></value></block></statement></block>\"],[1,\"www.w3.org/1999/xhtml\\\">\\n <block type=\\\"pxt-on-start\\\"></block>\\n <block type=\\\"device_forever\\\"></block>\\n\"],[0,\"</xm\"]],\"start1\":12,\"start2\":12,\"length1\":2912,\"length2\":113}]},{\"type\":\"edited\",\"filename\":\"main.ts\",\"patch\":[{\"diffs\":[[-1,\"input.onButtonPressed(Button.A, function () {\\n radio.sendString(\\\"Hi\\\")\\n})\\nradio.onReceivedString(function (receivedString) {\\n basic.showString(receivedString)\\n})\\nlet Radio_Group = 0\\nradio.setGroup(1)\\nbasic.forever(function () {\\n radio.setGroup(Radio_Group)\\n if (input.pinIsPressed(TouchPin.P2) && input.pinIsPressed(TouchPin.P0)) {\\n while (!(false)) {\\n \\t\\n }\\n radio.setGroup(117)\\n radio.sendValue(\\\"I know the password!\\\", 1234)\\n Radio_Group = 1\\n }\\n})\"],[0,\"\\n\"]],\"start1\":0,\"start2\":0,\"length1\":505,\"length2\":1}]},{\"type\":\"edited\",\"filename\":\"pxt.json\",\"patch\":[{\"diffs\":[[0,\".md\\\"\"],[-1,\",\\n \\\"pxt.json\\\",\\n \\\"_history\\\"\"],[0,\"\\n \"]],\"start1\":225,\"start2\":225,\"length1\":48,\"length2\":8},{\"diffs\":[[0,\"ocksprj\\\"\"],[1,\",\\n \\\"additionalFilePaths\\\": []\"],[0,\"\\n}\\n\"]],\"start1\":263,\"start2\":263,\"length1\":11,\"length2\":42}]}]},{\"timestamp\":1731846871726,\"editorVersion\":\"7.0.51\",\"changes\":[{\"type\":\"edited\",\"filename\":\"main.blocks\",\"patch\":[{\"diffs\":[[0,\"ock \"],[-1,\"type=\\\"device_note\\\" disabled-reasons=\\\"ORPHANED_BLOCK,MANUALLY_DISABLED\\\" x=\\\"-103\\\" y=\\\"171\\\"><field name=\\\"name\\\">262</field></block><block \"],[0,\"type\"]],\"start1\":2153,\"start2\":2153,\"length1\":141,\"length2\":8}]}]},{\"timestamp\":1731846924652,\"editorVersion\":\"7.0.51\",\"changes\":[{\"type\":\"edited\",\"filename\":\"main.blocks\",\"patch\":[{\"diffs\":[[0,\"le><\"],[-1,\"variable id=\\\"$P_aq_(,8a1LQG`OnGp.\\\">Password</variable><\"],[0,\"/var\"]],\"start1\":121,\"start2\":121,\"length1\":63,\"length2\":8},{\"diffs\":[[0,\"=\\\"-1\"],[-1,\"48\"],[1,\"16\"],[0,\"\\\" y=\\\"-\"],[-1,\"550\"],[1,\"394\"],[0,\"\\\"><s\"]],\"start1\":166,\"start2\":166,\"length1\":19,\"length2\":19},{\"diffs\":[[0,\"pe=\\\"\"],[-1,\"radio_set_group\\\"><value name=\\\"ID\\\"><shadow type=\\\"math_number_minmax\\\"><mutation min=\\\"0\\\" max=\\\"255\\\" label=\\\"Id\\\" precision=\\\"0\\\"></mutation><field name=\\\"SLIDER\\\">255</field></shadow></value><next><block type=\\\"device_while\\\"><value name=\\\"COND\\\"><shadow type=\\\"logic_boolean\\\" disabled-reasons=\\\"MANUALLY_DISABLED\\\"><field name=\\\"BOOL\\\">FALSE</field></shadow><block type=\\\"logic_negate\\\"><value name=\\\"BOOL\\\"><block type=\\\"device_get_button2\\\"><field name=\\\"NAME\\\">Button.A</field></block></value></block></value><statement name=\\\"DO\\\"><block type=\\\"variables_change\\\"><field name=\\\"VAR\\\" id=\\\"$P_aq_(,8a1LQG`OnGp.\\\">Password</field><value name=\\\"VALUE\\\"><shadow type=\\\"math_number\\\"><field name=\\\"NUM\\\">1</field></shadow></value><next><block type=\\\"device_show_number\\\"><value name=\\\"number\\\"><shadow type=\\\"math_number\\\"><field name=\\\"NUM\\\">0</field></shadow><block type=\\\"variables_get\\\"><field name=\\\"VAR\\\" id=\\\"$P_aq_(,8a1LQG`OnGp.\\\">Password</field></block></value><next><block type=\\\"controls_if\\\"><value name=\\\"IF0\\\"><shadow type=\\\"logic_boolean\\\"><field name=\\\"BOOL\\\">TRUE</field></shadow><block type=\\\"device_get_button2\\\"><field name=\\\"NAME\\\">Button.B</field></block></value></block></next></block></next></block></statement\"],[1,\"device_while\\\"><value name=\\\"COND\\\"><shadow type=\\\"logic_boolean\\\" disabled-reasons=\\\"MANUALLY_DISABLED\\\"><field name=\\\"BOOL\\\">FALSE</field></shadow><block type=\\\"logic_negate\\\"></block></value\"],[0,\"><ne\"]],\"start1\":936,\"start2\":936,\"length1\":1176,\"length2\":190},{\"diffs\":[[0,\"ow><\"],[-1,\"block type=\\\"variables_get\\\"><field name=\\\"VAR\\\" id=\\\"$P_aq_(,8a1LQG`OnGp.\\\">Password</field></block><\"],[0,\"/val\"]],\"start1\":1555,\"start2\":1555,\"length1\":104,\"length2\":8},{\"diffs\":[[0,\"t></block></\"],[-1,\"next></block></\"],[0,\"statement></\"]],\"start1\":1797,\"start2\":1797,\"length1\":39,\"length2\":24},{\"diffs\":[[0,\"ice_\"],[-1,\"pin_event\\\" x=\\\"-183\\\" y=\\\"236\\\"><field name=\\\"name\\\">TouchPin.P1</field><statement name=\\\"HANDLER\\\"><block type=\\\"radio_datagram_send_string\\\"><value name=\\\"msg\\\"><shadow type=\\\"text\\\"><field name=\\\"TEXT\\\">Got it!</field></shadow></value></block></statement\"],[1,\"note\\\" disabled-reasons=\\\"ORPHANED_BLOCK,MANUALLY_DISABLED\\\" x=\\\"-103\\\" y=\\\"171\\\"><field name=\\\"name\\\">262</field\"],[0,\"></b\"]],\"start1\":2166,\"start2\":2166,\"length1\":249,\"length2\":112},{\"diffs\":[[0,\" x=\\\"\"],[-1,\"193\"],[1,\"99\"],[0,\"\\\" y=\\\"2\"],[-1,\"69\"],[1,\"75\"],[0,\"\\\"><f\"]],\"start1\":2316,\"start2\":2316,\"length1\":19,\"length2\":18},{\"diffs\":[[0,\"ck><\"],[-1,\"block type=\\\"device_button_event\\\" x=\\\"-250\\\" y=\\\"549\\\"><field name=\\\"NAME\\\">Button.B</field><statement name=\\\"HANDLER\\\"><block type=\\\"radio_datagram_send_string\\\"><value name=\\\"msg\\\"><shadow type=\\\"text\\\"><field name=\\\"TEXT\\\">Bye!</field></shadow></value></block></statement></block><block type=\\\"device_button_event\\\" x=\\\"-265\\\" y=\\\"801\\\"><field name=\\\"NAME\\\">Button.AB</field><statement name=\\\"HANDLER\\\"><block type=\\\"radio_datagram_send_string\\\"><value name=\\\"msg\\\"><shadow type=\\\"text\\\"><field name=\\\"TEXT\\\">I'm Hungry</field></shadow></value></block></statement></block><\"],[0,\"/xml\"]],\"start1\":3050,\"start2\":3050,\"length1\":549,\"length2\":8}]},{\"type\":\"edited\",\"filename\":\"main.ts\",\"patch\":[{\"diffs\":[[0,\"\\n})\\n\"],[-1,\"input.onButtonPressed(Button.AB, function () {\\n radio.sendString(\\\"I'm Hungry\\\")\\n})\\n\"],[0,\"radi\"]],\"start1\":72,\"start2\":72,\"length1\":93,\"length2\":8},{\"diffs\":[[0,\"\\n})\\n\"],[-1,\"input.onButtonPressed(Button.B, function () {\\n radio.sendString(\\\"Bye!\\\")\\n})\\ninput.onPinPressed(TouchPin.P1, function () {\\n radio.sendString(\\\"Got it!\\\")\\n})\\nlet Password = 0\\n\"],[0,\"let \"]],\"start1\":163,\"start2\":163,\"length1\":184,\"length2\":8},{\"diffs\":[[0,\" \"],[-1,\"radio.setGroup(255)\\n while (!(input.buttonIsPressed(Button.A))) {\\n Password += 1\\n basic.showNumber(Password)\\n if (input.buttonIsPressed(Button.B\"],[1,\"while (!(false\"],[0,\")) {\"]],\"start1\":347,\"start2\":347,\"length1\":192,\"length2\":22},{\"diffs\":[[0,\" \"],[-1,\" \"],[-1,\" \\t\\n }\"],[1,\"\\t\"],[0,\"\\n \"]],\"start1\":374,\"start2\":374,\"length1\":27,\"length2\":9},{\"diffs\":[[0,\"!\\\", \"],[-1,\"Password\"],[1,\"1234\"],[0,\")\\n \"]],\"start1\":462,\"start2\":462,\"length1\":16,\"length2\":12}]}]},{\"timestamp\":1731847490415,\"editorVersion\":\"7.0.51\",\"changes\":[{\"type\":\"edited\",\"filename\":\"main.blocks\",\"patch\":[{\"diffs\":[[0,\"riable><\"],[1,\"variable id=\\\"$P_aq_(,8a1LQG`OnGp.\\\">Password</variable><\"],[0,\"/variabl\"]],\"start1\":117,\"start2\":117,\"length1\":16,\"length2\":71},{\"diffs\":[[0,\"=\\\"-1\"],[-1,\"66\"],[1,\"48\"],[0,\"\\\" y=\\\"-5\"],[-1,\"78\"],[1,\"50\"],[0,\"\\\"><s\"]],\"start1\":221,\"start2\":221,\"length1\":19,\"length2\":19},{\"diffs\":[[0,\"ue><\"],[-1,\"/block></statement></block><block type=\\\"device_pin_event\\\" x=\\\"-91\\\" y=\\\"-325\\\"><field name=\\\"name\\\">TouchPin.P0</field><statement name=\\\"HANDLER\\\"><block type=\\\"variables_change\"],[1,\"next><block type=\\\"controls_if\\\"><value name=\\\"IF0\\\"><shadow type=\\\"logic_boolean\\\"><field name=\\\"BOOL\\\">TRUE</field></shadow><block type=\\\"logic_operation\\\"><field name=\\\"OP\\\">AND</field><value name=\\\"A\\\"><block type=\\\"device_pin_is_pressed\\\"><field name=\\\"NAME\\\">TouchPin.P2</field></block></value><value name=\\\"B\\\"><block type=\\\"device_pin_is_pressed\\\"><field name=\\\"NAME\\\">TouchPin.P0</field></block></value></block></value><statement name=\\\"DO0\\\"><block type=\\\"radio_set_group\\\"><value name=\\\"ID\\\"><shadow type=\\\"math_number_minmax\\\"><mutation min=\\\"0\\\" max=\\\"255\\\" label=\\\"Id\\\" precision=\\\"0\\\"></mutation><field name=\\\"SLIDER\\\">255</field></shadow></value><next><block type=\\\"device_while\\\"><value name=\\\"COND\\\"><shadow type=\\\"logic_boolean\\\" disabled-reasons=\\\"MANUALLY_DISABLED\\\"><field name=\\\"BOOL\\\">FALSE</field></shadow><block type=\\\"logic_negate\\\"><value name=\\\"BOOL\\\"><block type=\\\"device_get_button2\\\"><field name=\\\"NAME\\\">Button.A</field></block></value></block></value><statement name=\\\"DO\\\"><block type=\\\"variables_change\\\"><field name=\\\"VAR\\\" id=\\\"$P_aq_(,8a1LQG`OnGp.\\\">Password</field><value name=\\\"VALUE\\\"><shadow type=\\\"math_number\\\"><field name=\\\"NUM\\\">1</field></shadow></value><next><block type=\\\"device_show_number\\\"><value name=\\\"number\\\"><shadow type=\\\"math_number\\\"><field name=\\\"NUM\\\">0</field></shadow><block type=\\\"variables_get\\\"><field name=\\\"VAR\\\" id=\\\"$P_aq_(,8a1LQG`OnGp.\\\">Password</field></block></value><next><block type=\\\"controls_if\\\"><value name=\\\"IF0\\\"><shadow type=\\\"logic_boolean\\\"><field name=\\\"BOOL\\\">TRUE</field></shadow><block type=\\\"device_get_button2\\\"><field name=\\\"NAME\\\">Button.B</field></block></value></block></next></block></next></block></statement><next><block type=\\\"radio_set_group\\\"><value name=\\\"ID\\\"><shadow type=\\\"math_number_minmax\\\"><mutation min=\\\"0\\\" max=\\\"255\\\" label=\\\"Id\\\" precision=\\\"0\\\"></mutation><field name=\\\"SLIDER\\\">117</field></shadow></value><next><block type=\\\"radio_datagram_send_value\\\"><value name=\\\"name\\\"><shadow type=\\\"text\\\"><field name=\\\"TEXT\\\">I know the password!</field></shadow></value><value name=\\\"value\\\"><shadow type=\\\"math_number\\\"><field name=\\\"NUM\\\">1234</field></shadow><block type=\\\"variables_get\\\"><field name=\\\"VAR\\\" id=\\\"$P_aq_(,8a1LQG`OnGp.\\\">Password</field></block></value><next><block type=\\\"variables_set\"],[0,\"\\\"><f\"]],\"start1\":552,\"start2\":552,\"length1\":176,\"length2\":2187},{\"diffs\":[[0,\"value></block></\"],[1,\"next></block></next></block></next></block></next></block></statement></block></next></block></\"],[0,\"statement></bloc\"]],\"start1\":2885,\"start2\":2885,\"length1\":32,\"length2\":127}]},{\"type\":\"edited\",\"filename\":\"main.ts\",\"patch\":[{\"diffs\":[[-1,\"input.onPinPressed(TouchPin.P0, function on_pin_pressed_p0() {\\n \\n Radio_Group += 1\\n})\\n\"],[0,\"inpu\"]],\"start1\":0,\"start2\":0,\"length1\":96,\"length2\":4},{\"diffs\":[[0,\"unction \"],[-1,\"on_button_pressed_a\"],[0,\"() {\\n \"]],\"start1\":33,\"start2\":33,\"length1\":35,\"length2\":16},{\"diffs\":[[0,\"ion \"],[-1,\"on_button_pressed_ab\"],[0,\"() {\"]],\"start1\":114,\"start2\":114,\"length1\":28,\"length2\":8},{\"diffs\":[[0,\"ion \"],[-1,\"on_received_string\"],[0,\"(rec\"]],\"start1\":189,\"start2\":189,\"length1\":26,\"length2\":8},{\"diffs\":[[0,\"ring\"],[-1,\": string\"],[0,\") {\\n\"]],\"start1\":204,\"start2\":204,\"length1\":16,\"length2\":8},{\"diffs\":[[0,\"ion \"],[-1,\"on_button_pressed_b\"],[0,\"() {\"]],\"start1\":289,\"start2\":289,\"length1\":27,\"length2\":8},{\"diffs\":[[0,\"ion \"],[-1,\"on_pin_pressed_p1\"],[0,\"() {\"]],\"start1\":367,\"start2\":367,\"length1\":25,\"length2\":8},{\"diffs\":[[0,\"t!\\\")\\n})\\n\"],[1,\"let Password = 0\\n\"],[0,\"let Radi\"]],\"start1\":403,\"start2\":403,\"length1\":16,\"length2\":33},{\"diffs\":[[0,\"ion \"],[-1,\"on_forever\"],[0,\"() {\"]],\"start1\":485,\"start2\":485,\"length1\":18,\"length2\":8},{\"diffs\":[[0,\"_Group)\\n\"],[1,\" if (input.pinIsPressed(TouchPin.P2) && input.pinIsPressed(TouchPin.P0)) {\\n radio.setGroup(255)\\n while (!(input.buttonIsPressed(Button.A))) {\\n Password += 1\\n basic.showNumber(Password)\\n if (input.buttonIsPressed(Button.B)) {\\n \\t\\n }\\n }\\n radio.setGroup(117)\\n radio.sendValue(\\\"I know the password!\\\", Password)\\n Radio_Group = 1\\n }\\n\"],[0,\"})\\n\"]],\"start1\":518,\"start2\":518,\"length1\":11,\"length2\":440}]},{\"type\":\"edited\",\"filename\":\"pxt.json\",\"patch\":[{\"diffs\":[[0,\"\\\": \\\"\"],[-1,\"Micro Chat\"],[1,\"Fun with Radio\"],[0,\"\\\",\\n \"]],\"start1\":11,\"start2\":11,\"length1\":18,\"length2\":22},{\"diffs\":[[0,\"ory\\\"\"],[-1,\",\\n \\\"main.py\\\"\"],[0,\"\\n \"]],\"start1\":265,\"start2\":265,\"length1\":27,\"length2\":8},{\"diffs\":[[0,\"\\\": \\\"\"],[-1,\"py\"],[1,\"blocks\"],[0,\"prj\\\"\"]],\"start1\":297,\"start2\":297,\"length1\":10,\"length2\":14}]},{\"type\":\"added\",\"filename\":\"main.py\",\"value\":\"def on_pin_pressed_p0():\\n global Radio_Group\\n Radio_Group += 1\\ninput.on_pin_pressed(TouchPin.P0, on_pin_pressed_p0)\\n\\ndef on_button_pressed_a():\\n radio.send_string(\\\"Hi\\\")\\ninput.on_button_pressed(Button.A, on_button_pressed_a)\\n\\ndef on_button_pressed_ab():\\n radio.send_string(\\\"I'm Hungry\\\")\\ninput.on_button_pressed(Button.AB, on_button_pressed_ab)\\n\\ndef on_received_string(receivedString):\\n basic.show_string(receivedString)\\nradio.on_received_string(on_received_string)\\n\\ndef on_button_pressed_b():\\n radio.send_string(\\\"Bye!\\\")\\ninput.on_button_pressed(Button.B, on_button_pressed_b)\\n\\ndef on_pin_pressed_p1():\\n radio.send_string(\\\"Got it!\\\")\\ninput.on_pin_pressed(TouchPin.P1, on_pin_pressed_p1)\\n\\nRadio_Group = 0\\nradio.set_group(1)\\n\\ndef on_forever():\\n radio.set_group(Radio_Group)\\nbasic.forever(on_forever)\\n\"}]}],\"snapshots\":[{\"timestamp\":1731846265996,\"editorVersion\":\"7.0.51\",\"text\":{\"main.blocks\":\"<xml xmlns=\\\"http://www.w3.org/1999/xhtml\\\">\\n <block type=\\\"pxt-on-start\\\"></block>\\n <block type=\\\"device_forever\\\"></block>\\n</xml>\",\"main.ts\":\"\",\"README.md\":\"\",\"pxt.json\":\"{\\n \\\"name\\\": \\\"Fun with Radio\\\",\\n \\\"description\\\": \\\"\\\",\\n \\\"dependencies\\\": {\\n \\\"core\\\": \\\"*\\\",\\n \\\"radio\\\": \\\"*\\\",\\n \\\"microphone\\\": \\\"*\\\"\\n },\\n \\\"files\\\": [\\n \\\"main.blocks\\\",\\n \\\"main.ts\\\",\\n \\\"README.md\\\"\\n ],\\n \\\"preferredEditor\\\": \\\"blocksprj\\\",\\n \\\"additionalFilePaths\\\": []\\n}\\n\"}}],\"shares\":[],\"lastSaveTime\":1731847871925}","main.py":"def on_pin_pressed_p0():\n global Radio_Group\n Radio_Group += 1\ninput.on_pin_pressed(TouchPin.P0, on_pin_pressed_p0)\n\ndef on_button_pressed_a():\n radio.send_string(\"Hi\")\ninput.on_button_pressed(Button.A, on_button_pressed_a)\n\ndef on_button_pressed_ab():\n radio.send_string(\"I'm Hungry\")\ninput.on_button_pressed(Button.AB, on_button_pressed_ab)\n\ndef on_received_string(receivedString):\n basic.show_string(receivedString)\nradio.on_received_string(on_received_string)\n\ndef on_button_pressed_b():\n radio.send_string(\"Bye!\")\ninput.on_button_pressed(Button.B, on_button_pressed_b)\n\ndef on_pin_pressed_p1():\n radio.send_string(\"Got it!\")\ninput.on_pin_pressed(TouchPin.P1, on_pin_pressed_p1)\n\nRadio_Group = 0\nradio.set_group(1)\n\ndef on_forever():\n radio.set_group(Radio_Group)\nbasic.forever(on_forever)\n"}},{"timestamp":1733502644188,"editorVersion":"7.0.51","text":{"main.blocks":"<xml xmlns=\"https://developers.google.com/blockly/xml\"><variables><variable id=\"TQHAfm5rtZeV!5{iB^bw\">Radio_Group</variable><variable id=\"HNS{+9ABt$/nHP0^[.tJ\">item</variable></variables><block type=\"device_forever\" x=\"-254\" y=\"-697\"><statement name=\"HANDLER\"><block type=\"radio_set_group\"><value name=\"ID\"><shadow type=\"math_number_minmax\"><mutation min=\"0\" max=\"255\" precision=\"0\"></mutation><field name=\"SLIDER\">0</field></shadow><block type=\"variables_get\"><field name=\"VAR\" id=\"TQHAfm5rtZeV!5{iB^bw\">Radio_Group</field></block></value></block></statement></block><block type=\"device_pin_event\" x=\"-179\" y=\"-444\"><field name=\"name\">TouchPin.P0</field><statement name=\"HANDLER\"><block type=\"variables_change\"><field name=\"VAR\" id=\"TQHAfm5rtZeV!5{iB^bw\">Radio_Group</field><value name=\"VALUE\"><shadow type=\"math_number\"><field name=\"NUM\">1</field></shadow></value></block></statement></block><block type=\"device_button_event\" x=\"213\" y=\"-150\"><field name=\"NAME\">Button.A</field><statement name=\"HANDLER\"><block type=\"radio_datagram_send_string\"><value name=\"msg\"><shadow type=\"text\"><field name=\"TEXT\">Hi</field></shadow></value></block></statement></block><block type=\"pxt-on-start\" x=\"0\" y=\"0\"><statement name=\"HANDLER\"><block type=\"variables_set\"><field name=\"VAR\" id=\"HNS{+9ABt$/nHP0^[.tJ\">item</field><value name=\"VALUE\"><shadow type=\"math_number\"><field name=\"NUM\">0</field></shadow></value><next><block type=\"radio_set_group\"><value name=\"ID\"><shadow type=\"math_number_minmax\"><mutation min=\"0\" max=\"255\" precision=\"0\"></mutation><field name=\"SLIDER\">1</field></shadow></value></block></next></block></statement></block><block type=\"device_pin_event\" x=\"-334\" y=\"148\"><field name=\"name\">TouchPin.P1</field><statement name=\"HANDLER\"><block type=\"radio_datagram_send_string\"><value name=\"msg\"><shadow type=\"text\"><field name=\"TEXT\">Got it!</field></shadow></value></block></statement></block><block type=\"radio_on_string_drag\" x=\"42\" y=\"313\"><value name=\"HANDLER_DRAG_PARAM_receivedString\"><block type=\"argument_reporter_string\"><mutation duplicateondrag=\"true\"></mutation><field name=\"VALUE\">receivedString</field></block></value><statement name=\"HANDLER\"><block type=\"device_print_message\"><value name=\"text\"><block type=\"argument_reporter_string\"><field name=\"VALUE\">receivedString</field></block></value></block></statement></block><block type=\"device_button_event\" x=\"-338\" y=\"430\"><field name=\"NAME\">Button.B</field><statement name=\"HANDLER\"><block type=\"radio_datagram_send_string\"><value name=\"msg\"><shadow type=\"text\"><field name=\"TEXT\">Bye!</field></shadow></value></block></statement></block><block type=\"device_button_event\" x=\"-353\" y=\"682\"><field name=\"NAME\">Button.AB</field><statement name=\"HANDLER\"><block type=\"radio_datagram_send_string\"><value name=\"msg\"><shadow type=\"text\"><field name=\"TEXT\">I'm Hungry</field></shadow></value></block></statement></block></xml>","main.ts":"","README.md":"","pxt.json":"{\n \"name\": \"Micro Chat\",\n \"description\": \"\",\n \"dependencies\": {\n \"core\": \"*\",\n \"radio\": \"*\",\n \"microphone\": \"*\"\n },\n \"files\": [\n \"main.blocks\",\n \"main.ts\",\n \"README.md\",\n \"pxt.json\",\n \"_history\",\n \"main.py\"\n ],\n \"targetVersions\": {\n \"branch\": \"v7.0.51\",\n \"tag\": \"v7.0.51\",\n \"commits\": \"https://github.com/microsoft/pxt-microbit/commits/c3819f016bd720d0eb86efea9a84dcd4fc7b2e1f\",\n \"target\": \"7.0.51\",\n \"pxt\": \"11.1.5\"\n },\n \"preferredEditor\": \"blocksprj\"\n}\n","_history":"{\"entries\":[{\"timestamp\":1731846265997,\"editorVersion\":\"7.0.51\",\"changes\":[{\"type\":\"edited\",\"filename\":\"main.blocks\",\"patch\":[{\"diffs\":[[0,\"http\"],[-1,\"s\"],[0,\"://\"],[-1,\"developers.google.com/blockly/xml\\\"><variables><variable id=\\\"2RAZ0)^bVHs!Fi~U*y}K\\\">Radio Group</variable></variables><block type=\\\"device_forever\\\" x=\\\"-116\\\" y=\\\"-394\\\"><statement name=\\\"HANDLER\\\"><block type=\\\"radio_set_group\\\"><value name=\\\"ID\\\"><shadow type=\\\"math_number_minmax\\\"><mutation min=\\\"0\\\" max=\\\"255\\\" label=\\\"Id\\\" precision=\\\"0\\\"></mutation><field name=\\\"SLIDER\\\">1</field></shadow><block type=\\\"variables_get\\\"><field name=\\\"VAR\\\" id=\\\"2RAZ0)^bVHs!Fi~U*y}K\\\">Radio Group</field></block></value><next><block type=\\\"controls_if\\\"><value name=\\\"IF0\\\"><shadow type=\\\"logic_boolean\\\"><field name=\\\"BOOL\\\">TRUE</field></shadow><block type=\\\"logic_operation\\\"><field name=\\\"OP\\\">AND</field><value name=\\\"A\\\"><block type=\\\"device_pin_is_pressed\\\"><field name=\\\"NAME\\\">TouchPin.P2</field></block></value><value name=\\\"B\\\"><block type=\\\"device_pin_is_pressed\\\"><field name=\\\"NAME\\\">TouchPin.P0</field></block></value></block></value><statement name=\\\"DO0\\\"><block type=\\\"device_while\\\"><value name=\\\"COND\\\"><shadow type=\\\"logic_boolean\\\" disabled-reasons=\\\"MANUALLY_DISABLED\\\"><field name=\\\"BOOL\\\">FALSE</field></shadow><block type=\\\"logic_negate\\\"></block></value><next><block type=\\\"radio_set_group\\\"><value name=\\\"ID\\\"><shadow type=\\\"math_number_minmax\\\"><mutation min=\\\"0\\\" max=\\\"255\\\" label=\\\"Id\\\" precision=\\\"0\\\"></mutation><field name=\\\"SLIDER\\\">117</field></shadow></value><next><block type=\\\"radio_datagram_send_value\\\"><value name=\\\"name\\\"><shadow type=\\\"text\\\"><field name=\\\"TEXT\\\">I know the password!</field></shadow></value><value name=\\\"value\\\"><shadow type=\\\"math_number\\\"><field name=\\\"NUM\\\">1234</field></shadow></value><next><block type=\\\"variables_set\\\"><field name=\\\"VAR\\\" id=\\\"2RAZ0)^bVHs!Fi~U*y}K\\\">Radio Group</field><value name=\\\"VALUE\\\"><shadow type=\\\"math_number\\\"><field name=\\\"NUM\\\">1</field></shadow></value></block></next></block></next></block></next></block></statement></block></next></block></statement></block><block type=\\\"pxt-on-start\\\" x=\\\"88\\\" y=\\\"119\\\"><statement name=\\\"HANDLER\\\"><block type=\\\"radio_set_group\\\"><value name=\\\"ID\\\"><shadow type=\\\"math_number_minmax\\\"><mutation min=\\\"0\\\" max=\\\"255\\\" label=\\\"Id\\\" precision=\\\"0\\\"></mutation><field name=\\\"SLIDER\\\">1</field></shadow></value></block></statement></block><block type=\\\"device_button_event\\\" x=\\\"99\\\" y=\\\"275\\\"><field name=\\\"NAME\\\">Button.A</field><statement name=\\\"HANDLER\\\"><block type=\\\"radio_datagram_send_string\\\"><value name=\\\"msg\\\"><shadow type=\\\"text\\\"><field name=\\\"TEXT\\\">Hi</field></shadow></value></block></statement></block><block type=\\\"radio_on_string_drag\\\" x=\\\"130\\\" y=\\\"432\\\"><value name=\\\"HANDLER_DRAG_PARAM_receivedString\\\"><block type=\\\"argument_reporter_string\\\"><mutation duplicateondrag=\\\"true\\\"></mutation><field name=\\\"VALUE\\\">receivedString</field></block></value><statement name=\\\"HANDLER\\\"><block type=\\\"device_print_message\\\"><value name=\\\"text\\\"><shadow type=\\\"text\\\"><field name=\\\"TEXT\\\">Hello!</field></shadow><block type=\\\"argument_reporter_string\\\"><field name=\\\"VALUE\\\">receivedString</field></block></value></block></statement></block>\"],[1,\"www.w3.org/1999/xhtml\\\">\\n <block type=\\\"pxt-on-start\\\"></block>\\n <block type=\\\"device_forever\\\"></block>\\n\"],[0,\"</xm\"]],\"start1\":12,\"start2\":12,\"length1\":2912,\"length2\":113}]},{\"type\":\"edited\",\"filename\":\"main.ts\",\"patch\":[{\"diffs\":[[-1,\"input.onButtonPressed(Button.A, function () {\\n radio.sendString(\\\"Hi\\\")\\n})\\nradio.onReceivedString(function (receivedString) {\\n basic.showString(receivedString)\\n})\\nlet Radio_Group = 0\\nradio.setGroup(1)\\nbasic.forever(function () {\\n radio.setGroup(Radio_Group)\\n if (input.pinIsPressed(TouchPin.P2) && input.pinIsPressed(TouchPin.P0)) {\\n while (!(false)) {\\n \\t\\n }\\n radio.setGroup(117)\\n radio.sendValue(\\\"I know the password!\\\", 1234)\\n Radio_Group = 1\\n }\\n})\"],[0,\"\\n\"]],\"start1\":0,\"start2\":0,\"length1\":505,\"length2\":1}]},{\"type\":\"edited\",\"filename\":\"pxt.json\",\"patch\":[{\"diffs\":[[0,\".md\\\"\"],[-1,\",\\n \\\"pxt.json\\\",\\n \\\"_history\\\"\"],[0,\"\\n \"]],\"start1\":225,\"start2\":225,\"length1\":48,\"length2\":8},{\"diffs\":[[0,\"ocksprj\\\"\"],[1,\",\\n \\\"additionalFilePaths\\\": []\"],[0,\"\\n}\\n\"]],\"start1\":263,\"start2\":263,\"length1\":11,\"length2\":42}]}]},{\"timestamp\":1731846871726,\"editorVersion\":\"7.0.51\",\"changes\":[{\"type\":\"edited\",\"filename\":\"main.blocks\",\"patch\":[{\"diffs\":[[0,\"ock \"],[-1,\"type=\\\"device_note\\\" disabled-reasons=\\\"ORPHANED_BLOCK,MANUALLY_DISABLED\\\" x=\\\"-103\\\" y=\\\"171\\\"><field name=\\\"name\\\">262</field></block><block \"],[0,\"type\"]],\"start1\":2153,\"start2\":2153,\"length1\":141,\"length2\":8}]}]},{\"timestamp\":1731846924652,\"editorVersion\":\"7.0.51\",\"changes\":[{\"type\":\"edited\",\"filename\":\"main.blocks\",\"patch\":[{\"diffs\":[[0,\"le><\"],[-1,\"variable id=\\\"$P_aq_(,8a1LQG`OnGp.\\\">Password</variable><\"],[0,\"/var\"]],\"start1\":121,\"start2\":121,\"length1\":63,\"length2\":8},{\"diffs\":[[0,\"=\\\"-1\"],[-1,\"48\"],[1,\"16\"],[0,\"\\\" y=\\\"-\"],[-1,\"550\"],[1,\"394\"],[0,\"\\\"><s\"]],\"start1\":166,\"start2\":166,\"length1\":19,\"length2\":19},{\"diffs\":[[0,\"pe=\\\"\"],[-1,\"radio_set_group\\\"><value name=\\\"ID\\\"><shadow type=\\\"math_number_minmax\\\"><mutation min=\\\"0\\\" max=\\\"255\\\" label=\\\"Id\\\" precision=\\\"0\\\"></mutation><field name=\\\"SLIDER\\\">255</field></shadow></value><next><block type=\\\"device_while\\\"><value name=\\\"COND\\\"><shadow type=\\\"logic_boolean\\\" disabled-reasons=\\\"MANUALLY_DISABLED\\\"><field name=\\\"BOOL\\\">FALSE</field></shadow><block type=\\\"logic_negate\\\"><value name=\\\"BOOL\\\"><block type=\\\"device_get_button2\\\"><field name=\\\"NAME\\\">Button.A</field></block></value></block></value><statement name=\\\"DO\\\"><block type=\\\"variables_change\\\"><field name=\\\"VAR\\\" id=\\\"$P_aq_(,8a1LQG`OnGp.\\\">Password</field><value name=\\\"VALUE\\\"><shadow type=\\\"math_number\\\"><field name=\\\"NUM\\\">1</field></shadow></value><next><block type=\\\"device_show_number\\\"><value name=\\\"number\\\"><shadow type=\\\"math_number\\\"><field name=\\\"NUM\\\">0</field></shadow><block type=\\\"variables_get\\\"><field name=\\\"VAR\\\" id=\\\"$P_aq_(,8a1LQG`OnGp.\\\">Password</field></block></value><next><block type=\\\"controls_if\\\"><value name=\\\"IF0\\\"><shadow type=\\\"logic_boolean\\\"><field name=\\\"BOOL\\\">TRUE</field></shadow><block type=\\\"device_get_button2\\\"><field name=\\\"NAME\\\">Button.B</field></block></value></block></next></block></next></block></statement\"],[1,\"device_while\\\"><value name=\\\"COND\\\"><shadow type=\\\"logic_boolean\\\" disabled-reasons=\\\"MANUALLY_DISABLED\\\"><field name=\\\"BOOL\\\">FALSE</field></shadow><block type=\\\"logic_negate\\\"></block></value\"],[0,\"><ne\"]],\"start1\":936,\"start2\":936,\"length1\":1176,\"length2\":190},{\"diffs\":[[0,\"ow><\"],[-1,\"block type=\\\"variables_get\\\"><field name=\\\"VAR\\\" id=\\\"$P_aq_(,8a1LQG`OnGp.\\\">Password</field></block><\"],[0,\"/val\"]],\"start1\":1555,\"start2\":1555,\"length1\":104,\"length2\":8},{\"diffs\":[[0,\"t></block></\"],[-1,\"next></block></\"],[0,\"statement></\"]],\"start1\":1797,\"start2\":1797,\"length1\":39,\"length2\":24},{\"diffs\":[[0,\"ice_\"],[-1,\"pin_event\\\" x=\\\"-183\\\" y=\\\"236\\\"><field name=\\\"name\\\">TouchPin.P1</field><statement name=\\\"HANDLER\\\"><block type=\\\"radio_datagram_send_string\\\"><value name=\\\"msg\\\"><shadow type=\\\"text\\\"><field name=\\\"TEXT\\\">Got it!</field></shadow></value></block></statement\"],[1,\"note\\\" disabled-reasons=\\\"ORPHANED_BLOCK,MANUALLY_DISABLED\\\" x=\\\"-103\\\" y=\\\"171\\\"><field name=\\\"name\\\">262</field\"],[0,\"></b\"]],\"start1\":2166,\"start2\":2166,\"length1\":249,\"length2\":112},{\"diffs\":[[0,\" x=\\\"\"],[-1,\"193\"],[1,\"99\"],[0,\"\\\" y=\\\"2\"],[-1,\"69\"],[1,\"75\"],[0,\"\\\"><f\"]],\"start1\":2316,\"start2\":2316,\"length1\":19,\"length2\":18},{\"diffs\":[[0,\"ck><\"],[-1,\"block type=\\\"device_button_event\\\" x=\\\"-250\\\" y=\\\"549\\\"><field name=\\\"NAME\\\">Button.B</field><statement name=\\\"HANDLER\\\"><block type=\\\"radio_datagram_send_string\\\"><value name=\\\"msg\\\"><shadow type=\\\"text\\\"><field name=\\\"TEXT\\\">Bye!</field></shadow></value></block></statement></block><block type=\\\"device_button_event\\\" x=\\\"-265\\\" y=\\\"801\\\"><field name=\\\"NAME\\\">Button.AB</field><statement name=\\\"HANDLER\\\"><block type=\\\"radio_datagram_send_string\\\"><value name=\\\"msg\\\"><shadow type=\\\"text\\\"><field name=\\\"TEXT\\\">I'm Hungry</field></shadow></value></block></statement></block><\"],[0,\"/xml\"]],\"start1\":3050,\"start2\":3050,\"length1\":549,\"length2\":8}]},{\"type\":\"edited\",\"filename\":\"main.ts\",\"patch\":[{\"diffs\":[[0,\"\\n})\\n\"],[-1,\"input.onButtonPressed(Button.AB, function () {\\n radio.sendString(\\\"I'm Hungry\\\")\\n})\\n\"],[0,\"radi\"]],\"start1\":72,\"start2\":72,\"length1\":93,\"length2\":8},{\"diffs\":[[0,\"\\n})\\n\"],[-1,\"input.onButtonPressed(Button.B, function () {\\n radio.sendString(\\\"Bye!\\\")\\n})\\ninput.onPinPressed(TouchPin.P1, function () {\\n radio.sendString(\\\"Got it!\\\")\\n})\\nlet Password = 0\\n\"],[0,\"let \"]],\"start1\":163,\"start2\":163,\"length1\":184,\"length2\":8},{\"diffs\":[[0,\" \"],[-1,\"radio.setGroup(255)\\n while (!(input.buttonIsPressed(Button.A))) {\\n Password += 1\\n basic.showNumber(Password)\\n if (input.buttonIsPressed(Button.B\"],[1,\"while (!(false\"],[0,\")) {\"]],\"start1\":347,\"start2\":347,\"length1\":192,\"length2\":22},{\"diffs\":[[0,\" \"],[-1,\" \"],[-1,\" \\t\\n }\"],[1,\"\\t\"],[0,\"\\n \"]],\"start1\":374,\"start2\":374,\"length1\":27,\"length2\":9},{\"diffs\":[[0,\"!\\\", \"],[-1,\"Password\"],[1,\"1234\"],[0,\")\\n \"]],\"start1\":462,\"start2\":462,\"length1\":16,\"length2\":12}]}]},{\"timestamp\":1731847490415,\"editorVersion\":\"7.0.51\",\"changes\":[{\"type\":\"edited\",\"filename\":\"main.blocks\",\"patch\":[{\"diffs\":[[0,\"riable><\"],[1,\"variable id=\\\"$P_aq_(,8a1LQG`OnGp.\\\">Password</variable><\"],[0,\"/variabl\"]],\"start1\":117,\"start2\":117,\"length1\":16,\"length2\":71},{\"diffs\":[[0,\"=\\\"-1\"],[-1,\"66\"],[1,\"48\"],[0,\"\\\" y=\\\"-5\"],[-1,\"78\"],[1,\"50\"],[0,\"\\\"><s\"]],\"start1\":221,\"start2\":221,\"length1\":19,\"length2\":19},{\"diffs\":[[0,\"ue><\"],[-1,\"/block></statement></block><block type=\\\"device_pin_event\\\" x=\\\"-91\\\" y=\\\"-325\\\"><field name=\\\"name\\\">TouchPin.P0</field><statement name=\\\"HANDLER\\\"><block type=\\\"variables_change\"],[1,\"next><block type=\\\"controls_if\\\"><value name=\\\"IF0\\\"><shadow type=\\\"logic_boolean\\\"><field name=\\\"BOOL\\\">TRUE</field></shadow><block type=\\\"logic_operation\\\"><field name=\\\"OP\\\">AND</field><value name=\\\"A\\\"><block type=\\\"device_pin_is_pressed\\\"><field name=\\\"NAME\\\">TouchPin.P2</field></block></value><value name=\\\"B\\\"><block type=\\\"device_pin_is_pressed\\\"><field name=\\\"NAME\\\">TouchPin.P0</field></block></value></block></value><statement name=\\\"DO0\\\"><block type=\\\"radio_set_group\\\"><value name=\\\"ID\\\"><shadow type=\\\"math_number_minmax\\\"><mutation min=\\\"0\\\" max=\\\"255\\\" label=\\\"Id\\\" precision=\\\"0\\\"></mutation><field name=\\\"SLIDER\\\">255</field></shadow></value><next><block type=\\\"device_while\\\"><value name=\\\"COND\\\"><shadow type=\\\"logic_boolean\\\" disabled-reasons=\\\"MANUALLY_DISABLED\\\"><field name=\\\"BOOL\\\">FALSE</field></shadow><block type=\\\"logic_negate\\\"><value name=\\\"BOOL\\\"><block type=\\\"device_get_button2\\\"><field name=\\\"NAME\\\">Button.A</field></block></value></block></value><statement name=\\\"DO\\\"><block type=\\\"variables_change\\\"><field name=\\\"VAR\\\" id=\\\"$P_aq_(,8a1LQG`OnGp.\\\">Password</field><value name=\\\"VALUE\\\"><shadow type=\\\"math_number\\\"><field name=\\\"NUM\\\">1</field></shadow></value><next><block type=\\\"device_show_number\\\"><value name=\\\"number\\\"><shadow type=\\\"math_number\\\"><field name=\\\"NUM\\\">0</field></shadow><block type=\\\"variables_get\\\"><field name=\\\"VAR\\\" id=\\\"$P_aq_(,8a1LQG`OnGp.\\\">Password</field></block></value><next><block type=\\\"controls_if\\\"><value name=\\\"IF0\\\"><shadow type=\\\"logic_boolean\\\"><field name=\\\"BOOL\\\">TRUE</field></shadow><block type=\\\"device_get_button2\\\"><field name=\\\"NAME\\\">Button.B</field></block></value></block></next></block></next></block></statement><next><block type=\\\"radio_set_group\\\"><value name=\\\"ID\\\"><shadow type=\\\"math_number_minmax\\\"><mutation min=\\\"0\\\" max=\\\"255\\\" label=\\\"Id\\\" precision=\\\"0\\\"></mutation><field name=\\\"SLIDER\\\">117</field></shadow></value><next><block type=\\\"radio_datagram_send_value\\\"><value name=\\\"name\\\"><shadow type=\\\"text\\\"><field name=\\\"TEXT\\\">I know the password!</field></shadow></value><value name=\\\"value\\\"><shadow type=\\\"math_number\\\"><field name=\\\"NUM\\\">1234</field></shadow><block type=\\\"variables_get\\\"><field name=\\\"VAR\\\" id=\\\"$P_aq_(,8a1LQG`OnGp.\\\">Password</field></block></value><next><block type=\\\"variables_set\"],[0,\"\\\"><f\"]],\"start1\":552,\"start2\":552,\"length1\":176,\"length2\":2187},{\"diffs\":[[0,\"value></block></\"],[1,\"next></block></next></block></next></block></next></block></statement></block></next></block></\"],[0,\"statement></bloc\"]],\"start1\":2885,\"start2\":2885,\"length1\":32,\"length2\":127}]},{\"type\":\"edited\",\"filename\":\"main.ts\",\"patch\":[{\"diffs\":[[-1,\"input.onPinPressed(TouchPin.P0, function on_pin_pressed_p0() {\\n \\n Radio_Group += 1\\n})\\n\"],[0,\"inpu\"]],\"start1\":0,\"start2\":0,\"length1\":96,\"length2\":4},{\"diffs\":[[0,\"unction \"],[-1,\"on_button_pressed_a\"],[0,\"() {\\n \"]],\"start1\":33,\"start2\":33,\"length1\":35,\"length2\":16},{\"diffs\":[[0,\"ion \"],[-1,\"on_button_pressed_ab\"],[0,\"() {\"]],\"start1\":114,\"start2\":114,\"length1\":28,\"length2\":8},{\"diffs\":[[0,\"ion \"],[-1,\"on_received_string\"],[0,\"(rec\"]],\"start1\":189,\"start2\":189,\"length1\":26,\"length2\":8},{\"diffs\":[[0,\"ring\"],[-1,\": string\"],[0,\") {\\n\"]],\"start1\":204,\"start2\":204,\"length1\":16,\"length2\":8},{\"diffs\":[[0,\"ion \"],[-1,\"on_button_pressed_b\"],[0,\"() {\"]],\"start1\":289,\"start2\":289,\"length1\":27,\"length2\":8},{\"diffs\":[[0,\"ion \"],[-1,\"on_pin_pressed_p1\"],[0,\"() {\"]],\"start1\":367,\"start2\":367,\"length1\":25,\"length2\":8},{\"diffs\":[[0,\"t!\\\")\\n})\\n\"],[1,\"let Password = 0\\n\"],[0,\"let Radi\"]],\"start1\":403,\"start2\":403,\"length1\":16,\"length2\":33},{\"diffs\":[[0,\"ion \"],[-1,\"on_forever\"],[0,\"() {\"]],\"start1\":485,\"start2\":485,\"length1\":18,\"length2\":8},{\"diffs\":[[0,\"_Group)\\n\"],[1,\" if (input.pinIsPressed(TouchPin.P2) && input.pinIsPressed(TouchPin.P0)) {\\n radio.setGroup(255)\\n while (!(input.buttonIsPressed(Button.A))) {\\n Password += 1\\n basic.showNumber(Password)\\n if (input.buttonIsPressed(Button.B)) {\\n \\t\\n }\\n }\\n radio.setGroup(117)\\n radio.sendValue(\\\"I know the password!\\\", Password)\\n Radio_Group = 1\\n }\\n\"],[0,\"})\\n\"]],\"start1\":518,\"start2\":518,\"length1\":11,\"length2\":440}]},{\"type\":\"edited\",\"filename\":\"pxt.json\",\"patch\":[{\"diffs\":[[0,\"\\\": \\\"\"],[-1,\"Micro Chat\"],[1,\"Fun with Radio\"],[0,\"\\\",\\n \"]],\"start1\":11,\"start2\":11,\"length1\":18,\"length2\":22},{\"diffs\":[[0,\"ory\\\"\"],[-1,\",\\n \\\"main.py\\\"\"],[0,\"\\n \"]],\"start1\":265,\"start2\":265,\"length1\":27,\"length2\":8},{\"diffs\":[[0,\"\\\": \\\"\"],[-1,\"py\"],[1,\"blocks\"],[0,\"prj\\\"\"]],\"start1\":297,\"start2\":297,\"length1\":10,\"length2\":14}]},{\"type\":\"added\",\"filename\":\"main.py\",\"value\":\"def on_pin_pressed_p0():\\n global Radio_Group\\n Radio_Group += 1\\ninput.on_pin_pressed(TouchPin.P0, on_pin_pressed_p0)\\n\\ndef on_button_pressed_a():\\n radio.send_string(\\\"Hi\\\")\\ninput.on_button_pressed(Button.A, on_button_pressed_a)\\n\\ndef on_button_pressed_ab():\\n radio.send_string(\\\"I'm Hungry\\\")\\ninput.on_button_pressed(Button.AB, on_button_pressed_ab)\\n\\ndef on_received_string(receivedString):\\n basic.show_string(receivedString)\\nradio.on_received_string(on_received_string)\\n\\ndef on_button_pressed_b():\\n radio.send_string(\\\"Bye!\\\")\\ninput.on_button_pressed(Button.B, on_button_pressed_b)\\n\\ndef on_pin_pressed_p1():\\n radio.send_string(\\\"Got it!\\\")\\ninput.on_pin_pressed(TouchPin.P1, on_pin_pressed_p1)\\n\\nRadio_Group = 0\\nradio.set_group(1)\\n\\ndef on_forever():\\n radio.set_group(Radio_Group)\\nbasic.forever(on_forever)\\n\"}]},{\"timestamp\":1731847871925,\"editorVersion\":\"7.0.51\",\"changes\":[{\"type\":\"edited\",\"filename\":\"main.py\",\"patch\":[{\"diffs\":[[0,\"p(1)\"],[-1,\"\\nitem = 0\"],[0,\"\\n\\nde\"]],\"start1\":735,\"start2\":735,\"length1\":17,\"length2\":8}]}]},{\"timestamp\":1731851140543,\"editorVersion\":\"7.0.51\",\"changes\":[{\"type\":\"edited\",\"filename\":\"main.ts\",\"patch\":[{\"diffs\":[[0,\"(1)\\n\"],[-1,\"let item = 0\\n\"],[0,\"basi\"]],\"start1\":638,\"start2\":638,\"length1\":21,\"length2\":8}]}]},{\"timestamp\":1731851141424,\"editorVersion\":\"7.0.51\",\"changes\":[{\"type\":\"edited\",\"filename\":\"main.blocks\",\"patch\":[{\"diffs\":[[0,\"id=\\\"\"],[-1,\"TQHAfm5rtZeV!5{iB^bw\"],[1,\"2RAZ0)^bVHs!Fi~U*y}K\"],[0,\"\\\">Radio\"],[-1,\"_\"],[1,\" \"],[0,\"Grou\"]],\"start1\":76,\"start2\":76,\"length1\":36,\"length2\":36},{\"diffs\":[[0,\"le><\"],[-1,\"variable id=\\\"HNS{+9ABt$/nHP0^[.tJ\\\">item</variable><\"],[0,\"/var\"]],\"start1\":121,\"start2\":121,\"length1\":59,\"length2\":8},{\"diffs\":[[0,\"x=\\\"-\"],[-1,\"254\"],[1,\"166\"],[0,\"\\\" y=\\\"-\"],[-1,\"697\"],[1,\"578\"],[0,\"\\\"><s\"]],\"start1\":165,\"start2\":165,\"length1\":20,\"length2\":20},{\"diffs\":[[0,\"in=\\\"0\\\" max=\\\"255\\\"\"],[1,\" label=\\\"Id\\\"\"],[0,\" precision=\\\"0\\\"><\"]],\"start1\":301,\"start2\":301,\"length1\":32,\"length2\":43},{\"diffs\":[[0,\"SLIDER\\\">\"],[-1,\"0\"],[1,\"1\"],[0,\"</field>\"]],\"start1\":367,\"start2\":367,\"length1\":17,\"length2\":17},{\"diffs\":[[0,\"id=\\\"\"],[-1,\"TQHAfm5rtZeV!5{iB^bw\"],[1,\"2RAZ0)^bVHs!Fi~U*y}K\"],[0,\"\\\">Radio\"],[-1,\"_\"],[1,\" \"],[0,\"Grou\"]],\"start1\":439,\"start2\":439,\"length1\":36,\"length2\":36},{\"diffs\":[[0,\"x=\\\"-\"],[-1,\"17\"],[0,\"9\"],[1,\"1\"],[0,\"\\\" y=\\\"-\"],[-1,\"444\"],[1,\"325\"],[0,\"\\\"><f\"]],\"start1\":559,\"start2\":559,\"length1\":20,\"length2\":19},{\"diffs\":[[0,\"id=\\\"\"],[-1,\"TQHAfm5rtZeV!5{iB^bw\"],[1,\"2RAZ0)^bVHs!Fi~U*y}K\"],[0,\"\\\">Radio\"],[-1,\"_\"],[1,\" \"],[0,\"Grou\"]],\"start1\":689,\"start2\":689,\"length1\":36,\"length2\":36},{\"diffs\":[[0,\"pe=\\\"\"],[-1,\"device_button_even\"],[1,\"pxt-on-star\"],[0,\"t\\\" x=\\\"\"],[-1,\"213\"],[1,\"88\"],[0,\"\\\" y=\\\"\"],[-1,\"-150\\\"><field name=\\\"NAME\\\">Button.A</field\"],[1,\"119\\\"\"],[0,\"><st\"]],\"start1\":862,\"start2\":862,\"length1\":80,\"length2\":36},{\"diffs\":[[0,\"=\\\"radio_\"],[-1,\"datagram_send_string\"],[1,\"set_group\"],[0,\"\\\"><value\"]],\"start1\":932,\"start2\":932,\"length1\":36,\"length2\":25},{\"diffs\":[[0,\"p\\\"><value name=\\\"\"],[-1,\"msg\"],[1,\"ID\"],[0,\"\\\"><shadow type=\\\"\"]],\"start1\":948,\"start2\":948,\"length1\":35,\"length2\":34},{\"diffs\":[[0,\"\\\"><shadow type=\\\"\"],[-1,\"text\\\"\"],[1,\"math_number_minmax\\\"><mutation min=\\\"0\\\" max=\\\"255\\\" label=\\\"Id\\\" precision=\\\"0\\\"></mutation\"],[0,\"><field name=\\\"TE\"]],\"start1\":966,\"start2\":966,\"length1\":37,\"length2\":115},{\"diffs\":[[0,\"me=\\\"\"],[-1,\"TEXT\\\">Hi\"],[1,\"SLIDER\\\">1\"],[0,\"</fi\"]],\"start1\":1075,\"start2\":1075,\"length1\":16,\"length2\":17},{\"diffs\":[[0,\"pe=\\\"\"],[-1,\"pxt-on-start\\\" x=\\\"0\\\" y=\\\"0\\\"><statement name=\\\"HANDLER\\\"><block type=\\\"variables_set\\\"><field name=\\\"VAR\\\" id=\\\"HNS{+9ABt$/nHP0^[.tJ\\\">item</field><value name=\\\"VALUE\\\"><shadow type=\\\"math_number\\\"><field name=\\\"NUM\\\">0</field></shadow></value><next><block type=\\\"radio_set_group\"],[1,\"device_pin_event\\\" x=\\\"-183\\\" y=\\\"236\\\"><field name=\\\"name\\\">TouchPin.P1</field><statement name=\\\"HANDLER\\\"><block type=\\\"radio_datagram_send_string\"],[0,\"\\\"><v\"]],\"start1\":1150,\"start2\":1150,\"length1\":269,\"length2\":146},{\"diffs\":[[0,\"g\\\"><value name=\\\"\"],[-1,\"ID\"],[1,\"msg\"],[0,\"\\\"><shadow type=\\\"\"]],\"start1\":1291,\"start2\":1291,\"length1\":34,\"length2\":35},{\"diffs\":[[0,\"pe=\\\"\"],[-1,\"math_number_minmax\\\"><mutation min=\\\"0\\\" max=\\\"255\\\" precision=\\\"0\\\"></mutation\"],[1,\"text\\\"\"],[0,\"><fi\"]],\"start1\":1322,\"start2\":1322,\"length1\":80,\"length2\":13},{\"diffs\":[[0,\"field name=\\\"\"],[-1,\"SLIDER\\\">1\"],[1,\"TEXT\\\">Got it!\"],[0,\"</field></sh\"]],\"start1\":1333,\"start2\":1333,\"length1\":33,\"length2\":37},{\"diffs\":[[0,\"k></\"],[-1,\"next></block></\"],[0,\"stat\"]],\"start1\":1389,\"start2\":1389,\"length1\":23,\"length2\":8},{\"diffs\":[[0,\"ck type=\\\"device_\"],[-1,\"pi\"],[1,\"butto\"],[0,\"n_event\\\" x=\\\"-334\"]],\"start1\":1415,\"start2\":1415,\"length1\":34,\"length2\":37},{\"diffs\":[[0,\" x=\\\"\"],[-1,\"-334\"],[1,\"193\"],[0,\"\\\" y=\\\"\"],[-1,\"148\"],[1,\"269\"],[0,\"\\\"><f\"]],\"start1\":1444,\"start2\":1444,\"length1\":20,\"length2\":19},{\"diffs\":[[0,\"d name=\\\"\"],[-1,\"name\\\">TouchPin.P1\"],[1,\"NAME\\\">Button.A\"],[0,\"</field>\"]],\"start1\":1466,\"start2\":1466,\"length1\":33,\"length2\":30},{\"diffs\":[[0,\"eld name=\\\"TEXT\\\">\"],[-1,\"Got it!\"],[1,\"Hi\"],[0,\"</field></shadow\"]],\"start1\":1604,\"start2\":1604,\"length1\":39,\"length2\":34},{\"diffs\":[[0,\" x=\\\"\"],[-1,\"42\"],[1,\"130\"],[0,\"\\\" y=\\\"\"],[-1,\"313\"],[1,\"432\"],[0,\"\\\"><v\"]],\"start1\":1709,\"start2\":1709,\"length1\":18,\"length2\":19},{\"diffs\":[[0,\"\\\"text\\\"><\"],[1,\"shadow type=\\\"text\\\"><field name=\\\"TEXT\\\">Hello!</field></shadow><\"],[0,\"block ty\"]],\"start1\":1988,\"start2\":1988,\"length1\":16,\"length2\":78},{\"diffs\":[[0,\"x=\\\"-\"],[-1,\"338\"],[1,\"250\"],[0,\"\\\" y=\\\"\"],[-1,\"430\"],[1,\"549\"],[0,\"\\\"><f\"]],\"start1\":2216,\"start2\":2216,\"length1\":19,\"length2\":19},{\"diffs\":[[0,\"x=\\\"-\"],[-1,\"353\"],[1,\"265\"],[0,\"\\\" y=\\\"\"],[-1,\"682\"],[1,\"801\"],[0,\"\\\"><f\"]],\"start1\":2483,\"start2\":2483,\"length1\":19,\"length2\":19}]},{\"type\":\"edited\",\"filename\":\"main.ts\",\"patch\":[{\"diffs\":[[0,\"0, function \"],[-1,\"() {\"],[1,\"on_pin_pressed_p0() {\\n \"],[0,\"\\n Radio_G\"]],\"start1\":29,\"start2\":29,\"length1\":28,\"length2\":50},{\"diffs\":[[0,\"ton.A, function \"],[1,\"on_button_pressed_a\"],[0,\"() {\\n radio.s\"]],\"start1\":117,\"start2\":117,\"length1\":32,\"length2\":51},{\"diffs\":[[0,\"on.AB, function \"],[1,\"on_button_pressed_ab\"],[0,\"() {\\n radio.s\"]],\"start1\":213,\"start2\":213,\"length1\":32,\"length2\":52},{\"diffs\":[[0,\"unction \"],[1,\"on_received_string\"],[0,\"(receive\"]],\"start1\":316,\"start2\":316,\"length1\":16,\"length2\":34},{\"diffs\":[[0,\"edString\"],[1,\": string\"],[0,\") {\\n \"]],\"start1\":349,\"start2\":349,\"length1\":16,\"length2\":24},{\"diffs\":[[0,\"ton.B, function \"],[1,\"on_button_pressed_b\"],[0,\"() {\\n radio.s\"]],\"start1\":434,\"start2\":434,\"length1\":32,\"length2\":51},{\"diffs\":[[0,\"in.P1, function \"],[1,\"on_pin_pressed_p1\"],[0,\"() {\\n radio.s\"]],\"start1\":531,\"start2\":531,\"length1\":32,\"length2\":49},{\"diffs\":[[0,\"= 0\\n\"],[-1,\"let item = 0\\n\"],[0,\"radi\"]],\"start1\":620,\"start2\":620,\"length1\":21,\"length2\":8},{\"diffs\":[[0,\"roup(1)\\n\"],[1,\"let item = 0\\n\"],[0,\"basic.fo\"]],\"start1\":634,\"start2\":634,\"length1\":16,\"length2\":29},{\"diffs\":[[0,\"unction \"],[1,\"on_forever\"],[0,\"() {\\n \"]],\"start1\":670,\"start2\":670,\"length1\":16,\"length2\":26}]},{\"type\":\"edited\",\"filename\":\"pxt.json\",\"patch\":[{\"diffs\":[[0,\"itor\\\": \\\"\"],[-1,\"blocks\"],[1,\"py\"],[0,\"prj\\\"\\n}\\n\"]],\"start1\":308,\"start2\":308,\"length1\":21,\"length2\":17}]}]}],\"snapshots\":[{\"timestamp\":1731846265996,\"editorVersion\":\"7.0.51\",\"text\":{\"main.blocks\":\"<xml xmlns=\\\"http://www.w3.org/1999/xhtml\\\">\\n <block type=\\\"pxt-on-start\\\"></block>\\n <block type=\\\"device_forever\\\"></block>\\n</xml>\",\"main.ts\":\"\",\"README.md\":\"\",\"pxt.json\":\"{\\n \\\"name\\\": \\\"Fun with Radio\\\",\\n \\\"description\\\": \\\"\\\",\\n \\\"dependencies\\\": {\\n \\\"core\\\": \\\"*\\\",\\n \\\"radio\\\": \\\"*\\\",\\n \\\"microphone\\\": \\\"*\\\"\\n },\\n \\\"files\\\": [\\n \\\"main.blocks\\\",\\n \\\"main.ts\\\",\\n \\\"README.md\\\"\\n ],\\n \\\"preferredEditor\\\": \\\"blocksprj\\\",\\n \\\"additionalFilePaths\\\": []\\n}\\n\"}},{\"timestamp\":1731851140543,\"editorVersion\":\"7.0.51\",\"text\":{\"main.blocks\":\"<xml xmlns=\\\"https://developers.google.com/blockly/xml\\\"><variables><variable id=\\\"2RAZ0)^bVHs!Fi~U*y}K\\\">Radio Group</variable></variables><block type=\\\"device_forever\\\" x=\\\"-166\\\" y=\\\"-578\\\"><statement name=\\\"HANDLER\\\"><block type=\\\"radio_set_group\\\"><value name=\\\"ID\\\"><shadow type=\\\"math_number_minmax\\\"><mutation min=\\\"0\\\" max=\\\"255\\\" label=\\\"Id\\\" precision=\\\"0\\\"></mutation><field name=\\\"SLIDER\\\">1</field></shadow><block type=\\\"variables_get\\\"><field name=\\\"VAR\\\" id=\\\"2RAZ0)^bVHs!Fi~U*y}K\\\">Radio Group</field></block></value></block></statement></block><block type=\\\"device_pin_event\\\" x=\\\"-91\\\" y=\\\"-325\\\"><field name=\\\"name\\\">TouchPin.P0</field><statement name=\\\"HANDLER\\\"><block type=\\\"variables_change\\\"><field name=\\\"VAR\\\" id=\\\"2RAZ0)^bVHs!Fi~U*y}K\\\">Radio Group</field><value name=\\\"VALUE\\\"><shadow type=\\\"math_number\\\"><field name=\\\"NUM\\\">1</field></shadow></value></block></statement></block><block type=\\\"pxt-on-start\\\" x=\\\"88\\\" y=\\\"119\\\"><statement name=\\\"HANDLER\\\"><block type=\\\"radio_set_group\\\"><value name=\\\"ID\\\"><shadow type=\\\"math_number_minmax\\\"><mutation min=\\\"0\\\" max=\\\"255\\\" label=\\\"Id\\\" precision=\\\"0\\\"></mutation><field name=\\\"SLIDER\\\">1</field></shadow></value></block></statement></block><block type=\\\"device_pin_event\\\" x=\\\"-183\\\" y=\\\"236\\\"><field name=\\\"name\\\">TouchPin.P1</field><statement name=\\\"HANDLER\\\"><block type=\\\"radio_datagram_send_string\\\"><value name=\\\"msg\\\"><shadow type=\\\"text\\\"><field name=\\\"TEXT\\\">Got it!</field></shadow></value></block></statement></block><block type=\\\"device_button_event\\\" x=\\\"193\\\" y=\\\"269\\\"><field name=\\\"NAME\\\">Button.A</field><statement name=\\\"HANDLER\\\"><block type=\\\"radio_datagram_send_string\\\"><value name=\\\"msg\\\"><shadow type=\\\"text\\\"><field name=\\\"TEXT\\\">Hi</field></shadow></value></block></statement></block><block type=\\\"radio_on_string_drag\\\" x=\\\"130\\\" y=\\\"432\\\"><value name=\\\"HANDLER_DRAG_PARAM_receivedString\\\"><block type=\\\"argument_reporter_string\\\"><mutation duplicateondrag=\\\"true\\\"></mutation><field name=\\\"VALUE\\\">receivedString</field></block></value><statement name=\\\"HANDLER\\\"><block type=\\\"device_print_message\\\"><value name=\\\"text\\\"><shadow type=\\\"text\\\"><field name=\\\"TEXT\\\">Hello!</field></shadow><block type=\\\"argument_reporter_string\\\"><field name=\\\"VALUE\\\">receivedString</field></block></value></block></statement></block><block type=\\\"device_button_event\\\" x=\\\"-250\\\" y=\\\"549\\\"><field name=\\\"NAME\\\">Button.B</field><statement name=\\\"HANDLER\\\"><block type=\\\"radio_datagram_send_string\\\"><value name=\\\"msg\\\"><shadow type=\\\"text\\\"><field name=\\\"TEXT\\\">Bye!</field></shadow></value></block></statement></block><block type=\\\"device_button_event\\\" x=\\\"-265\\\" y=\\\"801\\\"><field name=\\\"NAME\\\">Button.AB</field><statement name=\\\"HANDLER\\\"><block type=\\\"radio_datagram_send_string\\\"><value name=\\\"msg\\\"><shadow type=\\\"text\\\"><field name=\\\"TEXT\\\">I'm Hungry</field></shadow></value></block></statement></block></xml>\",\"main.ts\":\"\",\"README.md\":\"\",\"pxt.json\":\"{\\n \\\"name\\\": \\\"Micro Chat\\\",\\n \\\"description\\\": \\\"\\\",\\n \\\"dependencies\\\": {\\n \\\"core\\\": \\\"*\\\",\\n \\\"radio\\\": \\\"*\\\",\\n \\\"microphone\\\": \\\"*\\\"\\n },\\n \\\"files\\\": [\\n \\\"main.blocks\\\",\\n \\\"main.ts\\\",\\n \\\"README.md\\\",\\n \\\"pxt.json\\\",\\n \\\"_history\\\",\\n \\\"main.py\\\"\\n ],\\n \\\"preferredEditor\\\": \\\"pyprj\\\"\\n}\\n\",\"_history\":\"{\\\"entries\\\":[{\\\"timestamp\\\":1731846265997,\\\"editorVersion\\\":\\\"7.0.51\\\",\\\"changes\\\":[{\\\"type\\\":\\\"edited\\\",\\\"filename\\\":\\\"main.blocks\\\",\\\"patch\\\":[{\\\"diffs\\\":[[0,\\\"http\\\"],[-1,\\\"s\\\"],[0,\\\"://\\\"],[-1,\\\"developers.google.com/blockly/xml\\\\\\\"><variables><variable id=\\\\\\\"2RAZ0)^bVHs!Fi~U*y}K\\\\\\\">Radio Group</variable></variables><block type=\\\\\\\"device_forever\\\\\\\" x=\\\\\\\"-116\\\\\\\" y=\\\\\\\"-394\\\\\\\"><statement name=\\\\\\\"HANDLER\\\\\\\"><block type=\\\\\\\"radio_set_group\\\\\\\"><value name=\\\\\\\"ID\\\\\\\"><shadow type=\\\\\\\"math_number_minmax\\\\\\\"><mutation min=\\\\\\\"0\\\\\\\" max=\\\\\\\"255\\\\\\\" label=\\\\\\\"Id\\\\\\\" precision=\\\\\\\"0\\\\\\\"></mutation><field name=\\\\\\\"SLIDER\\\\\\\">1</field></shadow><block type=\\\\\\\"variables_get\\\\\\\"><field name=\\\\\\\"VAR\\\\\\\" id=\\\\\\\"2RAZ0)^bVHs!Fi~U*y}K\\\\\\\">Radio Group</field></block></value><next><block type=\\\\\\\"controls_if\\\\\\\"><value name=\\\\\\\"IF0\\\\\\\"><shadow type=\\\\\\\"logic_boolean\\\\\\\"><field name=\\\\\\\"BOOL\\\\\\\">TRUE</field></shadow><block type=\\\\\\\"logic_operation\\\\\\\"><field name=\\\\\\\"OP\\\\\\\">AND</field><value name=\\\\\\\"A\\\\\\\"><block type=\\\\\\\"device_pin_is_pressed\\\\\\\"><field name=\\\\\\\"NAME\\\\\\\">TouchPin.P2</field></block></value><value name=\\\\\\\"B\\\\\\\"><block type=\\\\\\\"device_pin_is_pressed\\\\\\\"><field name=\\\\\\\"NAME\\\\\\\">TouchPin.P0</field></block></value></block></value><statement name=\\\\\\\"DO0\\\\\\\"><block type=\\\\\\\"device_while\\\\\\\"><value name=\\\\\\\"COND\\\\\\\"><shadow type=\\\\\\\"logic_boolean\\\\\\\" disabled-reasons=\\\\\\\"MANUALLY_DISABLED\\\\\\\"><field name=\\\\\\\"BOOL\\\\\\\">FALSE</field></shadow><block type=\\\\\\\"logic_negate\\\\\\\"></block></value><next><block type=\\\\\\\"radio_set_group\\\\\\\"><value name=\\\\\\\"ID\\\\\\\"><shadow type=\\\\\\\"math_number_minmax\\\\\\\"><mutation min=\\\\\\\"0\\\\\\\" max=\\\\\\\"255\\\\\\\" label=\\\\\\\"Id\\\\\\\" precision=\\\\\\\"0\\\\\\\"></mutation><field name=\\\\\\\"SLIDER\\\\\\\">117</field></shadow></value><next><block type=\\\\\\\"radio_datagram_send_value\\\\\\\"><value name=\\\\\\\"name\\\\\\\"><shadow type=\\\\\\\"text\\\\\\\"><field name=\\\\\\\"TEXT\\\\\\\">I know the password!</field></shadow></value><value name=\\\\\\\"value\\\\\\\"><shadow type=\\\\\\\"math_number\\\\\\\"><field name=\\\\\\\"NUM\\\\\\\">1234</field></shadow></value><next><block type=\\\\\\\"variables_set\\\\\\\"><field name=\\\\\\\"VAR\\\\\\\" id=\\\\\\\"2RAZ0)^bVHs!Fi~U*y}K\\\\\\\">Radio Group</field><value name=\\\\\\\"VALUE\\\\\\\"><shadow type=\\\\\\\"math_number\\\\\\\"><field name=\\\\\\\"NUM\\\\\\\">1</field></shadow></value></block></next></block></next></block></next></block></statement></block></next></block></statement></block><block type=\\\\\\\"pxt-on-start\\\\\\\" x=\\\\\\\"88\\\\\\\" y=\\\\\\\"119\\\\\\\"><statement name=\\\\\\\"HANDLER\\\\\\\"><block type=\\\\\\\"radio_set_group\\\\\\\"><value name=\\\\\\\"ID\\\\\\\"><shadow type=\\\\\\\"math_number_minmax\\\\\\\"><mutation min=\\\\\\\"0\\\\\\\" max=\\\\\\\"255\\\\\\\" label=\\\\\\\"Id\\\\\\\" precision=\\\\\\\"0\\\\\\\"></mutation><field name=\\\\\\\"SLIDER\\\\\\\">1</field></shadow></value></block></statement></block><block type=\\\\\\\"device_button_event\\\\\\\" x=\\\\\\\"99\\\\\\\" y=\\\\\\\"275\\\\\\\"><field name=\\\\\\\"NAME\\\\\\\">Button.A</field><statement name=\\\\\\\"HANDLER\\\\\\\"><block type=\\\\\\\"radio_datagram_send_string\\\\\\\"><value name=\\\\\\\"msg\\\\\\\"><shadow type=\\\\\\\"text\\\\\\\"><field name=\\\\\\\"TEXT\\\\\\\">Hi</field></shadow></value></block></statement></block><block type=\\\\\\\"radio_on_string_drag\\\\\\\" x=\\\\\\\"130\\\\\\\" y=\\\\\\\"432\\\\\\\"><value name=\\\\\\\"HANDLER_DRAG_PARAM_receivedString\\\\\\\"><block type=\\\\\\\"argument_reporter_string\\\\\\\"><mutation duplicateondrag=\\\\\\\"true\\\\\\\"></mutation><field name=\\\\\\\"VALUE\\\\\\\">receivedString</field></block></value><statement name=\\\\\\\"HANDLER\\\\\\\"><block type=\\\\\\\"device_print_message\\\\\\\"><value name=\\\\\\\"text\\\\\\\"><shadow type=\\\\\\\"text\\\\\\\"><field name=\\\\\\\"TEXT\\\\\\\">Hello!</field></shadow><block type=\\\\\\\"argument_reporter_string\\\\\\\"><field name=\\\\\\\"VALUE\\\\\\\">receivedString</field></block></value></block></statement></block>\\\"],[1,\\\"www.w3.org/1999/xhtml\\\\\\\">\\\\n <block type=\\\\\\\"pxt-on-start\\\\\\\"></block>\\\\n <block type=\\\\\\\"device_forever\\\\\\\"></block>\\\\n\\\"],[0,\\\"</xm\\\"]],\\\"start1\\\":12,\\\"start2\\\":12,\\\"length1\\\":2912,\\\"length2\\\":113}]},{\\\"type\\\":\\\"edited\\\",\\\"filename\\\":\\\"main.ts\\\",\\\"patch\\\":[{\\\"diffs\\\":[[-1,\\\"input.onButtonPressed(Button.A, function () {\\\\n radio.sendString(\\\\\\\"Hi\\\\\\\")\\\\n})\\\\nradio.onReceivedString(function (receivedString) {\\\\n basic.showString(receivedString)\\\\n})\\\\nlet Radio_Group = 0\\\\nradio.setGroup(1)\\\\nbasic.forever(function () {\\\\n radio.setGroup(Radio_Group)\\\\n if (input.pinIsPressed(TouchPin.P2) && input.pinIsPressed(TouchPin.P0)) {\\\\n while (!(false)) {\\\\n \\\\t\\\\n }\\\\n radio.setGroup(117)\\\\n radio.sendValue(\\\\\\\"I know the password!\\\\\\\", 1234)\\\\n Radio_Group = 1\\\\n }\\\\n})\\\"],[0,\\\"\\\\n\\\"]],\\\"start1\\\":0,\\\"start2\\\":0,\\\"length1\\\":505,\\\"length2\\\":1}]},{\\\"type\\\":\\\"edited\\\",\\\"filename\\\":\\\"pxt.json\\\",\\\"patch\\\":[{\\\"diffs\\\":[[0,\\\".md\\\\\\\"\\\"],[-1,\\\",\\\\n \\\\\\\"pxt.json\\\\\\\",\\\\n \\\\\\\"_history\\\\\\\"\\\"],[0,\\\"\\\\n \\\"]],\\\"start1\\\":225,\\\"start2\\\":225,\\\"length1\\\":48,\\\"length2\\\":8},{\\\"diffs\\\":[[0,\\\"ocksprj\\\\\\\"\\\"],[1,\\\",\\\\n \\\\\\\"additionalFilePaths\\\\\\\": []\\\"],[0,\\\"\\\\n}\\\\n\\\"]],\\\"start1\\\":263,\\\"start2\\\":263,\\\"length1\\\":11,\\\"length2\\\":42}]}]},{\\\"timestamp\\\":1731846871726,\\\"editorVersion\\\":\\\"7.0.51\\\",\\\"changes\\\":[{\\\"type\\\":\\\"edited\\\",\\\"filename\\\":\\\"main.blocks\\\",\\\"patch\\\":[{\\\"diffs\\\":[[0,\\\"ock \\\"],[-1,\\\"type=\\\\\\\"device_note\\\\\\\" disabled-reasons=\\\\\\\"ORPHANED_BLOCK,MANUALLY_DISABLED\\\\\\\" x=\\\\\\\"-103\\\\\\\" y=\\\\\\\"171\\\\\\\"><field name=\\\\\\\"name\\\\\\\">262</field></block><block \\\"],[0,\\\"type\\\"]],\\\"start1\\\":2153,\\\"start2\\\":2153,\\\"length1\\\":141,\\\"length2\\\":8}]}]},{\\\"timestamp\\\":1731846924652,\\\"editorVersion\\\":\\\"7.0.51\\\",\\\"changes\\\":[{\\\"type\\\":\\\"edited\\\",\\\"filename\\\":\\\"main.blocks\\\",\\\"patch\\\":[{\\\"diffs\\\":[[0,\\\"le><\\\"],[-1,\\\"variable id=\\\\\\\"$P_aq_(,8a1LQG`OnGp.\\\\\\\">Password</variable><\\\"],[0,\\\"/var\\\"]],\\\"start1\\\":121,\\\"start2\\\":121,\\\"length1\\\":63,\\\"length2\\\":8},{\\\"diffs\\\":[[0,\\\"=\\\\\\\"-1\\\"],[-1,\\\"48\\\"],[1,\\\"16\\\"],[0,\\\"\\\\\\\" y=\\\\\\\"-\\\"],[-1,\\\"550\\\"],[1,\\\"394\\\"],[0,\\\"\\\\\\\"><s\\\"]],\\\"start1\\\":166,\\\"start2\\\":166,\\\"length1\\\":19,\\\"length2\\\":19},{\\\"diffs\\\":[[0,\\\"pe=\\\\\\\"\\\"],[-1,\\\"radio_set_group\\\\\\\"><value name=\\\\\\\"ID\\\\\\\"><shadow type=\\\\\\\"math_number_minmax\\\\\\\"><mutation min=\\\\\\\"0\\\\\\\" max=\\\\\\\"255\\\\\\\" label=\\\\\\\"Id\\\\\\\" precision=\\\\\\\"0\\\\\\\"></mutation><field name=\\\\\\\"SLIDER\\\\\\\">255</field></shadow></value><next><block type=\\\\\\\"device_while\\\\\\\"><value name=\\\\\\\"COND\\\\\\\"><shadow type=\\\\\\\"logic_boolean\\\\\\\" disabled-reasons=\\\\\\\"MANUALLY_DISABLED\\\\\\\"><field name=\\\\\\\"BOOL\\\\\\\">FALSE</field></shadow><block type=\\\\\\\"logic_negate\\\\\\\"><value name=\\\\\\\"BOOL\\\\\\\"><block type=\\\\\\\"device_get_button2\\\\\\\"><field name=\\\\\\\"NAME\\\\\\\">Button.A</field></block></value></block></value><statement name=\\\\\\\"DO\\\\\\\"><block type=\\\\\\\"variables_change\\\\\\\"><field name=\\\\\\\"VAR\\\\\\\" id=\\\\\\\"$P_aq_(,8a1LQG`OnGp.\\\\\\\">Password</field><value name=\\\\\\\"VALUE\\\\\\\"><shadow type=\\\\\\\"math_number\\\\\\\"><field name=\\\\\\\"NUM\\\\\\\">1</field></shadow></value><next><block type=\\\\\\\"device_show_number\\\\\\\"><value name=\\\\\\\"number\\\\\\\"><shadow type=\\\\\\\"math_number\\\\\\\"><field name=\\\\\\\"NUM\\\\\\\">0</field></shadow><block type=\\\\\\\"variables_get\\\\\\\"><field name=\\\\\\\"VAR\\\\\\\" id=\\\\\\\"$P_aq_(,8a1LQG`OnGp.\\\\\\\">Password</field></block></value><next><block type=\\\\\\\"controls_if\\\\\\\"><value name=\\\\\\\"IF0\\\\\\\"><shadow type=\\\\\\\"logic_boolean\\\\\\\"><field name=\\\\\\\"BOOL\\\\\\\">TRUE</field></shadow><block type=\\\\\\\"device_get_button2\\\\\\\"><field name=\\\\\\\"NAME\\\\\\\">Button.B</field></block></value></block></next></block></next></block></statement\\\"],[1,\\\"device_while\\\\\\\"><value name=\\\\\\\"COND\\\\\\\"><shadow type=\\\\\\\"logic_boolean\\\\\\\" disabled-reasons=\\\\\\\"MANUALLY_DISABLED\\\\\\\"><field name=\\\\\\\"BOOL\\\\\\\">FALSE</field></shadow><block type=\\\\\\\"logic_negate\\\\\\\"></block></value\\\"],[0,\\\"><ne\\\"]],\\\"start1\\\":936,\\\"start2\\\":936,\\\"length1\\\":1176,\\\"length2\\\":190},{\\\"diffs\\\":[[0,\\\"ow><\\\"],[-1,\\\"block type=\\\\\\\"variables_get\\\\\\\"><field name=\\\\\\\"VAR\\\\\\\" id=\\\\\\\"$P_aq_(,8a1LQG`OnGp.\\\\\\\">Password</field></block><\\\"],[0,\\\"/val\\\"]],\\\"start1\\\":1555,\\\"start2\\\":1555,\\\"length1\\\":104,\\\"length2\\\":8},{\\\"diffs\\\":[[0,\\\"t></block></\\\"],[-1,\\\"next></block></\\\"],[0,\\\"statement></\\\"]],\\\"start1\\\":1797,\\\"start2\\\":1797,\\\"length1\\\":39,\\\"length2\\\":24},{\\\"diffs\\\":[[0,\\\"ice_\\\"],[-1,\\\"pin_event\\\\\\\" x=\\\\\\\"-183\\\\\\\" y=\\\\\\\"236\\\\\\\"><field name=\\\\\\\"name\\\\\\\">TouchPin.P1</field><statement name=\\\\\\\"HANDLER\\\\\\\"><block type=\\\\\\\"radio_datagram_send_string\\\\\\\"><value name=\\\\\\\"msg\\\\\\\"><shadow type=\\\\\\\"text\\\\\\\"><field name=\\\\\\\"TEXT\\\\\\\">Got it!</field></shadow></value></block></statement\\\"],[1,\\\"note\\\\\\\" disabled-reasons=\\\\\\\"ORPHANED_BLOCK,MANUALLY_DISABLED\\\\\\\" x=\\\\\\\"-103\\\\\\\" y=\\\\\\\"171\\\\\\\"><field name=\\\\\\\"name\\\\\\\">262</field\\\"],[0,\\\"></b\\\"]],\\\"start1\\\":2166,\\\"start2\\\":2166,\\\"length1\\\":249,\\\"length2\\\":112},{\\\"diffs\\\":[[0,\\\" x=\\\\\\\"\\\"],[-1,\\\"193\\\"],[1,\\\"99\\\"],[0,\\\"\\\\\\\" y=\\\\\\\"2\\\"],[-1,\\\"69\\\"],[1,\\\"75\\\"],[0,\\\"\\\\\\\"><f\\\"]],\\\"start1\\\":2316,\\\"start2\\\":2316,\\\"length1\\\":19,\\\"length2\\\":18},{\\\"diffs\\\":[[0,\\\"ck><\\\"],[-1,\\\"block type=\\\\\\\"device_button_event\\\\\\\" x=\\\\\\\"-250\\\\\\\" y=\\\\\\\"549\\\\\\\"><field name=\\\\\\\"NAME\\\\\\\">Button.B</field><statement name=\\\\\\\"HANDLER\\\\\\\"><block type=\\\\\\\"radio_datagram_send_string\\\\\\\"><value name=\\\\\\\"msg\\\\\\\"><shadow type=\\\\\\\"text\\\\\\\"><field name=\\\\\\\"TEXT\\\\\\\">Bye!</field></shadow></value></block></statement></block><block type=\\\\\\\"device_button_event\\\\\\\" x=\\\\\\\"-265\\\\\\\" y=\\\\\\\"801\\\\\\\"><field name=\\\\\\\"NAME\\\\\\\">Button.AB</field><statement name=\\\\\\\"HANDLER\\\\\\\"><block type=\\\\\\\"radio_datagram_send_string\\\\\\\"><value name=\\\\\\\"msg\\\\\\\"><shadow type=\\\\\\\"text\\\\\\\"><field name=\\\\\\\"TEXT\\\\\\\">I'm Hungry</field></shadow></value></block></statement></block><\\\"],[0,\\\"/xml\\\"]],\\\"start1\\\":3050,\\\"start2\\\":3050,\\\"length1\\\":549,\\\"length2\\\":8}]},{\\\"type\\\":\\\"edited\\\",\\\"filename\\\":\\\"main.ts\\\",\\\"patch\\\":[{\\\"diffs\\\":[[0,\\\"\\\\n})\\\\n\\\"],[-1,\\\"input.onButtonPressed(Button.AB, function () {\\\\n radio.sendString(\\\\\\\"I'm Hungry\\\\\\\")\\\\n})\\\\n\\\"],[0,\\\"radi\\\"]],\\\"start1\\\":72,\\\"start2\\\":72,\\\"length1\\\":93,\\\"length2\\\":8},{\\\"diffs\\\":[[0,\\\"\\\\n})\\\\n\\\"],[-1,\\\"input.onButtonPressed(Button.B, function () {\\\\n radio.sendString(\\\\\\\"Bye!\\\\\\\")\\\\n})\\\\ninput.onPinPressed(TouchPin.P1, function () {\\\\n radio.sendString(\\\\\\\"Got it!\\\\\\\")\\\\n})\\\\nlet Password = 0\\\\n\\\"],[0,\\\"let \\\"]],\\\"start1\\\":163,\\\"start2\\\":163,\\\"length1\\\":184,\\\"length2\\\":8},{\\\"diffs\\\":[[0,\\\" \\\"],[-1,\\\"radio.setGroup(255)\\\\n while (!(input.buttonIsPressed(Button.A))) {\\\\n Password += 1\\\\n basic.showNumber(Password)\\\\n if (input.buttonIsPressed(Button.B\\\"],[1,\\\"while (!(false\\\"],[0,\\\")) {\\\"]],\\\"start1\\\":347,\\\"start2\\\":347,\\\"length1\\\":192,\\\"length2\\\":22},{\\\"diffs\\\":[[0,\\\" \\\"],[-1,\\\" \\\"],[-1,\\\" \\\\t\\\\n }\\\"],[1,\\\"\\\\t\\\"],[0,\\\"\\\\n \\\"]],\\\"start1\\\":374,\\\"start2\\\":374,\\\"length1\\\":27,\\\"length2\\\":9},{\\\"diffs\\\":[[0,\\\"!\\\\\\\", \\\"],[-1,\\\"Password\\\"],[1,\\\"1234\\\"],[0,\\\")\\\\n \\\"]],\\\"start1\\\":462,\\\"start2\\\":462,\\\"length1\\\":16,\\\"length2\\\":12}]}]},{\\\"timestamp\\\":1731847490415,\\\"editorVersion\\\":\\\"7.0.51\\\",\\\"changes\\\":[{\\\"type\\\":\\\"edited\\\",\\\"filename\\\":\\\"main.blocks\\\",\\\"patch\\\":[{\\\"diffs\\\":[[0,\\\"riable><\\\"],[1,\\\"variable id=\\\\\\\"$P_aq_(,8a1LQG`OnGp.\\\\\\\">Password</variable><\\\"],[0,\\\"/variabl\\\"]],\\\"start1\\\":117,\\\"start2\\\":117,\\\"length1\\\":16,\\\"length2\\\":71},{\\\"diffs\\\":[[0,\\\"=\\\\\\\"-1\\\"],[-1,\\\"66\\\"],[1,\\\"48\\\"],[0,\\\"\\\\\\\" y=\\\\\\\"-5\\\"],[-1,\\\"78\\\"],[1,\\\"50\\\"],[0,\\\"\\\\\\\"><s\\\"]],\\\"start1\\\":221,\\\"start2\\\":221,\\\"length1\\\":19,\\\"length2\\\":19},{\\\"diffs\\\":[[0,\\\"ue><\\\"],[-1,\\\"/block></statement></block><block type=\\\\\\\"device_pin_event\\\\\\\" x=\\\\\\\"-91\\\\\\\" y=\\\\\\\"-325\\\\\\\"><field name=\\\\\\\"name\\\\\\\">TouchPin.P0</field><statement name=\\\\\\\"HANDLER\\\\\\\"><block type=\\\\\\\"variables_change\\\"],[1,\\\"next><block type=\\\\\\\"controls_if\\\\\\\"><value name=\\\\\\\"IF0\\\\\\\"><shadow type=\\\\\\\"logic_boolean\\\\\\\"><field name=\\\\\\\"BOOL\\\\\\\">TRUE</field></shadow><block type=\\\\\\\"logic_operation\\\\\\\"><field name=\\\\\\\"OP\\\\\\\">AND</field><value name=\\\\\\\"A\\\\\\\"><block type=\\\\\\\"device_pin_is_pressed\\\\\\\"><field name=\\\\\\\"NAME\\\\\\\">TouchPin.P2</field></block></value><value name=\\\\\\\"B\\\\\\\"><block type=\\\\\\\"device_pin_is_pressed\\\\\\\"><field name=\\\\\\\"NAME\\\\\\\">TouchPin.P0</field></block></value></block></value><statement name=\\\\\\\"DO0\\\\\\\"><block type=\\\\\\\"radio_set_group\\\\\\\"><value name=\\\\\\\"ID\\\\\\\"><shadow type=\\\\\\\"math_number_minmax\\\\\\\"><mutation min=\\\\\\\"0\\\\\\\" max=\\\\\\\"255\\\\\\\" label=\\\\\\\"Id\\\\\\\" precision=\\\\\\\"0\\\\\\\"></mutation><field name=\\\\\\\"SLIDER\\\\\\\">255</field></shadow></value><next><block type=\\\\\\\"device_while\\\\\\\"><value name=\\\\\\\"COND\\\\\\\"><shadow type=\\\\\\\"logic_boolean\\\\\\\" disabled-reasons=\\\\\\\"MANUALLY_DISABLED\\\\\\\"><field name=\\\\\\\"BOOL\\\\\\\">FALSE</field></shadow><block type=\\\\\\\"logic_negate\\\\\\\"><value name=\\\\\\\"BOOL\\\\\\\"><block type=\\\\\\\"device_get_button2\\\\\\\"><field name=\\\\\\\"NAME\\\\\\\">Button.A</field></block></value></block></value><statement name=\\\\\\\"DO\\\\\\\"><block type=\\\\\\\"variables_change\\\\\\\"><field name=\\\\\\\"VAR\\\\\\\" id=\\\\\\\"$P_aq_(,8a1LQG`OnGp.\\\\\\\">Password</field><value name=\\\\\\\"VALUE\\\\\\\"><shadow type=\\\\\\\"math_number\\\\\\\"><field name=\\\\\\\"NUM\\\\\\\">1</field></shadow></value><next><block type=\\\\\\\"device_show_number\\\\\\\"><value name=\\\\\\\"number\\\\\\\"><shadow type=\\\\\\\"math_number\\\\\\\"><field name=\\\\\\\"NUM\\\\\\\">0</field></shadow><block type=\\\\\\\"variables_get\\\\\\\"><field name=\\\\\\\"VAR\\\\\\\" id=\\\\\\\"$P_aq_(,8a1LQG`OnGp.\\\\\\\">Password</field></block></value><next><block type=\\\\\\\"controls_if\\\\\\\"><value name=\\\\\\\"IF0\\\\\\\"><shadow type=\\\\\\\"logic_boolean\\\\\\\"><field name=\\\\\\\"BOOL\\\\\\\">TRUE</field></shadow><block type=\\\\\\\"device_get_button2\\\\\\\"><field name=\\\\\\\"NAME\\\\\\\">Button.B</field></block></value></block></next></block></next></block></statement><next><block type=\\\\\\\"radio_set_group\\\\\\\"><value name=\\\\\\\"ID\\\\\\\"><shadow type=\\\\\\\"math_number_minmax\\\\\\\"><mutation min=\\\\\\\"0\\\\\\\" max=\\\\\\\"255\\\\\\\" label=\\\\\\\"Id\\\\\\\" precision=\\\\\\\"0\\\\\\\"></mutation><field name=\\\\\\\"SLIDER\\\\\\\">117</field></shadow></value><next><block type=\\\\\\\"radio_datagram_send_value\\\\\\\"><value name=\\\\\\\"name\\\\\\\"><shadow type=\\\\\\\"text\\\\\\\"><field name=\\\\\\\"TEXT\\\\\\\">I know the password!</field></shadow></value><value name=\\\\\\\"value\\\\\\\"><shadow type=\\\\\\\"math_number\\\\\\\"><field name=\\\\\\\"NUM\\\\\\\">1234</field></shadow><block type=\\\\\\\"variables_get\\\\\\\"><field name=\\\\\\\"VAR\\\\\\\" id=\\\\\\\"$P_aq_(,8a1LQG`OnGp.\\\\\\\">Password</field></block></value><next><block type=\\\\\\\"variables_set\\\"],[0,\\\"\\\\\\\"><f\\\"]],\\\"start1\\\":552,\\\"start2\\\":552,\\\"length1\\\":176,\\\"length2\\\":2187},{\\\"diffs\\\":[[0,\\\"value></block></\\\"],[1,\\\"next></block></next></block></next></block></next></block></statement></block></next></block></\\\"],[0,\\\"statement></bloc\\\"]],\\\"start1\\\":2885,\\\"start2\\\":2885,\\\"length1\\\":32,\\\"length2\\\":127}]},{\\\"type\\\":\\\"edited\\\",\\\"filename\\\":\\\"main.ts\\\",\\\"patch\\\":[{\\\"diffs\\\":[[-1,\\\"input.onPinPressed(TouchPin.P0, function on_pin_pressed_p0() {\\\\n \\\\n Radio_Group += 1\\\\n})\\\\n\\\"],[0,\\\"inpu\\\"]],\\\"start1\\\":0,\\\"start2\\\":0,\\\"length1\\\":96,\\\"length2\\\":4},{\\\"diffs\\\":[[0,\\\"unction \\\"],[-1,\\\"on_button_pressed_a\\\"],[0,\\\"() {\\\\n \\\"]],\\\"start1\\\":33,\\\"start2\\\":33,\\\"length1\\\":35,\\\"length2\\\":16},{\\\"diffs\\\":[[0,\\\"ion \\\"],[-1,\\\"on_button_pressed_ab\\\"],[0,\\\"() {\\\"]],\\\"start1\\\":114,\\\"start2\\\":114,\\\"length1\\\":28,\\\"length2\\\":8},{\\\"diffs\\\":[[0,\\\"ion \\\"],[-1,\\\"on_received_string\\\"],[0,\\\"(rec\\\"]],\\\"start1\\\":189,\\\"start2\\\":189,\\\"length1\\\":26,\\\"length2\\\":8},{\\\"diffs\\\":[[0,\\\"ring\\\"],[-1,\\\": string\\\"],[0,\\\") {\\\\n\\\"]],\\\"start1\\\":204,\\\"start2\\\":204,\\\"length1\\\":16,\\\"length2\\\":8},{\\\"diffs\\\":[[0,\\\"ion \\\"],[-1,\\\"on_button_pressed_b\\\"],[0,\\\"() {\\\"]],\\\"start1\\\":289,\\\"start2\\\":289,\\\"length1\\\":27,\\\"length2\\\":8},{\\\"diffs\\\":[[0,\\\"ion \\\"],[-1,\\\"on_pin_pressed_p1\\\"],[0,\\\"() {\\\"]],\\\"start1\\\":367,\\\"start2\\\":367,\\\"length1\\\":25,\\\"length2\\\":8},{\\\"diffs\\\":[[0,\\\"t!\\\\\\\")\\\\n})\\\\n\\\"],[1,\\\"let Password = 0\\\\n\\\"],[0,\\\"let Radi\\\"]],\\\"start1\\\":403,\\\"start2\\\":403,\\\"length1\\\":16,\\\"length2\\\":33},{\\\"diffs\\\":[[0,\\\"ion \\\"],[-1,\\\"on_forever\\\"],[0,\\\"() {\\\"]],\\\"start1\\\":485,\\\"start2\\\":485,\\\"length1\\\":18,\\\"length2\\\":8},{\\\"diffs\\\":[[0,\\\"_Group)\\\\n\\\"],[1,\\\" if (input.pinIsPressed(TouchPin.P2) && input.pinIsPressed(TouchPin.P0)) {\\\\n radio.setGroup(255)\\\\n while (!(input.buttonIsPressed(Button.A))) {\\\\n Password += 1\\\\n basic.showNumber(Password)\\\\n if (input.buttonIsPressed(Button.B)) {\\\\n \\\\t\\\\n }\\\\n }\\\\n radio.setGroup(117)\\\\n radio.sendValue(\\\\\\\"I know the password!\\\\\\\", Password)\\\\n Radio_Group = 1\\\\n }\\\\n\\\"],[0,\\\"})\\\\n\\\"]],\\\"start1\\\":518,\\\"start2\\\":518,\\\"length1\\\":11,\\\"length2\\\":440}]},{\\\"type\\\":\\\"edited\\\",\\\"filename\\\":\\\"pxt.json\\\",\\\"patch\\\":[{\\\"diffs\\\":[[0,\\\"\\\\\\\": \\\\\\\"\\\"],[-1,\\\"Micro Chat\\\"],[1,\\\"Fun with Radio\\\"],[0,\\\"\\\\\\\",\\\\n \\\"]],\\\"start1\\\":11,\\\"start2\\\":11,\\\"length1\\\":18,\\\"length2\\\":22},{\\\"diffs\\\":[[0,\\\"ory\\\\\\\"\\\"],[-1,\\\",\\\\n \\\\\\\"main.py\\\\\\\"\\\"],[0,\\\"\\\\n \\\"]],\\\"start1\\\":265,\\\"start2\\\":265,\\\"length1\\\":27,\\\"length2\\\":8},{\\\"diffs\\\":[[0,\\\"\\\\\\\": \\\\\\\"\\\"],[-1,\\\"py\\\"],[1,\\\"blocks\\\"],[0,\\\"prj\\\\\\\"\\\"]],\\\"start1\\\":297,\\\"start2\\\":297,\\\"length1\\\":10,\\\"length2\\\":14}]},{\\\"type\\\":\\\"added\\\",\\\"filename\\\":\\\"main.py\\\",\\\"value\\\":\\\"def on_pin_pressed_p0():\\\\n global Radio_Group\\\\n Radio_Group += 1\\\\ninput.on_pin_pressed(TouchPin.P0, on_pin_pressed_p0)\\\\n\\\\ndef on_button_pressed_a():\\\\n radio.send_string(\\\\\\\"Hi\\\\\\\")\\\\ninput.on_button_pressed(Button.A, on_button_pressed_a)\\\\n\\\\ndef on_button_pressed_ab():\\\\n radio.send_string(\\\\\\\"I'm Hungry\\\\\\\")\\\\ninput.on_button_pressed(Button.AB, on_button_pressed_ab)\\\\n\\\\ndef on_received_string(receivedString):\\\\n basic.show_string(receivedString)\\\\nradio.on_received_string(on_received_string)\\\\n\\\\ndef on_button_pressed_b():\\\\n radio.send_string(\\\\\\\"Bye!\\\\\\\")\\\\ninput.on_button_pressed(Button.B, on_button_pressed_b)\\\\n\\\\ndef on_pin_pressed_p1():\\\\n radio.send_string(\\\\\\\"Got it!\\\\\\\")\\\\ninput.on_pin_pressed(TouchPin.P1, on_pin_pressed_p1)\\\\n\\\\nRadio_Group = 0\\\\nradio.set_group(1)\\\\n\\\\ndef on_forever():\\\\n radio.set_group(Radio_Group)\\\\nbasic.forever(on_forever)\\\\n\\\"}]}],\\\"snapshots\\\":[{\\\"timestamp\\\":1731846265996,\\\"editorVersion\\\":\\\"7.0.51\\\",\\\"text\\\":{\\\"main.blocks\\\":\\\"<xml xmlns=\\\\\\\"http://www.w3.org/1999/xhtml\\\\\\\">\\\\n <block type=\\\\\\\"pxt-on-start\\\\\\\"></block>\\\\n <block type=\\\\\\\"device_forever\\\\\\\"></block>\\\\n</xml>\\\",\\\"main.ts\\\":\\\"\\\",\\\"README.md\\\":\\\"\\\",\\\"pxt.json\\\":\\\"{\\\\n \\\\\\\"name\\\\\\\": \\\\\\\"Fun with Radio\\\\\\\",\\\\n \\\\\\\"description\\\\\\\": \\\\\\\"\\\\\\\",\\\\n \\\\\\\"dependencies\\\\\\\": {\\\\n \\\\\\\"core\\\\\\\": \\\\\\\"*\\\\\\\",\\\\n \\\\\\\"radio\\\\\\\": \\\\\\\"*\\\\\\\",\\\\n \\\\\\\"microphone\\\\\\\": \\\\\\\"*\\\\\\\"\\\\n },\\\\n \\\\\\\"files\\\\\\\": [\\\\n \\\\\\\"main.blocks\\\\\\\",\\\\n \\\\\\\"main.ts\\\\\\\",\\\\n \\\\\\\"README.md\\\\\\\"\\\\n ],\\\\n \\\\\\\"preferredEditor\\\\\\\": \\\\\\\"blocksprj\\\\\\\",\\\\n \\\\\\\"additionalFilePaths\\\\\\\": []\\\\n}\\\\n\\\"}}],\\\"shares\\\":[],\\\"lastSaveTime\\\":1731847871925}\",\"main.py\":\"def on_pin_pressed_p0():\\n global Radio_Group\\n Radio_Group += 1\\ninput.on_pin_pressed(TouchPin.P0, on_pin_pressed_p0)\\n\\ndef on_button_pressed_a():\\n radio.send_string(\\\"Hi\\\")\\ninput.on_button_pressed(Button.A, on_button_pressed_a)\\n\\ndef on_button_pressed_ab():\\n radio.send_string(\\\"I'm Hungry\\\")\\ninput.on_button_pressed(Button.AB, on_button_pressed_ab)\\n\\ndef on_received_string(receivedString):\\n basic.show_string(receivedString)\\nradio.on_received_string(on_received_string)\\n\\ndef on_button_pressed_b():\\n radio.send_string(\\\"Bye!\\\")\\ninput.on_button_pressed(Button.B, on_button_pressed_b)\\n\\ndef on_pin_pressed_p1():\\n radio.send_string(\\\"Got it!\\\")\\ninput.on_pin_pressed(TouchPin.P1, on_pin_pressed_p1)\\n\\nRadio_Group = 0\\nradio.set_group(1)\\n\\ndef on_forever():\\n radio.set_group(Radio_Group)\\nbasic.forever(on_forever)\\n\"}}],\"shares\":[],\"lastSaveTime\":1731851169270}","main.py":"def on_pin_pressed_p0():\n global Radio_Group\n Radio_Group += 1\ninput.on_pin_pressed(TouchPin.P0, on_pin_pressed_p0)\n\ndef on_button_pressed_a():\n radio.send_string(\"Hi\")\ninput.on_button_pressed(Button.A, on_button_pressed_a)\n\ndef on_button_pressed_ab():\n radio.send_string(\"I'm Hungry\")\ninput.on_button_pressed(Button.AB, on_button_pressed_ab)\n\ndef on_received_string(receivedString):\n basic.show_string(receivedString)\nradio.on_received_string(on_received_string)\n\ndef on_button_pressed_b():\n radio.send_string(\"Bye!\")\ninput.on_button_pressed(Button.B, on_button_pressed_b)\n\ndef on_pin_pressed_p1():\n radio.send_string(\"Got it!\")\ninput.on_pin_pressed(TouchPin.P1, on_pin_pressed_p1)\n\nRadio_Group = 0\nradio.set_group(1)\nitem = 0\n\ndef on_forever():\n radio.set_group(Radio_Group)\nbasic.forever(on_forever)\n"}}],"shares":[],"lastSaveTime":1733502644417}