feat: sync micropython esp32 family source configs
This commit is contained in:
3
mixly/boards/default_src/micropython_esp32s2/.npmignore
Normal file
3
mixly/boards/default_src/micropython_esp32s2/.npmignore
Normal file
@@ -0,0 +1,3 @@
|
||||
node_modules
|
||||
build
|
||||
origin
|
||||
@@ -0,0 +1,101 @@
|
||||
import { Profile } from 'mixly';
|
||||
|
||||
const pins = {};
|
||||
|
||||
pins["MixGo CE"] = {
|
||||
description: "MicroPython[ESP32C3 MixGo CE]",
|
||||
digital_pin: Profile.generate(['0-18', '21-46']),
|
||||
input_pin: Profile.generate(['0-18', '21-46']),
|
||||
output_pin: Profile.generate(['0-18', '21-45']),
|
||||
pwm_input: Profile.generate(['0-18', '21-46'], 'pwm', 'pwm'),
|
||||
analog_input: Profile.generate(['0-18', '21-46'], 'adc', 'adc'),
|
||||
pwm_output: Profile.generate(['0-18', '21-45'], 'pwm', 'pwm'),
|
||||
analog_output: Profile.generate(['0-18', '21-45'], 'adc', 'adc'),
|
||||
espnow_channel: Profile.generate(['1-13']),
|
||||
haskylens_model: Profile.generate(['0-4']),
|
||||
digital: Profile.generate(['0-18', '21-45'], 'pin', 'pin'),
|
||||
pwm_pin: Profile.generate(['0-18', '21-45']),
|
||||
pwm: Profile.generate(['0-18', '21-45'], 'pwm', 'pwm'),
|
||||
analog_pin: Profile.generate(['1-18']),
|
||||
analog: Profile.generate(['1-18'], 'adc', 'adc'),
|
||||
dac_pin: Profile.generate(['17-18']),
|
||||
dac: Profile.generate(['17-18'], 'dac', 'dac'),
|
||||
touch: Profile.generate(['1-14'], 'tc', 'tc'),
|
||||
touch_pin: Profile.generate(['1-14']),
|
||||
button: [["B1", "B1key"], ["B2", "B2key"], ["A1", "A1key"], ["A2", "A2key"], ["A3", "A3key"], ["A4", "A4key"]],
|
||||
buttonB: [["B1", "B1key"], ["B2", "B2key"]],
|
||||
axis: Profile.generate(['0-4']),
|
||||
exlcdh: Profile.generate(['0-15']),
|
||||
exlcdv: Profile.generate(['0-7']),
|
||||
brightness: Profile.generate(['0-9']),
|
||||
tts_voice: Profile.generate(['0-16']),
|
||||
tts_builtin_music: Profile.generate(['0-47']),
|
||||
tts_bgmusic: Profile.generate(['0-15']),
|
||||
builtinimg: [["HEART", "onboard_matrix.HEART"], ["HEART_SMALL", "onboard_matrix.HEART_SMALL"], ["HAPPY", "onboard_matrix.HAPPY"], ["SAD", "onboard_matrix.SAD"], ["SMILE", "onboard_matrix.SMILE"], ["SILLY", "onboard_matrix.SILLY"], ["FABULOUS", "onboard_matrix.FABULOUS"], ["SURPRISED", "onboard_matrix.SURPRISED"], ["ASLEEP", "onboard_matrix.ASLEEP"], ["ANGRY", "onboard_matrix.ANGRY"], ["CONFUSED", "onboard_matrix.CONFUSED"], ["NO", "onboard_matrix.NO"], ["YES", "onboard_matrix.YES"], ["LEFT_ARROW", "onboard_matrix.LEFT_ARROW"], ["RIGHT_ARROW", "onboard_matrix.RIGHT_ARROW"], ["DRESS", "onboard_matrix.DRESS"], ["TRANSFORMERS", "onboard_matrix.TRANSFORMERS"], ["SCISSORS", "onboard_matrix.SCISSORS"], ["EXIT", "onboard_matrix.EXIT"], ["TREE", "onboard_matrix.TREE"], ["PACMAN", "onboard_matrix.PACMAN"], ["TARGET", "onboard_matrix.TARGET"], ["TSHIRT", "onboard_matrix.TSHIRT"], ["ROLLERSKATE", "onboard_matrix.ROLLERSKATE"], ["DUCK", "onboard_matrix.DUCK"], ["HOUSE", "onboard_matrix.HOUSE"], ["TORTOISE", "onboard_matrix.TORTOISE"], ["BUTTERFLY", "onboard_matrix.BUTTERFLY"], ["STICKFIGURE", "onboard_matrix.STICKFIGURE"], ["GHOST", "onboard_matrix.GHOST"], ["PITCHFORK", "onboard_matrix.PITCHFORK"], ["MUSIC_QUAVERS", "onboard_matrix.MUSIC_QUAVERS"], ["MUSIC_QUAVER", "onboard_matrix.MUSIC_QUAVER"], ["MUSIC_CROTCHET", "onboard_matrix.MUSIC_CROTCHET"], ["COW", "onboard_matrix.COW"], ["RABBIT", "onboard_matrix.RABBIT"], ["SQUARE_SMALL", "onboard_matrix.SQUARE_SMALL"], ["SQUARE", "onboard_matrix.SQUARE"], ["DIAMOND_SMALL", "onboard_matrix.DIAMOND_SMALL"], ["DIAMOND", "onboard_matrix.DIAMOND"], ["CHESSBOARD", "onboard_matrix.CHESSBOARD"], ["TRIANGLE_LEFT", "onboard_matrix.TRIANGLE_LEFT"], ["TRIANGLE", "onboard_matrix.TRIANGLE"], ["SNAKE", "onboard_matrix.SNAKE"], ["UMBRELLA", "onboard_matrix.UMBRELLA"], ["SKULL", "onboard_matrix.SKULL"], ["GIRAFFE", "onboard_matrix.GIRAFFE"], ["SWORD", "onboard_matrix.SWORD"],["DOOR_CLOSE", "onboard_matrix.DOOR_CLOSE"],
|
||||
["DOOR_OPEN", "onboard_matrix.DOOR_OPEN"],
|
||||
["DOOR_OPENING", "onboard_matrix.DOOR_OPENING"]],
|
||||
//builtinimg: [["HEART", "onboard_matrix.HEART"],["HEART_SMALL", "onboard_matrix.HEART_SMALL"],["HAPPY", "onboard_matrix.HAPPY"],["SAD", "onboard_matrix.SAD"],["SMILE", "onboard_matrix.SMILE"],["SILLY", "onboard_matrix.SILLY"],["FABULOUS", "onboard_matrix.FABULOUS"],["SURPRISED", "onboard_matrix.SURPRISED"],["ASLEEP", "onboard_matrix.ASLEEP"],["ANGRY", "onboard_matrix.ANGRY"],["CONFUSED", "onboard_matrix.CONFUSED"],["NO", "onboard_matrix.NO"],["YES", "onboard_matrix.YES"]],
|
||||
builtinimg_extern: [["HEART", "matrix32x12.Matrix.HEART"], ["HEART_SMALL", "matrix32x12.Matrix.HEART_SMALL"], ["HAPPY", "matrix32x12.Matrix.HAPPY"], ["SAD", "matrix32x12.Matrix.SAD"], ["SMILE", "matrix32x12.Matrix.SMILE"], ["SILLY", "matrix32x12.Matrix.SILLY"], ["FABULOUS", "matrix32x12.Matrix.FABULOUS"], ["SURPRISED", "matrix32x12.Matrix.SURPRISED"], ["ASLEEP", "matrix32x12.Matrix.ASLEEP"], ["ANGRY", "matrix32x12.Matrix.ANGRY"], ["CONFUSED", "matrix32x12.Matrix.CONFUSED"], ["NO", "matrix32x12.Matrix.NO"], ["YES", "matrix32x12.Matrix.YES"], ["LEFT_ARROW", "matrix32x12.Matrix.LEFT_ARROW"], ["RIGHT_ARROW", "matrix32x12.Matrix.RIGHT_ARROW"], ["DRESS", "matrix32x12.Matrix.DRESS"], ["TRANSFORMERS", "matrix32x12.Matrix.TRANSFORMERS"], ["SCISSORS", "matrix32x12.Matrix.SCISSORS"], ["EXIT", "matrix32x12.Matrix.EXIT"], ["TREE", "matrix32x12.Matrix.TREE"], ["PACMAN", "matrix32x12.Matrix.PACMAN"], ["TARGET", "matrix32x12.Matrix.TARGET"], ["TSHIRT", "matrix32x12.Matrix.TSHIRT"], ["ROLLERSKATE", "matrix32x12.Matrix.ROLLERSKATE"], ["DUCK", "matrix32x12.Matrix.DUCK"], ["HOUSE", "matrix32x12.Matrix.HOUSE"], ["TORTOISE", "matrix32x12.Matrix.TORTOISE"], ["BUTTERFLY", "matrix32x12.Matrix.BUTTERFLY"], ["STICKFIGURE", "matrix32x12.Matrix.STICKFIGURE"], ["GHOST", "matrix32x12.Matrix.GHOST"], ["PITCHFORK", "matrix32x12.Matrix.PITCHFORK"], ["onboard_music_QUAVERS", "matrix32x12.Matrix.onboard_music_QUAVERS"], ["onboard_music_QUAVER", "matrix32x12.Matrix.onboard_music_QUAVER"], ["onboard_music_CROTCHET", "matrix32x12.Matrix.onboard_music_CROTCHET"], ["COW", "matrix32x12.Matrix.COW"], ["RABBIT", "matrix32x12.Matrix.RABBIT"], ["SQUARE_SMALL", "matrix32x12.Matrix.SQUARE_SMALL"], ["SQUARE", "matrix32x12.Matrix.SQUARE"], ["DIAMOND_SMALL", "matrix32x12.Matrix.DIAMOND_SMALL"], ["DIAMOND", "matrix32x12.Matrix.DIAMOND"], ["CHESSBOARD", "matrix32x12.Matrix.CHESSBOARD"], ["TRIANGLE_LEFT", "matrix32x12.Matrix.TRIANGLE_LEFT"], ["TRIANGLE", "matrix32x12.Matrix.TRIANGLE"], ["SNAKE", "matrix32x12.Matrix.SNAKE"], ["UMBRELLA", "matrix32x12.Matrix.UMBRELLA"], ["SKULL", "matrix32x12.Matrix.SKULL"], ["GIRAFFE", "matrix32x12.Matrix.GIRAFFE"], ["SWORD", "matrix32x12.Matrix.SWORD"]],
|
||||
imglist: [["ALL_CLOCKS", "matrix.Image.ALL_CLOCKS"], ["ALL_ARROWS", "matrix.Image.ALL_ARROWS"]],
|
||||
playlist: [["DADADADUM", "onboard_music.DADADADUM"], ["ENTERTAINER", "onboard_music.ENTERTAINER"], ["PRELUDE", "onboard_music.PRELUDE"], ["ODE", "onboard_music.ODE"], ["NYAN", "onboard_music.NYAN"], ["RINGTONE", "onboard_music.RINGTONE"], ["FUNK", "onboard_music.FUNK"], ["BLUES", "onboard_music.BLUES"], ["BIRTHDAY", "onboard_music.BIRTHDAY"], ["WEDDING", "onboard_music.WEDDING"], ["FUNERAL", "onboard_music.FUNERAL"], ["PUNCHLINE", "onboard_music.PUNCHLINE"], ["PYTHON", "onboard_music.PYTHON"], ["BADDY", "onboard_music.BADDY"], ["CHASE", "onboard_music.CHASE"], ["BA_DING", "onboard_music.BA_DING"], ["WAWAWAWAA", "onboard_music.WAWAWAWAA"], ["JUMP_UP", "onboard_music.JUMP_UP"], ["JUMP_DOWN", "onboard_music.JUMP_DOWN"], ["POWER_UP", "onboard_music.POWER_UP"], ["POWER_DOWN", "onboard_music.POWER_DOWN"]],
|
||||
playlist_extern: [["DADADADUM", "DADADADUM"], ["ENTERTAINER", "ENTERTAINER"], ["PRELUDE", "PRELUDE"], ["ODE", "ODE"], ["NYAN", "NYAN"], ["RINGTONE", "RINGTONE"], ["FUNK", "FUNK"], ["BLUES", "BLUES"], ["BIRTHDAY", "BIRTHDAY"], ["WEDDING", "WEDDING"], ["FUNERAL", "FUNERAL"], ["PUNCHLINE", "PUNCHLINE"], ["PYTHON", "PYTHON"], ["BADDY", "BADDY"], ["CHASE", "CHASE"], ["BA_DING", "BA_DING"], ["WAWAWAWAA", "WAWAWAWAA"], ["JUMP_UP", "JUMP_UP"], ["JUMP_DOWN", "JUMP_DOWN"], ["POWER_UP", "POWER_UP"], ["POWER_DOWN", "POWER_DOWN"]],
|
||||
tone_notes: [
|
||||
["NOTE_C3", "131"], ["NOTE_D3", "147"], ["NOTE_E3", "165"], ["NOTE_F3", "175"], ["NOTE_G3", "196"], ["NOTE_A3", "220"], ["NOTE_B3", "247"],
|
||||
["NOTE_C4", "262"], ["NOTE_D4", "294"], ["NOTE_E4", "330"], ["NOTE_F4", "349"], ["NOTE_G4", "392"], ["NOTE_A4", "440"], ["NOTE_B4", "494"],
|
||||
["NOTE_C5", "523"], ["NOTE_D5", "587"], ["NOTE_E5", "659"], ["NOTE_F5", "698"], ["NOTE_G5", "784"], ["NOTE_A5", "880"], ["NOTE_B5", "988"]
|
||||
],
|
||||
serial_pin: [["pin0", "0"], ["pin1", "1"], ["pin2", "2"], ["pin8", "8"], ["pin12", "12"], ["pin13", "13"], ["pin14", "14"], ["pin15", "15"], ["pin16", "16"]],
|
||||
radio_power: [['0', '0'], ['1', '1'], ['2', '2'], ['3', '3'], ['4', '4'], ['5', '5'], ['6', '6'], ['7', '7']],
|
||||
radio_datarate: [["1Mbit", "RATE_1MBIT"], ["250Kbit", "RATE_250KBIT"], ["2Mbit", "RATE_2MBIT"]],
|
||||
one_more: [["ONE_SHOT", "ONE_SHOT"], ["PERIODIC", "PERIODIC"]],
|
||||
digital_dot: [["0", "0"], ["1", "1"], ["2", "2"]],
|
||||
};
|
||||
|
||||
pins["ESP32S2 Generic"] = {
|
||||
description: "MicroPython[ESP32C3 MixGo CC]",
|
||||
digital_pin: Profile.generate(['0-42', '45']),
|
||||
input_pin: Profile.generate(['0-42', '45-46']),
|
||||
output_pin: Profile.generate(['0-42', '45']),
|
||||
pwm_input: Profile.generate(['0-42', '45-46'], 'pwm', 'pwm'),
|
||||
analog_input: Profile.generate(['0-18', '21-46'], 'adc', 'adc'),
|
||||
pwm_output: Profile.generate(['0-42', '45'], 'pwm', 'pwm'),
|
||||
analog_output: Profile.generate(['0-42', '45'], 'adc', 'adc'),
|
||||
espnow_channel: Profile.generate(['1-13']),
|
||||
haskylens_model: Profile.generate(['0-4']),
|
||||
digital: Profile.generate(['0-42', '45'], 'pin', 'pin'),
|
||||
pwm_pin: Profile.generate(['0-42', '45']),
|
||||
pwm: Profile.generate(['0-42', '45'], 'pwm', 'pwm'),
|
||||
analog_pin: Profile.generate(['1-20']),
|
||||
analog: Profile.generate(['1-20'], 'adc', 'adc'),
|
||||
dac_pin: Profile.generate(['17-18']),
|
||||
dac: Profile.generate(['17-18'], 'dac', 'dac'),
|
||||
touch: Profile.generate(['1-14'], 'tc', 'tc'),
|
||||
touch_pin: Profile.generate(['1-14']),
|
||||
button: [["B1", "B1key"], ["B2", "B2key"], ["A1", "A1key"], ["A2", "A2key"], ["A3", "A3key"], ["A4", "A4key"]],
|
||||
buttonB: [["B1", "B1key"], ["B2", "B2key"]],
|
||||
axis: Profile.generate(['0-4']),
|
||||
exlcdh: Profile.generate(['0-15']),
|
||||
exlcdv: Profile.generate(['0-7']),
|
||||
brightness: Profile.generate(['0-9']),
|
||||
tts_voice: Profile.generate(['0-16']),
|
||||
tts_builtin_music: Profile.generate(['0-47']),
|
||||
tts_bgmusic: Profile.generate(['0-15']),
|
||||
builtinimg: [["HEART", "onboard_matrix.HEART"], ["HEART_SMALL", "onboard_matrix.HEART_SMALL"], ["HAPPY", "onboard_matrix.HAPPY"], ["SAD", "onboard_matrix.SAD"], ["SMILE", "onboard_matrix.SMILE"], ["SILLY", "onboard_matrix.SILLY"], ["FABULOUS", "onboard_matrix.FABULOUS"], ["SURPRISED", "onboard_matrix.SURPRISED"], ["ASLEEP", "onboard_matrix.ASLEEP"], ["ANGRY", "onboard_matrix.ANGRY"], ["CONFUSED", "onboard_matrix.CONFUSED"], ["NO", "onboard_matrix.NO"], ["YES", "onboard_matrix.YES"], ["LEFT_ARROW", "onboard_matrix.LEFT_ARROW"], ["RIGHT_ARROW", "onboard_matrix.RIGHT_ARROW"], ["DRESS", "onboard_matrix.DRESS"], ["TRANSFORMERS", "onboard_matrix.TRANSFORMERS"], ["SCISSORS", "onboard_matrix.SCISSORS"], ["EXIT", "onboard_matrix.EXIT"], ["TREE", "onboard_matrix.TREE"], ["PACMAN", "onboard_matrix.PACMAN"], ["TARGET", "onboard_matrix.TARGET"], ["TSHIRT", "onboard_matrix.TSHIRT"], ["ROLLERSKATE", "onboard_matrix.ROLLERSKATE"], ["DUCK", "onboard_matrix.DUCK"], ["HOUSE", "onboard_matrix.HOUSE"], ["TORTOISE", "onboard_matrix.TORTOISE"], ["BUTTERFLY", "onboard_matrix.BUTTERFLY"], ["STICKFIGURE", "onboard_matrix.STICKFIGURE"], ["GHOST", "onboard_matrix.GHOST"], ["PITCHFORK", "onboard_matrix.PITCHFORK"], ["MUSIC_QUAVERS", "onboard_matrix.MUSIC_QUAVERS"], ["MUSIC_QUAVER", "onboard_matrix.MUSIC_QUAVER"], ["MUSIC_CROTCHET", "onboard_matrix.MUSIC_CROTCHET"], ["COW", "onboard_matrix.COW"], ["RABBIT", "onboard_matrix.RABBIT"], ["SQUARE_SMALL", "onboard_matrix.SQUARE_SMALL"], ["SQUARE", "onboard_matrix.SQUARE"], ["DIAMOND_SMALL", "onboard_matrix.DIAMOND_SMALL"], ["DIAMOND", "onboard_matrix.DIAMOND"], ["CHESSBOARD", "onboard_matrix.CHESSBOARD"], ["TRIANGLE_LEFT", "onboard_matrix.TRIANGLE_LEFT"], ["TRIANGLE", "onboard_matrix.TRIANGLE"], ["SNAKE", "onboard_matrix.SNAKE"], ["UMBRELLA", "onboard_matrix.UMBRELLA"], ["SKULL", "onboard_matrix.SKULL"], ["GIRAFFE", "onboard_matrix.GIRAFFE"], ["SWORD", "onboard_matrix.SWORD"]],
|
||||
//builtinimg: [["HEART", "onboard_matrix.HEART"],["HEART_SMALL", "onboard_matrix.HEART_SMALL"],["HAPPY", "onboard_matrix.HAPPY"],["SAD", "onboard_matrix.SAD"],["SMILE", "onboard_matrix.SMILE"],["SILLY", "onboard_matrix.SILLY"],["FABULOUS", "onboard_matrix.FABULOUS"],["SURPRISED", "onboard_matrix.SURPRISED"],["ASLEEP", "onboard_matrix.ASLEEP"],["ANGRY", "onboard_matrix.ANGRY"],["CONFUSED", "onboard_matrix.CONFUSED"],["NO", "onboard_matrix.NO"],["YES", "onboard_matrix.YES"]],
|
||||
builtinimg_extern: [["HEART", "matrix32x12.Matrix.HEART"], ["HEART_SMALL", "matrix32x12.Matrix.HEART_SMALL"], ["HAPPY", "matrix32x12.Matrix.HAPPY"], ["SAD", "matrix32x12.Matrix.SAD"], ["SMILE", "matrix32x12.Matrix.SMILE"], ["SILLY", "matrix32x12.Matrix.SILLY"], ["FABULOUS", "matrix32x12.Matrix.FABULOUS"], ["SURPRISED", "matrix32x12.Matrix.SURPRISED"], ["ASLEEP", "matrix32x12.Matrix.ASLEEP"], ["ANGRY", "matrix32x12.Matrix.ANGRY"], ["CONFUSED", "matrix32x12.Matrix.CONFUSED"], ["NO", "matrix32x12.Matrix.NO"], ["YES", "matrix32x12.Matrix.YES"], ["LEFT_ARROW", "matrix32x12.Matrix.LEFT_ARROW"], ["RIGHT_ARROW", "matrix32x12.Matrix.RIGHT_ARROW"], ["DRESS", "matrix32x12.Matrix.DRESS"], ["TRANSFORMERS", "matrix32x12.Matrix.TRANSFORMERS"], ["SCISSORS", "matrix32x12.Matrix.SCISSORS"], ["EXIT", "matrix32x12.Matrix.EXIT"], ["TREE", "matrix32x12.Matrix.TREE"], ["PACMAN", "matrix32x12.Matrix.PACMAN"], ["TARGET", "matrix32x12.Matrix.TARGET"], ["TSHIRT", "matrix32x12.Matrix.TSHIRT"], ["ROLLERSKATE", "matrix32x12.Matrix.ROLLERSKATE"], ["DUCK", "matrix32x12.Matrix.DUCK"], ["HOUSE", "matrix32x12.Matrix.HOUSE"], ["TORTOISE", "matrix32x12.Matrix.TORTOISE"], ["BUTTERFLY", "matrix32x12.Matrix.BUTTERFLY"], ["STICKFIGURE", "matrix32x12.Matrix.STICKFIGURE"], ["GHOST", "matrix32x12.Matrix.GHOST"], ["PITCHFORK", "matrix32x12.Matrix.PITCHFORK"], ["onboard_music_QUAVERS", "matrix32x12.Matrix.onboard_music_QUAVERS"], ["onboard_music_QUAVER", "matrix32x12.Matrix.onboard_music_QUAVER"], ["onboard_music_CROTCHET", "matrix32x12.Matrix.onboard_music_CROTCHET"], ["COW", "matrix32x12.Matrix.COW"], ["RABBIT", "matrix32x12.Matrix.RABBIT"], ["SQUARE_SMALL", "matrix32x12.Matrix.SQUARE_SMALL"], ["SQUARE", "matrix32x12.Matrix.SQUARE"], ["DIAMOND_SMALL", "matrix32x12.Matrix.DIAMOND_SMALL"], ["DIAMOND", "matrix32x12.Matrix.DIAMOND"], ["CHESSBOARD", "matrix32x12.Matrix.CHESSBOARD"], ["TRIANGLE_LEFT", "matrix32x12.Matrix.TRIANGLE_LEFT"], ["TRIANGLE", "matrix32x12.Matrix.TRIANGLE"], ["SNAKE", "matrix32x12.Matrix.SNAKE"], ["UMBRELLA", "matrix32x12.Matrix.UMBRELLA"], ["SKULL", "matrix32x12.Matrix.SKULL"], ["GIRAFFE", "matrix32x12.Matrix.GIRAFFE"], ["SWORD", "matrix32x12.Matrix.SWORD"]],
|
||||
imglist: [["ALL_CLOCKS", "matrix.Image.ALL_CLOCKS"], ["ALL_ARROWS", "matrix.Image.ALL_ARROWS"]],
|
||||
playlist: [["DADADADUM", "onboard_music.DADADADUM"], ["ENTERTAINER", "onboard_music.ENTERTAINER"], ["PRELUDE", "onboard_music.PRELUDE"], ["ODE", "onboard_music.ODE"], ["NYAN", "onboard_music.NYAN"], ["RINGTONE", "onboard_music.RINGTONE"], ["FUNK", "onboard_music.FUNK"], ["BLUES", "onboard_music.BLUES"], ["BIRTHDAY", "onboard_music.BIRTHDAY"], ["WEDDING", "onboard_music.WEDDING"], ["FUNERAL", "onboard_music.FUNERAL"], ["PUNCHLINE", "onboard_music.PUNCHLINE"], ["PYTHON", "onboard_music.PYTHON"], ["BADDY", "onboard_music.BADDY"], ["CHASE", "onboard_music.CHASE"], ["BA_DING", "onboard_music.BA_DING"], ["WAWAWAWAA", "onboard_music.WAWAWAWAA"], ["JUMP_UP", "onboard_music.JUMP_UP"], ["JUMP_DOWN", "onboard_music.JUMP_DOWN"], ["POWER_UP", "onboard_music.POWER_UP"], ["POWER_DOWN", "onboard_music.POWER_DOWN"]],
|
||||
playlist_extern: [["DADADADUM", "DADADADUM"], ["ENTERTAINER", "ENTERTAINER"], ["PRELUDE", "PRELUDE"], ["ODE", "ODE"], ["NYAN", "NYAN"], ["RINGTONE", "RINGTONE"], ["FUNK", "FUNK"], ["BLUES", "BLUES"], ["BIRTHDAY", "BIRTHDAY"], ["WEDDING", "WEDDING"], ["FUNERAL", "FUNERAL"], ["PUNCHLINE", "PUNCHLINE"], ["PYTHON", "PYTHON"], ["BADDY", "BADDY"], ["CHASE", "CHASE"], ["BA_DING", "BA_DING"], ["WAWAWAWAA", "WAWAWAWAA"], ["JUMP_UP", "JUMP_UP"], ["JUMP_DOWN", "JUMP_DOWN"], ["POWER_UP", "POWER_UP"], ["POWER_DOWN", "POWER_DOWN"]],
|
||||
tone_notes: [
|
||||
["NOTE_C3", "131"], ["NOTE_D3", "147"], ["NOTE_E3", "165"], ["NOTE_F3", "175"], ["NOTE_G3", "196"], ["NOTE_A3", "220"], ["NOTE_B3", "247"],
|
||||
["NOTE_C4", "262"], ["NOTE_D4", "294"], ["NOTE_E4", "330"], ["NOTE_F4", "349"], ["NOTE_G4", "392"], ["NOTE_A4", "440"], ["NOTE_B4", "494"],
|
||||
["NOTE_C5", "523"], ["NOTE_D5", "587"], ["NOTE_E5", "659"], ["NOTE_F5", "698"], ["NOTE_G5", "784"], ["NOTE_A5", "880"], ["NOTE_B5", "988"]
|
||||
],
|
||||
serial_pin: [["pin0", "0"], ["pin1", "1"], ["pin2", "2"], ["pin8", "8"], ["pin12", "12"], ["pin13", "13"], ["pin14", "14"], ["pin15", "15"], ["pin16", "16"]],
|
||||
radio_power: [['0', '0'], ['1', '1'], ['2', '2'], ['3', '3'], ['4', '4'], ['5', '5'], ['6', '6'], ['7', '7']],
|
||||
radio_datarate: [["1Mbit", "RATE_1MBIT"], ["250Kbit", "RATE_250KBIT"], ["2Mbit", "RATE_2MBIT"]],
|
||||
one_more: [["ONE_SHOT", "ONE_SHOT"], ["PERIODIC", "PERIODIC"]],
|
||||
digital_dot: [["0", "0"], ["1", "1"], ["2", "2"]],
|
||||
};
|
||||
|
||||
export default pins;
|
||||
259
mixly/boards/default_src/micropython_esp32s2/blocks/inout.js
Normal file
259
mixly/boards/default_src/micropython_esp32s2/blocks/inout.js
Normal file
@@ -0,0 +1,259 @@
|
||||
import * as Blockly from 'blockly/core';
|
||||
|
||||
const BASE_HUE = 20; //'#ae3838';//40;
|
||||
|
||||
export const inout_highlow = {
|
||||
init: function () {
|
||||
this.setColour(BASE_HUE);
|
||||
this.appendDummyInput("")
|
||||
.appendField(new Blockly.FieldDropdown([[Blockly.Msg.MIXLY_HIGH, "HIGH"], [Blockly.Msg.MIXLY_LOW, "LOW"]]), 'BOOL')
|
||||
this.setOutput(true, Boolean);
|
||||
this.setTooltip(Blockly.Msg.MIXLY_ESP32_INOUT_HIGHLOW_TOOLTIP);
|
||||
}
|
||||
};
|
||||
|
||||
export const inout_digital_write = {
|
||||
init: function () {
|
||||
this.setColour(BASE_HUE);
|
||||
this.appendValueInput("PIN", Number)
|
||||
.appendField(Blockly.Msg.MIXLY_Digital_PINMODEOUT)
|
||||
.setCheck(Number);
|
||||
this.appendValueInput("STAT")
|
||||
.appendField(Blockly.Msg.MIXLY_STAT)
|
||||
.setCheck([Number, Boolean]);
|
||||
this.setPreviousStatement(true, null);
|
||||
this.setNextStatement(true, null);
|
||||
this.setInputsInline(true);
|
||||
this.setTooltip(Blockly.Msg.MIXLY_ESP32_INOUT_DIGITAL_WRITE_TOOLTIP);
|
||||
}
|
||||
};
|
||||
|
||||
export const inout_digital_read = {
|
||||
init: function () {
|
||||
this.setColour(BASE_HUE);
|
||||
this.appendValueInput("PIN", Number)
|
||||
.appendField(Blockly.Msg.MIXLY_MICROBIT_PY_STORAGE_GET)
|
||||
.appendField(Blockly.Msg.MIXLY_Digital_PINMODEIN)
|
||||
.setCheck(Number);
|
||||
this.appendDummyInput()
|
||||
.appendField(Blockly.Msg.MIXLY_ESP32_MACHINE_VALUE)
|
||||
this.setInputsInline(true);
|
||||
this.setOutput(true, [Boolean, Number]);
|
||||
this.setTooltip(Blockly.Msg.MIXLY_ESP32_INOUT_DIGITAL_READ_TOOLTIP);
|
||||
}
|
||||
};
|
||||
|
||||
export const inout_analog_write = {
|
||||
init: function () {
|
||||
this.setColour(BASE_HUE);
|
||||
this.appendValueInput("PIN", Number)
|
||||
.appendField("DAC" + Blockly.Msg.MIXLY_Analog_PINMODEOUT)
|
||||
.setCheck(Number);
|
||||
this.appendValueInput("NUM", Number)
|
||||
.appendField(Blockly.Msg.MIXLY_VALUE2)
|
||||
.setCheck(Number);
|
||||
this.setInputsInline(true);
|
||||
this.setPreviousStatement(true, null);
|
||||
this.setNextStatement(true, null);
|
||||
this.setTooltip(Blockly.Msg.MIXLY_ESP32_INOUT_ANALOG_WRITE_TOOLTIP);
|
||||
}
|
||||
};
|
||||
|
||||
export const inout_analog_write_set = {
|
||||
init: function () {
|
||||
this.setColour(BASE_HUE);
|
||||
this.appendValueInput("PIN", Number)
|
||||
.appendField(Blockly.Msg.MIXLY_Analog_PINMODEOUT)
|
||||
.setCheck(Number);
|
||||
this.appendDummyInput()
|
||||
.appendField(Blockly.Msg.MIXLY_MICROBIT_JS_PERIOD_MIL)
|
||||
.appendField(new Blockly.FieldDropdown([
|
||||
[Blockly.Msg.MIXLY_mSecond, "period"],
|
||||
[Blockly.Msg.MIXLY_uSecond, "period_microseconds"]
|
||||
]), "key");
|
||||
this.appendValueInput("NUM", Number)
|
||||
.appendField(Blockly.Msg.MIXLY_STAT)
|
||||
.setCheck(Number);
|
||||
this.setInputsInline(true);
|
||||
this.setPreviousStatement(true, null);
|
||||
this.setNextStatement(true, null);
|
||||
this.setTooltip(Blockly.Msg.MIXLY_ESP32_INOUT_ANALOG_WRITE_SET_TOOLTIP);
|
||||
}
|
||||
};
|
||||
|
||||
export const inout_analog_atten = {
|
||||
init: function () {
|
||||
this.setColour(BASE_HUE);
|
||||
this.appendValueInput("PIN", Number)
|
||||
.appendField(Blockly.Msg.MIXLY_Analog_PINMODEIN)
|
||||
.setCheck(Number);
|
||||
this.appendDummyInput("")
|
||||
.appendField(Blockly.Msg.MIXLY_ESP32_REF_VOLTAGE + Blockly.Msg.MIXLY_STAT)
|
||||
.appendField(new Blockly.FieldDropdown([
|
||||
["3.3V", "machine.ADC.ATTN_11DB"],
|
||||
["2.2V", "machine.ADC.ATTN_6DB"],
|
||||
["1.5V", "machine.ADC.ATTN_2_5DB"],
|
||||
["1.2V", "machine.ADC.ATTN_0DB"]
|
||||
]), "atten");
|
||||
this.setInputsInline(true);
|
||||
this.setPreviousStatement(true, null);
|
||||
this.setNextStatement(true, null);
|
||||
this.setTooltip(Blockly.Msg.MIXLY_ESP32_INOUT_ANALOG_ATTEN_TOOLTIP);
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
export const inout_pin_pressed = {
|
||||
init: function () {
|
||||
this.setColour(BASE_HUE);
|
||||
this.appendValueInput('pin')
|
||||
.appendField(Blockly.Msg.MIXLY_MICROBIT_PY_STORAGE_GET)
|
||||
.appendField(Blockly.Msg.MIXLY_ESP32_TOUCH_SENSOR);
|
||||
// this.appendDummyInput()
|
||||
// .appendField(Blockly.Msg.MIXLY_IS_TOUCHED);
|
||||
this.appendDummyInput()
|
||||
.appendField(Blockly.Msg.MIXLY_ESP32_MACHINE_VALUE)
|
||||
this.setOutput(true, Number);
|
||||
this.setInputsInline(true);
|
||||
this.setTooltip(Blockly.Msg.MIXLY_ESP32_INOUT_PIN_PRESSED_TOOLTIP);
|
||||
}
|
||||
};
|
||||
|
||||
export const inout_pin_attachInterrupt = {
|
||||
init: function () {
|
||||
this.setColour(20);
|
||||
this.appendValueInput("PIN", Number)
|
||||
.appendField(Blockly.Msg.MIXLY_ATTACHINTERRUPT_PIN)
|
||||
.setCheck(Number);
|
||||
this.appendDummyInput("")
|
||||
.appendField(Blockly.Msg.MIXLY_MODE)
|
||||
.appendField(new Blockly.FieldDropdown([[Blockly.Msg.MIXLY_RISING, "machine.Pin.IRQ_RISING"], [Blockly.Msg.MIXLY_FALLING, "machine.Pin.IRQ_FALLING"], [Blockly.Msg.MIXLY_CHANGE, "(machine.Pin.IRQ_RISING | machine.Pin.IRQ_FALLING)"]]), "mode");
|
||||
this.appendValueInput('DO')
|
||||
.appendField(Blockly.Msg.MIXLY_DO)
|
||||
this.setPreviousStatement(true);
|
||||
this.setNextStatement(true);
|
||||
this.setTooltip(Blockly.Msg.MIXLY_ESP32_INOUT_PIN_ATTACHINTERRUPT_TOOLTIP);
|
||||
}
|
||||
};
|
||||
|
||||
export const inout_digital_init = {
|
||||
init: function () {
|
||||
this.setColour(20);
|
||||
this.appendDummyInput()
|
||||
.appendField(Blockly.Msg.MIXLY_SETUP)
|
||||
.appendField(new Blockly.FieldTextInput('pin#'), 'PIN_OBJ');
|
||||
this.appendDummyInput("")
|
||||
.appendField(Blockly.Msg.MIXLY_MICROPYTHON_AS)
|
||||
// .appendField(Blockly.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE+Blockly.Msg.LISTS_SET_INDEX_INPUT_TO)
|
||||
.appendField(new Blockly.FieldDropdown([
|
||||
[Blockly.Msg.MIXLY_Digital_PINMODEOUT, "machine.Pin.OUT"],
|
||||
[Blockly.Msg.MIXLY_Digital_PINMODEIN, "machine.Pin.IN"],
|
||||
[Blockly.Msg.MIXLY_PINMODEPULLUP, "machine.Pin.IN, machine.Pin.PULL_UP"],
|
||||
[Blockly.Msg.MIXLY_PINMODEPULLDOWN, "machine.Pin.IN, machine.Pin.PULL_DOWN"]
|
||||
]), "MODE")
|
||||
this.appendValueInput("PIN", Number)
|
||||
.appendField(Blockly.Msg.MIXLY_PIN)
|
||||
.setCheck(Number);
|
||||
this.setPreviousStatement(true, null);
|
||||
this.setNextStatement(true, null);
|
||||
this.setInputsInline(true);
|
||||
this.setTooltip(Blockly.Msg.MIXLY_ESP32_INOUT_DIGITAL_INIT_TOOLTIP);
|
||||
},
|
||||
getVars: function () {
|
||||
return [this.getFieldValue('PIN_OBJ') == 'pin#' ? null : this.getFieldValue('PIN_OBJ')];
|
||||
},
|
||||
renameVar: function (oldName, newName) {
|
||||
if (Blockly.Names.equals(oldName, this.getFieldValue('PIN_OBJ'))) {
|
||||
this.setTitleValue(newName, 'PIN_OBJ');
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
export const inout_analog_write_init = {
|
||||
init: function () {
|
||||
this.setColour(BASE_HUE);
|
||||
// this.appendValueInput("PIN", Number)
|
||||
// .appendField(Blockly.Msg.MIXLY_SETUP)
|
||||
// .appendField("PWM"+Blockly.Msg.MIXLY_Analog_PINMODEOUT)
|
||||
// .appendField('pwm')
|
||||
// .setCheck(Number);
|
||||
this.appendDummyInput("")
|
||||
.appendField(Blockly.Msg.MIXLY_SETUP)
|
||||
.appendField(new Blockly.FieldTextInput('dac#'), 'PIN_OBJ')
|
||||
.appendField(Blockly.Msg.MIXLY_MICROPYTHON_AS)
|
||||
this.appendDummyInput("")
|
||||
.appendField("DAC" + Blockly.Msg.MIXLY_Analog_PINMODEOUT)
|
||||
// .appendField('dac')
|
||||
// .appendField(new Blockly.FieldDropdown(profile.default.dac_pin),"PIN")
|
||||
this.appendValueInput("PIN", Number)
|
||||
.appendField(Blockly.Msg.MIXLY_PIN)
|
||||
.setCheck(Number);
|
||||
this.setInputsInline(true);
|
||||
this.setPreviousStatement(true, null);
|
||||
this.setNextStatement(true, null);
|
||||
this.setTooltip(Blockly.Msg.MIXLY_ESP32_INOUT_ANALOG_WRITE_INIT_TOOLTIP);
|
||||
},
|
||||
getVars: function () {
|
||||
return [this.getFieldValue('PIN_OBJ') == 'dac#' ? null : this.getFieldValue('PIN_OBJ')];
|
||||
},
|
||||
renameVar: function (oldName, newName) {
|
||||
if (Blockly.Names.equals(oldName, this.getFieldValue('PIN_OBJ'))) {
|
||||
this.setTitleValue(newName, 'PIN_OBJ');
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
export const inout_pin_pressed_init = {
|
||||
init: function () {
|
||||
this.setColour(BASE_HUE);
|
||||
// this.appendValueInput("PIN", Number)
|
||||
// .appendField(Blockly.Msg.MIXLY_SETUP)
|
||||
// .appendField("PWM"+Blockly.Msg.MIXLY_Analog_PINMODEOUT)
|
||||
// .appendField('pwm')
|
||||
// .setCheck(Number);
|
||||
this.appendDummyInput("")
|
||||
.appendField(Blockly.Msg.MIXLY_SETUP)
|
||||
.appendField(new Blockly.FieldTextInput('tc#'), 'PIN_OBJ')
|
||||
.appendField(Blockly.Msg.MIXLY_MICROPYTHON_AS)
|
||||
this.appendDummyInput("")
|
||||
.appendField(Blockly.Msg.MIXLY_ESP32_TOUCH_SENSOR)
|
||||
// .appendField('tc')
|
||||
// .appendField(new Blockly.FieldDropdown(profile.default.tc_pin),"PIN")
|
||||
this.appendValueInput("PIN", Number)
|
||||
.appendField(Blockly.Msg.MIXLY_PIN)
|
||||
.setCheck(Number);
|
||||
this.setInputsInline(true);
|
||||
this.setPreviousStatement(true, null);
|
||||
this.setNextStatement(true, null);
|
||||
this.setTooltip(Blockly.Msg.MIXLY_ESP32_INOUT_PIN_PRESSED_INIT_TOOLTIP);
|
||||
},
|
||||
getVars: function () {
|
||||
return [this.getFieldValue('PIN_OBJ') == 'tc#' ? null : this.getFieldValue('PIN_OBJ')];
|
||||
},
|
||||
renameVar: function (oldName, newName) {
|
||||
if (Blockly.Names.equals(oldName, this.getFieldValue('PIN_OBJ'))) {
|
||||
this.setTitleValue(newName, 'PIN_OBJ');
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
export const inout_analog_write_set_freq = {
|
||||
init: function () {
|
||||
this.setColour(BASE_HUE);
|
||||
this.appendValueInput("PIN", Number)
|
||||
.appendField("PWM" + Blockly.Msg.MIXLY_Analog_PINMODEOUT)
|
||||
.setCheck(Number);
|
||||
this.appendValueInput("NUM", Number)
|
||||
.appendField(Blockly.Msg.MIXLY_FREQUENCY + Blockly.Msg.MIXLY_STAT)
|
||||
.setCheck(Number);
|
||||
this.setInputsInline(true);
|
||||
this.setPreviousStatement(true, null);
|
||||
this.setNextStatement(true, null);
|
||||
this.setTooltip(Blockly.Msg.MIXLY_ESP32_INOUT_PWM_ANALOG_WRITE_SET_FREQ_TOOLTIP);
|
||||
}
|
||||
};
|
||||
|
||||
export const inout_pinMode = inout_digital_init;
|
||||
export const pin_pressed_init = inout_pin_pressed_init;
|
||||
export const pin_pressed = inout_pin_pressed;
|
||||
export const controls_pin_attachInterrupt = inout_pin_attachInterrupt;
|
||||
415
mixly/boards/default_src/micropython_esp32s2/blocks/pins.js
Normal file
415
mixly/boards/default_src/micropython_esp32s2/blocks/pins.js
Normal file
@@ -0,0 +1,415 @@
|
||||
import * as Blockly from 'blockly/core';
|
||||
import { Profile } from 'mixly';
|
||||
|
||||
const PINS_HUE = 230;
|
||||
|
||||
export const pins_digital = {
|
||||
init: function () {
|
||||
this.setColour(PINS_HUE);
|
||||
this.appendDummyInput("")
|
||||
.appendField(new Blockly.FieldDropdown(Profile.default.digital), 'PIN');
|
||||
this.setOutput(true);
|
||||
}
|
||||
};
|
||||
|
||||
export const pins_digital_pin = {
|
||||
init: function () {
|
||||
this.setColour(PINS_HUE);
|
||||
this.appendDummyInput("")
|
||||
.appendField(new Blockly.FieldDropdown(Profile.default.digital_pin), 'PIN');
|
||||
this.setOutput(true, Number);
|
||||
}
|
||||
};
|
||||
|
||||
export const pins_input_pin = {
|
||||
init: function () {
|
||||
this.setColour(PINS_HUE);
|
||||
this.appendDummyInput("")
|
||||
.appendField(new Blockly.FieldDropdown(Profile.default.input_pin), 'PIN');
|
||||
this.setOutput(true, Number);
|
||||
}
|
||||
};
|
||||
|
||||
export const pins_output_pin = {
|
||||
init: function () {
|
||||
this.setColour(PINS_HUE);
|
||||
this.appendDummyInput("")
|
||||
.appendField(new Blockly.FieldDropdown(Profile.default.output_pin), 'PIN');
|
||||
this.setOutput(true, Number);
|
||||
}
|
||||
};
|
||||
|
||||
export const espnow_channel = {
|
||||
init: function () {
|
||||
this.setColour(PINS_HUE);
|
||||
this.appendDummyInput("")
|
||||
.appendField(new Blockly.FieldDropdown(Profile.default.espnow_channel), 'PIN');
|
||||
this.setOutput(true, Number);
|
||||
}
|
||||
};
|
||||
|
||||
export const haskylens_model = {
|
||||
init: function () {
|
||||
this.setColour(PINS_HUE);
|
||||
this.appendDummyInput("")
|
||||
.appendField(new Blockly.FieldDropdown(Profile.default.haskylens_model), 'PIN');
|
||||
this.setOutput(true, Number);
|
||||
}
|
||||
};
|
||||
|
||||
export const pwm_input = {
|
||||
init: function () {
|
||||
this.setColour(PINS_HUE);
|
||||
this.appendDummyInput("")
|
||||
.appendField(new Blockly.FieldDropdown(Profile.default.pwm_input), 'PIN');
|
||||
this.setOutput(true);
|
||||
}
|
||||
};
|
||||
|
||||
export const analog_input = {
|
||||
init: function () {
|
||||
this.setColour(PINS_HUE);
|
||||
this.appendDummyInput("")
|
||||
.appendField(new Blockly.FieldDropdown(Profile.default.analog_input), 'PIN');
|
||||
this.setOutput(true);
|
||||
}
|
||||
};
|
||||
|
||||
export const pwm_output = {
|
||||
init: function () {
|
||||
this.setColour(PINS_HUE);
|
||||
this.appendDummyInput("")
|
||||
.appendField(new Blockly.FieldDropdown(Profile.default.pwm_output), 'PIN');
|
||||
this.setOutput(true);
|
||||
}
|
||||
};
|
||||
|
||||
export const analog_output = {
|
||||
init: function () {
|
||||
this.setColour(PINS_HUE);
|
||||
this.appendDummyInput("")
|
||||
.appendField(new Blockly.FieldDropdown(Profile.default.analog_output), 'PIN');
|
||||
this.setOutput(true);
|
||||
}
|
||||
};
|
||||
|
||||
export const i2c_A_pin = {
|
||||
init: function () {
|
||||
this.setColour(PINS_HUE);
|
||||
this.appendDummyInput("")
|
||||
.appendField(new Blockly.FieldDropdown(Profile.default.i2c_A_pin), 'PIN');
|
||||
this.setOutput(true, Number);
|
||||
}
|
||||
};
|
||||
|
||||
export const i2c_B_pin = {
|
||||
init: function () {
|
||||
this.setColour(PINS_HUE);
|
||||
this.appendDummyInput("")
|
||||
.appendField(new Blockly.FieldDropdown(Profile.default.i2c_B_pin), 'PIN');
|
||||
this.setOutput(true, Number);
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
export const spi_A_pin = {
|
||||
init: function () {
|
||||
this.setColour(PINS_HUE);
|
||||
this.appendDummyInput("")
|
||||
.appendField(new Blockly.FieldDropdown(Profile.default.spi_A_pin), 'PIN');
|
||||
this.setOutput(true, Number);
|
||||
}
|
||||
};
|
||||
|
||||
export const spi_B_pin = {
|
||||
init: function () {
|
||||
this.setColour(PINS_HUE);
|
||||
this.appendDummyInput("")
|
||||
.appendField(new Blockly.FieldDropdown(Profile.default.spi_B_pin), 'PIN');
|
||||
this.setOutput(true, Number);
|
||||
}
|
||||
};
|
||||
|
||||
export const spi_C_pin = {
|
||||
init: function () {
|
||||
this.setColour(PINS_HUE);
|
||||
this.appendDummyInput("")
|
||||
.appendField(new Blockly.FieldDropdown(Profile.default.spi_C_pin), 'PIN');
|
||||
this.setOutput(true, Number);
|
||||
}
|
||||
};
|
||||
|
||||
export const spi_D_pin = {
|
||||
init: function () {
|
||||
this.setColour(PINS_HUE);
|
||||
this.appendDummyInput("")
|
||||
.appendField(new Blockly.FieldDropdown(Profile.default.spi_D_pin), 'PIN');
|
||||
this.setOutput(true, Number);
|
||||
}
|
||||
};
|
||||
|
||||
export const pins_analog = {
|
||||
init: function () {
|
||||
this.setColour(PINS_HUE);
|
||||
this.appendDummyInput("")
|
||||
.appendField(new Blockly.FieldDropdown(Profile.default.analog), 'PIN');
|
||||
this.setOutput(true);
|
||||
}
|
||||
};
|
||||
|
||||
export const pins_analog_pin = {
|
||||
init: function () {
|
||||
this.setColour(PINS_HUE);
|
||||
this.appendDummyInput("")
|
||||
.appendField(new Blockly.FieldDropdown(Profile.default.analog_pin), 'PIN');
|
||||
this.setOutput(true, Number);
|
||||
}
|
||||
};
|
||||
|
||||
export const pins_dac = {
|
||||
init: function () {
|
||||
this.setColour(PINS_HUE);
|
||||
this.appendDummyInput("")
|
||||
.appendField(new Blockly.FieldDropdown(Profile.default.dac), 'PIN');
|
||||
this.setOutput(true);
|
||||
}
|
||||
};
|
||||
|
||||
export const pins_dac_pin = {
|
||||
init: function () {
|
||||
this.setColour(PINS_HUE);
|
||||
this.appendDummyInput("")
|
||||
.appendField(new Blockly.FieldDropdown(Profile.default.dac_pin), 'PIN');
|
||||
this.setOutput(true, Number);
|
||||
}
|
||||
};
|
||||
|
||||
export const pins_button = {
|
||||
init: function () {
|
||||
this.setColour(PINS_HUE);
|
||||
this.appendDummyInput("")
|
||||
.appendField(new Blockly.FieldDropdown(Profile.default.button), 'PIN');
|
||||
this.setOutput(true, Number);
|
||||
}
|
||||
};
|
||||
|
||||
export const pins_buttonB = {
|
||||
init: function () {
|
||||
this.setColour(PINS_HUE);
|
||||
this.appendDummyInput("")
|
||||
.appendField(new Blockly.FieldDropdown(Profile.default.buttonB), 'PIN');
|
||||
this.setOutput(true, Number);
|
||||
}
|
||||
};
|
||||
|
||||
export const pins_pwm = {
|
||||
init: function () {
|
||||
this.setColour(PINS_HUE);
|
||||
this.appendDummyInput("")
|
||||
.appendField(new Blockly.FieldDropdown(Profile.default.pwm), 'PIN');
|
||||
this.setOutput(true);
|
||||
}
|
||||
};
|
||||
|
||||
export const pins_pwm_pin = {
|
||||
init: function () {
|
||||
this.setColour(PINS_HUE);
|
||||
this.appendDummyInput("")
|
||||
.appendField(new Blockly.FieldDropdown(Profile.default.pwm_pin), 'PIN');
|
||||
this.setOutput(true, Number);
|
||||
}
|
||||
};
|
||||
|
||||
export const pins_touch_pin = {
|
||||
init: function () {
|
||||
this.setColour(PINS_HUE);
|
||||
this.appendDummyInput("")
|
||||
.appendField(new Blockly.FieldDropdown(Profile.default.touch_pin), 'PIN');
|
||||
this.setOutput(true, Number);
|
||||
}
|
||||
};
|
||||
|
||||
export const pins_touch = {
|
||||
init: function () {
|
||||
this.setColour(PINS_HUE);
|
||||
this.appendDummyInput("")
|
||||
.appendField(new Blockly.FieldDropdown(Profile.default.touch), 'PIN');
|
||||
this.setOutput(true);
|
||||
}
|
||||
};
|
||||
|
||||
export const pins_serial = {
|
||||
init: function () {
|
||||
this.setColour(PINS_HUE);
|
||||
this.appendDummyInput("")
|
||||
.appendField(new Blockly.FieldDropdown(Profile.default.serial_pin), 'PIN');
|
||||
this.setOutput(true, Number);
|
||||
}
|
||||
};
|
||||
|
||||
export const pins_builtinimg = {
|
||||
init: function () {
|
||||
this.setColour(PINS_HUE);
|
||||
this.appendDummyInput("")
|
||||
.appendField(new Blockly.FieldDropdown(Profile.default.builtinimg), 'PIN');
|
||||
this.setOutput(true, "esp32_image");
|
||||
}
|
||||
};
|
||||
|
||||
export const pins_builtinimg_extern = {
|
||||
init: function () {
|
||||
this.setColour(PINS_HUE);
|
||||
this.appendDummyInput("")
|
||||
.appendField(new Blockly.FieldDropdown(Profile.default.builtinimg_extern), 'PIN');
|
||||
this.setOutput(true, "esp32_image");
|
||||
}
|
||||
};
|
||||
|
||||
export const pins_imglist = {
|
||||
init: function () {
|
||||
this.setColour(PINS_HUE);
|
||||
this.appendDummyInput("")
|
||||
.appendField(new Blockly.FieldDropdown(Profile.default.imglist), 'PIN');
|
||||
this.setOutput(true);
|
||||
}
|
||||
};
|
||||
|
||||
export const pins_playlist = {
|
||||
init: function () {
|
||||
this.setColour(PINS_HUE);
|
||||
this.appendDummyInput("")
|
||||
.appendField(new Blockly.FieldDropdown(Profile.default.playlist), 'PIN');
|
||||
this.setOutput(true);
|
||||
}
|
||||
};
|
||||
|
||||
export const pins_playlist_extern = {
|
||||
init: function () {
|
||||
this.setColour(PINS_HUE);
|
||||
this.appendDummyInput("")
|
||||
.appendField(new Blockly.FieldDropdown(Profile.default.playlist_extern), 'PIN');
|
||||
this.setOutput(true);
|
||||
}
|
||||
};
|
||||
|
||||
export const pins_exlcdh = {
|
||||
init: function () {
|
||||
this.setColour(PINS_HUE);
|
||||
this.appendDummyInput("")
|
||||
.appendField(new Blockly.FieldDropdown(Profile.default.exlcdh), 'PIN');
|
||||
this.setOutput(true, Number);
|
||||
}
|
||||
};
|
||||
|
||||
export const pins_exlcdv = {
|
||||
init: function () {
|
||||
this.setColour(PINS_HUE);
|
||||
this.appendDummyInput("")
|
||||
.appendField(new Blockly.FieldDropdown(Profile.default.exlcdv), 'PIN');
|
||||
this.setOutput(true, Number);
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
export const pins_axis = {
|
||||
init: function () {
|
||||
this.setColour(PINS_HUE);
|
||||
this.appendDummyInput("")
|
||||
.appendField(new Blockly.FieldDropdown(Profile.default.axis), 'PIN');
|
||||
this.setOutput(true, Number);
|
||||
}
|
||||
};
|
||||
export const pins_brightness = {
|
||||
init: function () {
|
||||
this.setColour(PINS_HUE);
|
||||
this.appendDummyInput("")
|
||||
.appendField(new Blockly.FieldDropdown(Profile.default.brightness), 'PIN');
|
||||
this.setOutput(true, Number);
|
||||
}
|
||||
};
|
||||
|
||||
export const pins_tts_voice = {
|
||||
init: function () {
|
||||
this.setColour(PINS_HUE);
|
||||
this.appendDummyInput("")
|
||||
.appendField(new Blockly.FieldDropdown(Profile.default.tts_voice), 'PIN');
|
||||
this.setOutput(true, Number);
|
||||
}
|
||||
};
|
||||
|
||||
export const pins_tts_builtin_music = {
|
||||
init: function () {
|
||||
this.setColour(PINS_HUE);
|
||||
this.appendDummyInput("")
|
||||
.appendField(new Blockly.FieldDropdown(Profile.default.tts_builtin_music), 'PIN');
|
||||
this.setOutput(true, Number);
|
||||
}
|
||||
};
|
||||
|
||||
export const pins_tts_bgmusic = {
|
||||
init: function () {
|
||||
this.setColour(PINS_HUE);
|
||||
this.appendDummyInput("")
|
||||
.appendField(new Blockly.FieldDropdown(Profile.default.tts_bgmusic), 'PIN');
|
||||
this.setOutput(true, Number);
|
||||
}
|
||||
};
|
||||
|
||||
export const pins_tone_notes = {
|
||||
init: function () {
|
||||
this.setColour(PINS_HUE);
|
||||
this.appendDummyInput("")
|
||||
.appendField(new Blockly.FieldDropdown(Profile.default.tone_notes), 'PIN');
|
||||
this.setOutput(true, Number);
|
||||
}
|
||||
};
|
||||
|
||||
export const pins_radio_power = {
|
||||
init: function () {
|
||||
this.setColour(PINS_HUE);
|
||||
this.appendDummyInput("")
|
||||
.appendField(new Blockly.FieldDropdown(Profile.default.radio_power), 'PIN');
|
||||
this.setOutput(true, Number);
|
||||
}
|
||||
};
|
||||
|
||||
export const pins_radio_datarate = {
|
||||
init: function () {
|
||||
this.setColour(PINS_HUE);
|
||||
this.appendDummyInput("")
|
||||
.appendField(new Blockly.FieldDropdown(Profile.default.radio_datarate), 'PIN');
|
||||
this.setOutput(true, Number);
|
||||
}
|
||||
};
|
||||
|
||||
export const pins_one_more = {
|
||||
init: function () {
|
||||
this.setColour(PINS_HUE);
|
||||
this.appendDummyInput("")
|
||||
.appendField(new Blockly.FieldDropdown(Profile.default.one_more), 'PIN');
|
||||
this.setOutput(true);
|
||||
}
|
||||
};
|
||||
|
||||
export const pins_digital_dot = {
|
||||
init: function () {
|
||||
this.setColour(PINS_HUE);
|
||||
this.appendDummyInput("")
|
||||
.appendField(new Blockly.FieldDropdown(Profile.default.digital_dot), 'PIN');
|
||||
this.setOutput(true, Number);
|
||||
}
|
||||
};
|
||||
|
||||
export const timer_id_pin = {
|
||||
init: function () {
|
||||
this.setColour(PINS_HUE);
|
||||
this.appendDummyInput("")
|
||||
.appendField(new Blockly.FieldDropdown([
|
||||
["0","0"],
|
||||
["1","1"],
|
||||
["2","2"],
|
||||
["3","3"]
|
||||
]), 'PIN');
|
||||
this.setOutput(true, Number);
|
||||
}
|
||||
};
|
||||
@@ -0,0 +1,459 @@
|
||||
div.blocklyToolboxDiv>div.blocklyToolboxContents>div:nth-child(1)>div.blocklyTreeRow>div.blocklyTreeRowContentContainer>span.blocklyTreeIcon {
|
||||
background: url('../../../../common/media/mark/inout.png') no-repeat;
|
||||
background-size: 100% auto;
|
||||
}
|
||||
|
||||
div.blocklyToolboxDiv>div.blocklyToolboxContents>div:nth-child(1)>div.blocklyTreeRow.blocklyTreeSelected>div.blocklyTreeRowContentContainer>span.blocklyTreeIcon {
|
||||
background: url('../../../../common/media/mark/inout2.png') no-repeat;
|
||||
background-size: 100% auto;
|
||||
}
|
||||
|
||||
div.blocklyToolboxDiv>div.blocklyToolboxContents>div:nth-child(2)>div.blocklyTreeRow>div.blocklyTreeRowContentContainer>span.blocklyTreeIcon {
|
||||
background: url('../../../../common/media/mark/ctrl.png') no-repeat;
|
||||
background-size: 100% auto;
|
||||
}
|
||||
|
||||
div.blocklyToolboxDiv>div.blocklyToolboxContents>div:nth-child(2)>div.blocklyTreeRow.blocklyTreeSelected>div.blocklyTreeRowContentContainer>span.blocklyTreeIcon {
|
||||
background: url('../../../../common/media/mark/ctrl2.png') no-repeat;
|
||||
background-size: 100% auto;
|
||||
}
|
||||
|
||||
div.blocklyToolboxDiv>div.blocklyToolboxContents>div:nth-child(3)>div.blocklyTreeRow>div.blocklyTreeRowContentContainer>span.blocklyTreeIcon {
|
||||
background: url('../../../../common/media/mark/math.png') no-repeat;
|
||||
background-size: 100% auto;
|
||||
}
|
||||
|
||||
div.blocklyToolboxDiv>div.blocklyToolboxContents>div:nth-child(3)>div.blocklyTreeRow.blocklyTreeSelected>div.blocklyTreeRowContentContainer>span.blocklyTreeIcon {
|
||||
background: url('../../../../common/media/mark/math2.png') no-repeat;
|
||||
background-size: 100% auto;
|
||||
}
|
||||
|
||||
div.blocklyToolboxDiv>div.blocklyToolboxContents>div:nth-child(4)>div.blocklyTreeRow>div.blocklyTreeRowContentContainer>span.blocklyTreeIcon {
|
||||
background: url('../../../../common/media/mark/logic.png') no-repeat;
|
||||
background-size: 100% auto;
|
||||
}
|
||||
|
||||
div.blocklyToolboxDiv>div.blocklyToolboxContents>div:nth-child(4)>div.blocklyTreeRow.blocklyTreeSelected>div.blocklyTreeRowContentContainer>span.blocklyTreeIcon {
|
||||
background: url('../../../../common/media/mark/logic2.png') no-repeat;
|
||||
background-size: 100% auto;
|
||||
}
|
||||
|
||||
div.blocklyToolboxDiv>div.blocklyToolboxContents>div:nth-child(5)>div.blocklyTreeRow>div.blocklyTreeRowContentContainer>span.blocklyTreeIcon {
|
||||
background: url('../../../../common/media/mark/text.png') no-repeat;
|
||||
background-size: 100% auto;
|
||||
}
|
||||
|
||||
div.blocklyToolboxDiv>div.blocklyToolboxContents>div:nth-child(5)>div.blocklyTreeRow.blocklyTreeSelected>div.blocklyTreeRowContentContainer>span.blocklyTreeIcon {
|
||||
background: url('../../../../common/media/mark/text2.png') no-repeat;
|
||||
background-size: 100% auto;
|
||||
}
|
||||
|
||||
div.blocklyToolboxDiv>div.blocklyToolboxContents>div:nth-child(6)>div.blocklyTreeRow>div.blocklyTreeRowContentContainer>span.blocklyTreeIcon {
|
||||
background: url('../../../../common/media/mark/list3.png') no-repeat;
|
||||
background-size: 100% auto;
|
||||
}
|
||||
|
||||
div.blocklyToolboxDiv>div.blocklyToolboxContents>div:nth-child(6)>div.blocklyTreeRow.blocklyTreeSelected>div.blocklyTreeRowContentContainer>span.blocklyTreeIcon {
|
||||
background: url('../../../../common/media/mark/list4.png') no-repeat;
|
||||
background-size: 100% auto;
|
||||
}
|
||||
|
||||
div.blocklyToolboxDiv>div.blocklyToolboxContents>div:nth-child(7)>div.blocklyTreeRow>div.blocklyTreeRowContentContainer>span.blocklyTreeIcon {
|
||||
background: url('../../../../common/media/mark/tuple.png') no-repeat;
|
||||
background-size: 100% auto;
|
||||
}
|
||||
|
||||
div.blocklyToolboxDiv>div.blocklyToolboxContents>div:nth-child(7)>div.blocklyTreeRow.blocklyTreeSelected>div.blocklyTreeRowContentContainer>span.blocklyTreeIcon {
|
||||
background: url('../../../../common/media/mark/tuple2.png') no-repeat;
|
||||
background-size: 100% auto;
|
||||
}
|
||||
|
||||
div.blocklyToolboxDiv>div.blocklyToolboxContents>div:nth-child(8)>div.blocklyTreeRow>div.blocklyTreeRowContentContainer>span.blocklyTreeIcon {
|
||||
background: url('../../../../common/media/mark/dict.png') no-repeat;
|
||||
background-size: 100% auto;
|
||||
}
|
||||
|
||||
div.blocklyToolboxDiv>div.blocklyToolboxContents>div:nth-child(8)>div.blocklyTreeRow.blocklyTreeSelected>div.blocklyTreeRowContentContainer>span.blocklyTreeIcon {
|
||||
background: url('../../../../common/media/mark/dict2.png') no-repeat;
|
||||
background-size: 100% auto;
|
||||
}
|
||||
|
||||
div.blocklyToolboxDiv>div.blocklyToolboxContents>div:nth-child(9)>div.blocklyTreeRow>div.blocklyTreeRowContentContainer>span.blocklyTreeIcon {
|
||||
background: url('../../../../common/media/mark/set.png') no-repeat;
|
||||
background-size: 100% auto;
|
||||
}
|
||||
|
||||
div.blocklyToolboxDiv>div.blocklyToolboxContents>div:nth-child(9)>div.blocklyTreeRow.blocklyTreeSelected>div.blocklyTreeRowContentContainer>span.blocklyTreeIcon {
|
||||
background: url('../../../../common/media/mark/set2.png') no-repeat;
|
||||
background-size: 100% auto;
|
||||
}
|
||||
|
||||
div.blocklyToolboxDiv>div.blocklyToolboxContents>div:nth-child(10)>div.blocklyTreeRow>div.blocklyTreeRowContentContainer>span.blocklyTreeIcon {
|
||||
background: url('../../../../common/media/mark/var.png') no-repeat;
|
||||
background-size: 100% auto;
|
||||
}
|
||||
|
||||
div.blocklyToolboxDiv>div.blocklyToolboxContents>div:nth-child(10)>div.blocklyTreeRow.blocklyTreeSelected>div.blocklyTreeRowContentContainer>span.blocklyTreeIcon {
|
||||
background: url('../../../../common/media/mark/var2.png') no-repeat;
|
||||
background-size: 100% auto;
|
||||
}
|
||||
|
||||
div.blocklyToolboxDiv>div.blocklyToolboxContents>div:nth-child(11)>div.blocklyTreeRow>div.blocklyTreeRowContentContainer>span.blocklyTreeIcon {
|
||||
background: url('../../../../common/media/mark/func.png') no-repeat;
|
||||
background-size: 100% auto;
|
||||
}
|
||||
|
||||
div.blocklyToolboxDiv>div.blocklyToolboxContents>div:nth-child(11)>div.blocklyTreeRow.blocklyTreeSelected>div.blocklyTreeRowContentContainer>span.blocklyTreeIcon {
|
||||
background: url('../../../../common/media/mark/func2.png') no-repeat;
|
||||
background-size: 100% auto;
|
||||
}
|
||||
|
||||
div.blocklyToolboxDiv>div.blocklyToolboxContents>div:nth-child(12)>div.blocklyTreeRow>div.blocklyTreeRowContentContainer>span.blocklyTreeIcon {
|
||||
background: url('../../../../common/media/mark/port.png') no-repeat;
|
||||
background-size: 100% auto;
|
||||
}
|
||||
|
||||
div.blocklyToolboxDiv>div.blocklyToolboxContents>div:nth-child(12)>div.blocklyTreeRow.blocklyTreeSelected>div.blocklyTreeRowContentContainer>span.blocklyTreeIcon {
|
||||
background: url('../../../../common/media/mark/port2.png') no-repeat;
|
||||
background-size: 100% auto;
|
||||
}
|
||||
|
||||
#catOnBoardSensor.blocklyTreeRow>div.blocklyTreeRowContentContainer>span.blocklyTreeIcon {
|
||||
background: url('../../../../common/media/mark/sensor_onboard.png') no-repeat;
|
||||
background-size: 100% auto;
|
||||
}
|
||||
|
||||
#catOnBoardSensor.blocklyTreeRow.blocklyTreeSelected>div.blocklyTreeRowContentContainer>span.blocklyTreeIcon {
|
||||
background: url('../../../../common/media/mark/sensor_new2.png') no-repeat;
|
||||
background-size: 100% auto;
|
||||
}
|
||||
|
||||
#catOnBoardActuator.blocklyTreeRow>div.blocklyTreeRowContentContainer>span.blocklyTreeIcon {
|
||||
background: url('../../../../common/media/mark/actuator_onboard.png') no-repeat;
|
||||
background-size: 100% auto;
|
||||
}
|
||||
|
||||
#catOnBoardActuator.blocklyTreeRow.blocklyTreeSelected>div.blocklyTreeRowContentContainer>span.blocklyTreeIcon {
|
||||
background: url('../../../../common/media/mark/actuator_new2.png') no-repeat;
|
||||
background-size: 100% auto;
|
||||
}
|
||||
|
||||
#catOnBoardDisplay.blocklyTreeRow>div.blocklyTreeRowContentContainer>span.blocklyTreeIcon {
|
||||
background: url('../../../../common/media/mark/display_onboard.png') no-repeat;
|
||||
background-size: 100% auto;
|
||||
}
|
||||
|
||||
#catOnBoardDisplay.blocklyTreeRow.blocklyTreeSelected>div.blocklyTreeRowContentContainer>span.blocklyTreeIcon {
|
||||
background: url('../../../../common/media/mark/display_new2.png') no-repeat;
|
||||
background-size: 100% auto;
|
||||
}
|
||||
|
||||
#catME_GO.blocklyTreeRow>div.blocklyTreeRowContentContainer>span.blocklyTreeIcon {
|
||||
background: url('../../../../common/media/mark/act.png') no-repeat;
|
||||
background-size: 100% auto;
|
||||
}
|
||||
|
||||
#catME_GO.blocklyTreeRow.blocklyTreeSelected>div.blocklyTreeRowContentContainer>span.blocklyTreeIcon {
|
||||
background: url('../../../../common/media/mark/act2.png') no-repeat;
|
||||
background-size: 100% auto;
|
||||
}
|
||||
|
||||
#catCE_G6.blocklyTreeRow>div.blocklyTreeRowContentContainer>span.blocklyTreeIcon {
|
||||
background: url('../../../../common/media/mark/act.png') no-repeat;
|
||||
background-size: 100% auto;
|
||||
}
|
||||
|
||||
#catCE_G6.blocklyTreeRow.blocklyTreeSelected>div.blocklyTreeRowContentContainer>span.blocklyTreeIcon {
|
||||
background: url('../../../../common/media/mark/act2.png') no-repeat;
|
||||
background-size: 100% auto;
|
||||
}
|
||||
|
||||
#catPE_G1.blocklyTreeRow>div.blocklyTreeRowContentContainer>span.blocklyTreeIcon {
|
||||
background: url('../../../../common/media/mark/act.png') no-repeat;
|
||||
background-size: 100% auto;
|
||||
}
|
||||
|
||||
#catPE_G1.blocklyTreeRow.blocklyTreeSelected>div.blocklyTreeRowContentContainer>span.blocklyTreeIcon {
|
||||
background: url('../../../../common/media/mark/act2.png') no-repeat;
|
||||
background-size: 100% auto;
|
||||
}
|
||||
|
||||
#catCC_G1.blocklyTreeRow>div.blocklyTreeRowContentContainer>span.blocklyTreeIcon {
|
||||
background: url('../../../../common/media/mark/sensor.png') no-repeat;
|
||||
background-size: 100% auto;
|
||||
}
|
||||
|
||||
#catCC_G1.blocklyTreeRow.blocklyTreeSelected>div.blocklyTreeRowContentContainer>span.blocklyTreeIcon {
|
||||
background: url('../../../../common/media/mark/sensor2.png') no-repeat;
|
||||
background-size: 100% auto;
|
||||
}
|
||||
|
||||
#catExternSensor.blocklyTreeRow>div.blocklyTreeRowContentContainer>span.blocklyTreeIcon {
|
||||
background: url('../../../../common/media/mark/sensor_extern.png') no-repeat;
|
||||
background-size: 100% auto;
|
||||
}
|
||||
|
||||
#catExternSensor.blocklyTreeRow.blocklyTreeSelected>div.blocklyTreeRowContentContainer>span.blocklyTreeIcon {
|
||||
background: url('../../../../common/media/mark/sensor_new2.png') no-repeat;
|
||||
background-size: 100% auto;
|
||||
}
|
||||
|
||||
#catExternActuator.blocklyTreeRow>div.blocklyTreeRowContentContainer>span.blocklyTreeIcon {
|
||||
background: url('../../../../common/media/mark/actuator_extern.png') no-repeat;
|
||||
background-size: 100% auto;
|
||||
}
|
||||
|
||||
#catExternActuator.blocklyTreeRow.blocklyTreeSelected>div.blocklyTreeRowContentContainer>span.blocklyTreeIcon {
|
||||
background: url('../../../../common/media/mark/actuator_new2.png') no-repeat;
|
||||
background-size: 100% auto;
|
||||
}
|
||||
|
||||
#catMatrix.blocklyTreeRow>div.blocklyTreeRowContentContainer>span.blocklyTreeIcon {
|
||||
background: url('../../../../common/media/mark/Matrix.png') no-repeat;
|
||||
background-size: 100% auto;
|
||||
}
|
||||
|
||||
#catMatrix.blocklyTreeRow.blocklyTreeSelected>div.blocklyTreeRowContentContainer>span.blocklyTreeIcon {
|
||||
background: url('../../../../common/media/mark/Matrix2.png') no-repeat;
|
||||
background-size: 100% auto;
|
||||
}
|
||||
|
||||
#catOLED.blocklyTreeRow>div.blocklyTreeRowContentContainer>span.blocklyTreeIcon {
|
||||
background: url('../../../../common/media/mark/oled.png') no-repeat;
|
||||
background-size: 100% auto;
|
||||
}
|
||||
|
||||
#catOLED.blocklyTreeRow.blocklyTreeSelected>div.blocklyTreeRowContentContainer>span.blocklyTreeIcon {
|
||||
background: url('../../../../common/media/mark/oled2.png') no-repeat;
|
||||
background-size: 100% auto;
|
||||
}
|
||||
|
||||
#catTFT.blocklyTreeRow>div.blocklyTreeRowContentContainer>span.blocklyTreeIcon {
|
||||
background: url('../../../../common/media/mark/oled.png') no-repeat;
|
||||
background-size: 100% auto;
|
||||
}
|
||||
|
||||
#catTFT.blocklyTreeRow.blocklyTreeSelected>div.blocklyTreeRowContentContainer>span.blocklyTreeIcon {
|
||||
background: url('../../../../common/media/mark/oled2.png') no-repeat;
|
||||
background-size: 100% auto;
|
||||
}
|
||||
|
||||
#catLCD.blocklyTreeRow>div.blocklyTreeRowContentContainer>span.blocklyTreeIcon {
|
||||
background: url('../../../../common/media/mark/oled.png') no-repeat;
|
||||
background-size: 100% auto;
|
||||
}
|
||||
|
||||
#catLCD.blocklyTreeRow.blocklyTreeSelected>div.blocklyTreeRowContentContainer>span.blocklyTreeIcon {
|
||||
background: url('../../../../common/media/mark/oled2.png') no-repeat;
|
||||
background-size: 100% auto;
|
||||
}
|
||||
|
||||
#cat4Digitdisplay.blocklyTreeRow>div.blocklyTreeRowContentContainer>span.blocklyTreeIcon {
|
||||
background: url('../../../../common/media/mark/4Digitdisplay.png') no-repeat;
|
||||
background-size: 100% auto;
|
||||
}
|
||||
|
||||
#cat4Digitdisplay.blocklyTreeRow.blocklyTreeSelected>div.blocklyTreeRowContentContainer>span.blocklyTreeIcon {
|
||||
background: url('../../../../common/media/mark/4Digitdisplay2.png') no-repeat;
|
||||
background-size: 100% auto;
|
||||
}
|
||||
|
||||
#catAIsensor.blocklyTreeRow>div.blocklyTreeRowContentContainer>span.blocklyTreeIcon {
|
||||
background: url('../../../../common/media/mark/image.png') no-repeat;
|
||||
background-size: 100% auto;
|
||||
}
|
||||
|
||||
#catAIsensor.blocklyTreeRow.blocklyTreeSelected>div.blocklyTreeRowContentContainer>span.blocklyTreeIcon {
|
||||
background: url('../../../../common/media/mark/image2.png') no-repeat;
|
||||
background-size: 100% auto;
|
||||
}
|
||||
|
||||
#catAIsensor2.blocklyTreeRow>div.blocklyTreeRowContentContainer>span.blocklyTreeIcon {
|
||||
background: url('../../../../common/media/mark/image.png') no-repeat;
|
||||
background-size: 100% auto;
|
||||
}
|
||||
|
||||
#catAIsensor2.blocklyTreeRow.blocklyTreeSelected>div.blocklyTreeRowContentContainer>span.blocklyTreeIcon {
|
||||
background: url('../../../../common/media/mark/image2.png') no-repeat;
|
||||
background-size: 100% auto;
|
||||
}
|
||||
|
||||
#catFile.blocklyTreeRow>div.blocklyTreeRowContentContainer>span.blocklyTreeIcon {
|
||||
background: url('../../../../common/media/mark/file.png') no-repeat;
|
||||
background-size: 100% auto;
|
||||
}
|
||||
|
||||
#catFile.blocklyTreeRow.blocklyTreeSelected>div.blocklyTreeRowContentContainer>span.blocklyTreeIcon {
|
||||
background: url('../../../../common/media/mark/file2.png') no-repeat;
|
||||
background-size: 100% auto;
|
||||
}
|
||||
|
||||
#catBLE.blocklyTreeRow>div.blocklyTreeRowContentContainer>span.blocklyTreeIcon {
|
||||
background: url('../../../../common/media/mark/comuni.png') no-repeat;
|
||||
background-size: 100% auto;
|
||||
}
|
||||
|
||||
#catBLE.blocklyTreeRow.blocklyTreeSelected>div.blocklyTreeRowContentContainer>span.blocklyTreeIcon {
|
||||
background: url('../../../../common/media/mark/comuni2.png') no-repeat;
|
||||
background-size: 100% auto;
|
||||
}
|
||||
|
||||
#catIR.blocklyTreeRow>div.blocklyTreeRowContentContainer>span.blocklyTreeIcon {
|
||||
background: url('../../../../common/media/mark/comuni.png') no-repeat;
|
||||
background-size: 100% auto;
|
||||
}
|
||||
|
||||
#catIR.blocklyTreeRow.blocklyTreeSelected>div.blocklyTreeRowContentContainer>span.blocklyTreeIcon {
|
||||
background: url('../../../../common/media/mark/comuni2.png') no-repeat;
|
||||
background-size: 100% auto;
|
||||
}
|
||||
|
||||
#catI2C.blocklyTreeRow>div.blocklyTreeRowContentContainer>span.blocklyTreeIcon {
|
||||
background: url('../../../../common/media/mark/comuni.png') no-repeat;
|
||||
background-size: 100% auto;
|
||||
}
|
||||
|
||||
#catI2C.blocklyTreeRow.blocklyTreeSelected>div.blocklyTreeRowContentContainer>span.blocklyTreeIcon {
|
||||
background: url('../../../../common/media/mark/comuni2.png') no-repeat;
|
||||
background-size: 100% auto;
|
||||
}
|
||||
|
||||
#catSPI.blocklyTreeRow>div.blocklyTreeRowContentContainer>span.blocklyTreeIcon {
|
||||
background: url('../../../../common/media/mark/comuni.png') no-repeat;
|
||||
background-size: 100% auto;
|
||||
}
|
||||
|
||||
#catSPI.blocklyTreeRow.blocklyTreeSelected>div.blocklyTreeRowContentContainer>span.blocklyTreeIcon {
|
||||
background: url('../../../../common/media/mark/comuni2.png') no-repeat;
|
||||
background-size: 100% auto;
|
||||
}
|
||||
|
||||
#catRadio.blocklyTreeRow>div.blocklyTreeRowContentContainer>span.blocklyTreeIcon {
|
||||
background: url('../../../../common/media/mark/comuni.png') no-repeat;
|
||||
background-size: 100% auto;
|
||||
}
|
||||
|
||||
#catRadio.blocklyTreeRow.blocklyTreeSelected>div.blocklyTreeRowContentContainer>span.blocklyTreeIcon {
|
||||
background: url('../../../../common/media/mark/comuni2.png') no-repeat;
|
||||
background-size: 100% auto;
|
||||
}
|
||||
|
||||
#catOneWire.blocklyTreeRow>div.blocklyTreeRowContentContainer>span.blocklyTreeIcon {
|
||||
background: url('../../../../common/media/mark/comuni.png') no-repeat;
|
||||
background-size: 100% auto;
|
||||
}
|
||||
|
||||
#catOneWire.blocklyTreeRow.blocklyTreeSelected>div.blocklyTreeRowContentContainer>span.blocklyTreeIcon {
|
||||
background: url('../../../../common/media/mark/comuni2.png') no-repeat;
|
||||
background-size: 100% auto;
|
||||
}
|
||||
|
||||
#catESPNow.blocklyTreeRow>div.blocklyTreeRowContentContainer>span.blocklyTreeIcon {
|
||||
background: url('../../../../common/media/mark/comuni.png') no-repeat;
|
||||
background-size: 100% auto;
|
||||
}
|
||||
|
||||
#catESPNow.blocklyTreeRow.blocklyTreeSelected>div.blocklyTreeRowContentContainer>span.blocklyTreeIcon {
|
||||
background: url('../../../../common/media/mark/comuni2.png') no-repeat;
|
||||
background-size: 100% auto;
|
||||
}
|
||||
|
||||
#catLora.blocklyTreeRow>div.blocklyTreeRowContentContainer>span.blocklyTreeIcon {
|
||||
background: url('../../../../common/media/mark/comuni.png') no-repeat;
|
||||
background-size: 100% auto;
|
||||
}
|
||||
|
||||
#catLora.blocklyTreeRow.blocklyTreeSelected>div.blocklyTreeRowContentContainer>span.blocklyTreeIcon {
|
||||
background: url('../../../../common/media/mark/comuni2.png') no-repeat;
|
||||
background-size: 100% auto;
|
||||
}
|
||||
|
||||
#catNetwork.blocklyTreeRow>div.blocklyTreeRowContentContainer>span.blocklyTreeIcon {
|
||||
background: url('../../../../common/media/mark/net3.png') no-repeat;
|
||||
background-size: 100% auto;
|
||||
}
|
||||
|
||||
#catNetwork.blocklyTreeRow.blocklyTreeSelected>div.blocklyTreeRowContentContainer>span.blocklyTreeIcon {
|
||||
background: url('../../../../common/media/mark/net2.png') no-repeat;
|
||||
background-size: 100% auto;
|
||||
}
|
||||
|
||||
#catOnenet.blocklyTreeRow>div.blocklyTreeRowContentContainer>span.blocklyTreeIcon {
|
||||
background: url('../../../../common/media/mark/onenet.png') no-repeat;
|
||||
background-size: 100% auto;
|
||||
}
|
||||
|
||||
#catOnenet.blocklyTreeRow.blocklyTreeSelected>div.blocklyTreeRowContentContainer>span.blocklyTreeIcon {
|
||||
background: url('../../../../common/media/mark/onenet2.png') no-repeat;
|
||||
background-size: 100% auto;
|
||||
}
|
||||
|
||||
#catBlynk.blocklyTreeRow>div.blocklyTreeRowContentContainer>span.blocklyTreeIcon {
|
||||
background: url('../../../../common/media/mark/blynk.png') no-repeat;
|
||||
background-size: 100% auto;
|
||||
}
|
||||
|
||||
#catBlynk.blocklyTreeRow.blocklyTreeSelected>div.blocklyTreeRowContentContainer>span.blocklyTreeIcon {
|
||||
background: url('../../../../common/media/mark/blynk2.png') no-repeat;
|
||||
background-size: 100% auto;
|
||||
}
|
||||
|
||||
#catMixIO.blocklyTreeRow>div.blocklyTreeRowContentContainer>span.blocklyTreeIcon {
|
||||
background: url('../../../../common/media/mark/mixio.png') no-repeat;
|
||||
background-size: 100% auto;
|
||||
}
|
||||
|
||||
#catMixIO.blocklyTreeRow.blocklyTreeSelected>div.blocklyTreeRowContentContainer>span.blocklyTreeIcon {
|
||||
background: url('../../../../common/media/mark/mixio2.png') no-repeat;
|
||||
background-size: 100% auto;
|
||||
}
|
||||
|
||||
#catweather.blocklyTreeRow>div.blocklyTreeRowContentContainer>span.blocklyTreeIcon {
|
||||
background: url('../../../../common/media/mark/weather.png') no-repeat;
|
||||
background-size: 100% auto;
|
||||
}
|
||||
|
||||
#catweather.blocklyTreeRow.blocklyTreeSelected>div.blocklyTreeRowContentContainer>span.blocklyTreeIcon {
|
||||
background: url('../../../../common/media/mark/weather2.png') no-repeat;
|
||||
background-size: 100% auto;
|
||||
}
|
||||
|
||||
#catTinyWebDB.blocklyTreeRow>div.blocklyTreeRowContentContainer>span.blocklyTreeIcon {
|
||||
background: url('../../../../common/media/mark/database.png') no-repeat;
|
||||
background-size: 100% auto;
|
||||
}
|
||||
|
||||
#catTinyWebDB.blocklyTreeRow.blocklyTreeSelected>div.blocklyTreeRowContentContainer>span.blocklyTreeIcon {
|
||||
background: url('../../../../common/media/mark/database2.png') no-repeat;
|
||||
background-size: 100% auto;
|
||||
}
|
||||
|
||||
#catAIOT.blocklyTreeRow>div.blocklyTreeRowContentContainer>span.blocklyTreeIcon {
|
||||
background: url('../../../../common/media/mark/ai.png') no-repeat;
|
||||
background-size: 100% auto;
|
||||
}
|
||||
|
||||
#catAIOT.blocklyTreeRow.blocklyTreeSelected>div.blocklyTreeRowContentContainer>span.blocklyTreeIcon {
|
||||
background: url('../../../../common/media/mark/ai2.png') no-repeat;
|
||||
background-size: 100% auto;
|
||||
}
|
||||
|
||||
#catFactory.blocklyTreeRow>div.blocklyTreeRowContentContainer>span.blocklyTreeIcon {
|
||||
background: url('../../../../common/media/mark/factory3.png') no-repeat;
|
||||
background-size: 100% auto;
|
||||
}
|
||||
|
||||
#catFactory.blocklyTreeRow.blocklyTreeSelected>div.blocklyTreeRowContentContainer>span.blocklyTreeIcon {
|
||||
background: url('../../../../common/media/mark/factory4.png') no-repeat;
|
||||
background-size: 100% auto;
|
||||
}
|
||||
|
||||
#catCommunicate.blocklyTreeRow>div.blocklyTreeRowContentContainer>span.blocklyTreeIcon {
|
||||
background: url('../../../../common/media/mark/requests.png') no-repeat;
|
||||
background-size: 100% auto;
|
||||
}
|
||||
|
||||
#catCommunicate.blocklyTreeRow.blocklyTreeSelected>div.blocklyTreeRowContentContainer>span.blocklyTreeIcon {
|
||||
background: url('../../../../common/media/mark/requests2.png') no-repeat;
|
||||
background-size: 100% auto;
|
||||
}
|
||||
13
mixly/boards/default_src/micropython_esp32s2/export.js
Normal file
13
mixly/boards/default_src/micropython_esp32s2/export.js
Normal file
@@ -0,0 +1,13 @@
|
||||
import MicropythonESP32S2Pins from './blocks/esp32_profile';
|
||||
import * as MicropythonESP32S2InoutBlocks from './blocks/inout';
|
||||
import * as MicropythonESP32S2PinsBlocks from './blocks/pins';
|
||||
import * as MicropythonESP32S2InoutGenerators from './generators/inout';
|
||||
import * as MicropythonESP32S2PinsGenerators from './generators/pins';
|
||||
|
||||
export {
|
||||
MicropythonESP32S2Pins,
|
||||
MicropythonESP32S2InoutBlocks,
|
||||
MicropythonESP32S2PinsBlocks,
|
||||
MicropythonESP32S2InoutGenerators,
|
||||
MicropythonESP32S2PinsGenerators
|
||||
};
|
||||
109
mixly/boards/default_src/micropython_esp32s2/generators/inout.js
Normal file
109
mixly/boards/default_src/micropython_esp32s2/generators/inout.js
Normal file
@@ -0,0 +1,109 @@
|
||||
import * as Blockly from 'blockly/core';
|
||||
|
||||
// ok
|
||||
export const inout_highlow = function (_, generator) {
|
||||
// Boolean values HIGH and LOW.
|
||||
var code = (this.getFieldValue('BOOL') == 'HIGH') ? '1' : '0';
|
||||
return [code, generator.ORDER_ATOMIC];
|
||||
}
|
||||
|
||||
// ok
|
||||
export const inout_digital_write = function (_, generator) {
|
||||
generator.definitions_['import_machine'] = 'import machine';
|
||||
var dropdown_pin = generator.valueToCode(this, 'PIN', generator.ORDER_ATOMIC);
|
||||
var dropdown_stat = generator.valueToCode(this, 'STAT', generator.ORDER_ATOMIC);
|
||||
var code = "";
|
||||
code += dropdown_pin + '.value(' + dropdown_stat + ')\n'
|
||||
return code;
|
||||
}
|
||||
|
||||
// ok
|
||||
export const inout_digital_read = function (_, generator) {
|
||||
generator.definitions_['import_machine'] = 'import machine';
|
||||
var dropdown_pin = generator.valueToCode(this, 'PIN', generator.ORDER_ATOMIC);
|
||||
var code = "";
|
||||
code = dropdown_pin + '.value()';
|
||||
return [code, generator.ORDER_ATOMIC];
|
||||
}
|
||||
|
||||
// ok
|
||||
export const inout_analog_write = function (_, generator) {
|
||||
generator.definitions_['import_machine'] = 'import machine';
|
||||
var dropdown_pin = generator.valueToCode(this, 'PIN', generator.ORDER_ATOMIC);
|
||||
//var dropdown_stat = this.getFieldValue('STAT');
|
||||
var value_num = generator.valueToCode(this, 'NUM', generator.ORDER_ATOMIC);
|
||||
//generator.setups_['setup_output'+dropdown_pin] = 'pinMode('+dropdown_pin+', OUTPUT);';
|
||||
var code = dropdown_pin + '.write(' + value_num + ')\n';
|
||||
return code;
|
||||
}
|
||||
|
||||
// ok
|
||||
export const inout_analog_write_set = function (_, generator) {
|
||||
generator.definitions_['import_machine'] = 'import machine';
|
||||
var dropdown_pin = generator.valueToCode(this, 'PIN', generator.ORDER_ATOMIC);
|
||||
var value_num = generator.valueToCode(this, 'NUM', generator.ORDER_ATOMIC);
|
||||
var key = this.getFieldValue('key');
|
||||
var code = dropdown_pin + '.set_analog_' + key + '(' + value_num + ')\n';
|
||||
//var code = 'pin' + dropdown_pin + '.set_analog_period(' + value_num + ')\n';
|
||||
return code;
|
||||
}
|
||||
|
||||
// ok
|
||||
export const inout_pin_pressed = function (_, generator) {
|
||||
generator.definitions_['import_machine'] = 'import machine';
|
||||
var pin = generator.valueToCode(this, 'pin', generator.ORDER_ATOMIC);
|
||||
var code = pin + '.read()';
|
||||
return [code, generator.ORDER_ATOMIC];
|
||||
}
|
||||
|
||||
export const inout_pin_attachInterrupt = function (_, generator) {
|
||||
generator.definitions_['import_machine'] = 'import machine';
|
||||
var dropdown_pin = generator.valueToCode(this, 'PIN', generator.ORDER_ATOMIC);
|
||||
var dropdown_mode = this.getFieldValue('mode');
|
||||
var atta = generator.valueToCode(this, 'DO', generator.ORDER_ATOMIC);
|
||||
var code = 'machine.Pin(' + dropdown_pin + ').irq' + '(handler = ' + atta + ', trigger = ' + dropdown_mode + ')\n'
|
||||
//var funcName = 'attachInterrupt_func_' + dropdown_pin;
|
||||
//var branch = generator.statementToCode(this, 'DO') || generator.PASS;
|
||||
//var code2 = 'def' + ' ' + funcName + '(p):\n' + branch + '\n';
|
||||
//generator.setups_[funcName] = code2;
|
||||
return code;
|
||||
}
|
||||
|
||||
export const inout_digital_init = function (_, generator) {
|
||||
generator.definitions_['import_machine'] = 'import machine';
|
||||
var pin_obj = this.getFieldValue('PIN_OBJ') || 'pin#';
|
||||
var dropdown_pin = generator.valueToCode(this, 'PIN', generator.ORDER_ATOMIC);
|
||||
var dropdown_mode = this.getFieldValue('MODE');
|
||||
var varName = (pin_obj == 'pin#') ? 'pin' + dropdown_pin : generator.variableDB_.getName(pin_obj, Blockly.Variables.NAME_TYPE);
|
||||
var code = varName + ' = machine.Pin(' + dropdown_pin + ', ' + dropdown_mode + ')\n';
|
||||
return code;
|
||||
}
|
||||
|
||||
// ok
|
||||
export const inout_analog_write_init = function (_, generator) {
|
||||
generator.definitions_['import_machine'] = 'import machine';
|
||||
var pin_obj = this.getFieldValue('PIN_OBJ') || 'dac#';
|
||||
var dropdown_pin = generator.valueToCode(this, 'PIN', generator.ORDER_ATOMIC);
|
||||
var varName = (pin_obj == 'dac#') ? 'dac' + dropdown_pin : generator.variableDB_.getName(pin_obj, Blockly.Variables.NAME_TYPE);
|
||||
var code = varName + ' = machine.DAC(machine.Pin(' + dropdown_pin + '))\n';
|
||||
return code;
|
||||
}
|
||||
|
||||
export const inout_analog_atten = function (_, generator) {
|
||||
generator.definitions_['import_machine'] = 'import machine';
|
||||
var dropdown_pin = generator.valueToCode(this, 'PIN', generator.ORDER_ATOMIC);
|
||||
//var dropdown_stat = this.getFieldValue('STAT');
|
||||
var value_atten = this.getFieldValue('atten')
|
||||
var code = dropdown_pin + '.atten(' + value_atten + ')\n';
|
||||
return code;
|
||||
}
|
||||
|
||||
// ok
|
||||
export const inout_pin_pressed_init = function (_, generator) {
|
||||
generator.definitions_['import_machine'] = 'import machine';
|
||||
var pin_obj = this.getFieldValue('PIN_OBJ') || 'tc#';
|
||||
var dropdown_pin = generator.valueToCode(this, 'PIN', generator.ORDER_ATOMIC);
|
||||
var varName = (pin_obj == 'tc#') ? 'tc' + dropdown_pin : generator.variableDB_.getName(pin_obj, Blockly.Variables.NAME_TYPE);
|
||||
var code = varName + ' = machine.TouchPad(machine.Pin(' + dropdown_pin + '))\n';
|
||||
return code;
|
||||
}
|
||||
@@ -0,0 +1,50 @@
|
||||
export const pins_digital = function (_, generator) {
|
||||
var code = this.getFieldValue('PIN');
|
||||
return [code, generator.ORDER_ATOMIC];
|
||||
};
|
||||
|
||||
export const pins_button = pins_digital;
|
||||
export const pins_buttonB = pins_digital;
|
||||
export const pins_digital_pin = pins_digital;
|
||||
export const pins_input_pin = pins_digital;
|
||||
export const pins_output_pin = pins_digital;
|
||||
export const pins_pwm_input = pins_digital;
|
||||
export const espnow_channel = pins_digital;
|
||||
export const haskylens_model = pins_digital;
|
||||
export const analog_input = pins_digital;
|
||||
export const pwm_output = pins_digital;
|
||||
export const analog_output = pins_digital;
|
||||
export const i2c_A_pin = pins_digital;
|
||||
export const i2c_B_pin = pins_digital;
|
||||
export const spi_A_pin = pins_digital;
|
||||
export const spi_B_pin = pins_digital;
|
||||
export const spi_C_pin = pins_digital;
|
||||
export const spi_D_pin = pins_digital;
|
||||
export const pins_analog_pin = pins_digital;
|
||||
export const pins_analog = pins_digital;
|
||||
export const pins_pwm_pin = pins_digital;
|
||||
export const pins_pwm = pins_digital;
|
||||
export const pins_dac_pin = pins_digital;
|
||||
export const pins_dac = pins_digital;
|
||||
export const pins_touch_pin = pins_digital;
|
||||
export const pins_touch = pins_digital;
|
||||
export const pins_interrupt = pins_digital;
|
||||
export const pins_serial = pins_digital;
|
||||
export const pins_builtinimg = pins_digital;
|
||||
export const pins_builtinimg_extern = pins_digital;
|
||||
export const pins_imglist = pins_digital;
|
||||
export const pins_playlist = pins_digital;
|
||||
export const pins_playlist_extern = pins_digital;
|
||||
export const pins_axis = pins_digital;
|
||||
export const pins_exlcdh = pins_digital;
|
||||
export const pins_exlcdv = pins_digital;
|
||||
export const pins_brightness = pins_digital;
|
||||
export const pins_tts_voice = pins_digital;
|
||||
export const pins_tts_builtin_music = pins_digital;
|
||||
export const pins_tts_bgmusic = pins_digital;
|
||||
export const pins_tone_notes = pins_digital;
|
||||
export const pins_radio_power = pins_digital;
|
||||
export const pins_radio_datarate = pins_digital;
|
||||
export const pins_one_more = pins_digital;
|
||||
export const pins_digital_dot = pins_digital;
|
||||
export const timer_id_pin = pins_digital;
|
||||
182
mixly/boards/default_src/micropython_esp32s2/index.js
Normal file
182
mixly/boards/default_src/micropython_esp32s2/index.js
Normal file
@@ -0,0 +1,182 @@
|
||||
import * as Blockly from 'blockly/core';
|
||||
import { Profile } from 'mixly';
|
||||
|
||||
import {
|
||||
PythonVariablesBlocks,
|
||||
PythonControlBlocks,
|
||||
PythonMathBlocks,
|
||||
PythonTextBlocks,
|
||||
PythonListsBlocks,
|
||||
PythonDictsBlocks,
|
||||
PythonLogicBlocks,
|
||||
PythonStorageBlocks,
|
||||
PythonProceduresBlocks,
|
||||
PythonTupleBlocks,
|
||||
PythonSetBlocks,
|
||||
PythonHtmlBlocks,
|
||||
PythonUtilityBlocks,
|
||||
PythonVariablesGenerators,
|
||||
PythonControlGenerators,
|
||||
PythonMathGenerators,
|
||||
PythonTextGenerators,
|
||||
PythonListsGenerators,
|
||||
PythonDictsGenerators,
|
||||
PythonLogicGenerators,
|
||||
PythonStorageGenerators,
|
||||
PythonProceduresGenerators,
|
||||
PythonTupleGenerators,
|
||||
PythonSetGenerators,
|
||||
PythonHtmlGenerators,
|
||||
PythonUtilityGenerators,
|
||||
Procedures,
|
||||
Variables,
|
||||
Python
|
||||
} from '@mixly/python';
|
||||
|
||||
import {
|
||||
MicroPythonActuatorExternBlocks,
|
||||
MicroPythonActuatorOnBoardBlocks,
|
||||
MicroPythonAISensorBlocks,
|
||||
MicroPythonAIBlocks,
|
||||
MicroPythonBlynkBlocks,
|
||||
MicroPythonCCG1Blocks,
|
||||
MicroPythonCEGOBlocks,
|
||||
MicroPythonCommunicateBlocks,
|
||||
MicroPythonDisplayExternBlocks,
|
||||
MicroPythonDisplayOnBoardBlocks,
|
||||
MicroPythonFactoryBlocks,
|
||||
MicroPythonInputBlocks,
|
||||
MicroPythonIotBlocks,
|
||||
MicroPythonNetworkBlocks,
|
||||
MicroPythonPeG1Blocks,
|
||||
MicroPythonSensorExternBlocks,
|
||||
MicroPythonSensorOnBoardBlocks,
|
||||
MicroPythonSerialBlocks,
|
||||
MicroPythonSystemBlocks,
|
||||
MicroPythonWeatherBlocks,
|
||||
MicroPythonActuatorExternGenerators,
|
||||
MicroPythonActuatorOnBoardGenerators,
|
||||
MicroPythonAISensorGenerators,
|
||||
MicroPythonAIGenerators,
|
||||
MicroPythonBlynkGenerators,
|
||||
MicroPythonCCG1Generators,
|
||||
MicroPythonCEGOGenerators,
|
||||
MicroPythonCommunicateGenerators,
|
||||
MicroPythonDisplayExternGenerators,
|
||||
MicroPythonDisplayOnBoardGenerators,
|
||||
MicroPythonFactoryGenerators,
|
||||
MicroPythonInputGenerators,
|
||||
MicroPythonIotGenerators,
|
||||
MicroPythonNetworkGenerators,
|
||||
MicroPythonPeG1Generators,
|
||||
MicroPythonSensorExternGenerators,
|
||||
MicroPythonSensorOnBoardGenerators,
|
||||
MicroPythonSerialGenerators,
|
||||
MicroPythonSystemGenerators,
|
||||
MicroPythonWeatherGenerators,
|
||||
MicroPythonZhHans,
|
||||
MicroPythonZhHant,
|
||||
MicroPythonEn
|
||||
} from '@mixly/micropython';
|
||||
|
||||
import {
|
||||
MicropythonESP32S2Pins,
|
||||
MicropythonESP32S2InoutBlocks,
|
||||
MicropythonESP32S2PinsBlocks,
|
||||
MicropythonESP32S2InoutGenerators,
|
||||
MicropythonESP32S2PinsGenerators
|
||||
} from './';
|
||||
|
||||
import './css/color_esp32s2_mixgoce.css';
|
||||
|
||||
Object.assign(Blockly.Variables, Variables);
|
||||
Object.assign(Blockly.Procedures, Procedures);
|
||||
|
||||
Object.assign(Blockly.Lang.ZhHans, MicroPythonZhHans);
|
||||
Object.assign(Blockly.Lang.ZhHant, MicroPythonZhHant);
|
||||
Object.assign(Blockly.Lang.En, MicroPythonEn);
|
||||
|
||||
Blockly.Python = Python;
|
||||
Blockly.generator = Python;
|
||||
|
||||
Profile.default = {};
|
||||
Object.assign(Profile, MicropythonESP32S2Pins);
|
||||
Object.assign(Profile.default, MicropythonESP32S2Pins['MixGo CE']);
|
||||
|
||||
Object.assign(
|
||||
Blockly.Blocks,
|
||||
PythonVariablesBlocks,
|
||||
PythonControlBlocks,
|
||||
PythonMathBlocks,
|
||||
PythonTextBlocks,
|
||||
PythonListsBlocks,
|
||||
PythonDictsBlocks,
|
||||
PythonLogicBlocks,
|
||||
PythonStorageBlocks,
|
||||
PythonProceduresBlocks,
|
||||
PythonTupleBlocks,
|
||||
PythonSetBlocks,
|
||||
PythonHtmlBlocks,
|
||||
PythonUtilityBlocks,
|
||||
MicroPythonInputBlocks,
|
||||
MicroPythonSystemBlocks,
|
||||
MicroPythonSerialBlocks,
|
||||
MicroPythonCommunicateBlocks,
|
||||
MicroPythonIotBlocks,
|
||||
MicroPythonWeatherBlocks,
|
||||
MicroPythonAISensorBlocks,
|
||||
MicroPythonSensorOnBoardBlocks,
|
||||
MicroPythonSensorExternBlocks,
|
||||
MicroPythonPeG1Blocks,
|
||||
MicroPythonNetworkBlocks,
|
||||
MicroPythonAIBlocks,
|
||||
MicroPythonActuatorOnBoardBlocks,
|
||||
MicroPythonActuatorExternBlocks,
|
||||
MicroPythonDisplayOnBoardBlocks,
|
||||
MicroPythonDisplayExternBlocks,
|
||||
MicroPythonFactoryBlocks,
|
||||
MicroPythonBlynkBlocks,
|
||||
MicroPythonCCG1Blocks,
|
||||
MicroPythonCEGOBlocks,
|
||||
MicropythonESP32S2InoutBlocks,
|
||||
MicropythonESP32S2PinsBlocks
|
||||
);
|
||||
|
||||
Object.assign(
|
||||
Blockly.Python.forBlock,
|
||||
PythonVariablesGenerators,
|
||||
PythonControlGenerators,
|
||||
PythonMathGenerators,
|
||||
PythonTextGenerators,
|
||||
PythonListsGenerators,
|
||||
PythonDictsGenerators,
|
||||
PythonLogicGenerators,
|
||||
PythonStorageGenerators,
|
||||
PythonProceduresGenerators,
|
||||
PythonTupleGenerators,
|
||||
PythonSetGenerators,
|
||||
PythonHtmlGenerators,
|
||||
PythonUtilityGenerators,
|
||||
MicroPythonInputGenerators,
|
||||
MicroPythonSystemGenerators,
|
||||
MicroPythonSerialGenerators,
|
||||
MicroPythonCommunicateGenerators,
|
||||
MicroPythonIotGenerators,
|
||||
MicroPythonWeatherGenerators,
|
||||
MicroPythonAISensorGenerators,
|
||||
MicroPythonSensorOnBoardGenerators,
|
||||
MicroPythonSensorExternGenerators,
|
||||
MicroPythonPeG1Generators,
|
||||
MicroPythonNetworkGenerators,
|
||||
MicroPythonAIGenerators,
|
||||
MicroPythonActuatorOnBoardGenerators,
|
||||
MicroPythonActuatorExternGenerators,
|
||||
MicroPythonDisplayOnBoardGenerators,
|
||||
MicroPythonDisplayExternGenerators,
|
||||
MicroPythonFactoryGenerators,
|
||||
MicroPythonBlynkGenerators,
|
||||
MicroPythonCCG1Generators,
|
||||
MicroPythonCEGOGenerators,
|
||||
MicropythonESP32S2InoutGenerators,
|
||||
MicropythonESP32S2PinsGenerators
|
||||
);
|
||||
18
mixly/boards/default_src/micropython_esp32s2/jsconfig.json
Normal file
18
mixly/boards/default_src/micropython_esp32s2/jsconfig.json
Normal file
@@ -0,0 +1,18 @@
|
||||
{
|
||||
"compilerOptions": {
|
||||
"experimentalDecorators": true,
|
||||
"baseUrl": "./",
|
||||
"paths": {
|
||||
"@mixly/python": [
|
||||
"../python"
|
||||
],
|
||||
"@mixly/micropython": [
|
||||
"../micropython"
|
||||
]
|
||||
}
|
||||
},
|
||||
"exclude": [
|
||||
"node_modules",
|
||||
"dist"
|
||||
]
|
||||
}
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -0,0 +1,250 @@
|
||||
"""
|
||||
CE GO -Onboard resources
|
||||
|
||||
MicroPython library for the CE GO (Smart Car base for MixGo CE)
|
||||
MicroPython library for the CE GO (Smart Car base for MixGo CE)
|
||||
=======================================================
|
||||
|
||||
#Preliminary composition 20220830
|
||||
|
||||
dahanzimin From the Mixly Team
|
||||
"""
|
||||
|
||||
import time, gc, math
|
||||
from tm1931 import TM1931
|
||||
from machine import Pin, SoftI2C, ADC
|
||||
|
||||
'''i2c-onboard'''
|
||||
i2c = SoftI2C(scl = Pin(4, pull=Pin.PULL_UP), sda = Pin(5, pull=Pin.PULL_UP), freq = 400000)
|
||||
i2c_scan = i2c.scan()
|
||||
|
||||
'''Version judgment'''
|
||||
if 0x50 in i2c_scan:
|
||||
version = 1
|
||||
else:
|
||||
version = 0
|
||||
|
||||
'''Judging the type of external motor'''
|
||||
Mi2c = 0
|
||||
for addr in i2c_scan:
|
||||
if addr in [0x30, 0x31, 0x32, 0x33]:
|
||||
Mi2c = addr
|
||||
break
|
||||
|
||||
'''i2c-motor'''
|
||||
def i2c_motor(speed):
|
||||
i2c.writeto(Mi2c, b'\x00\x00' + speed.to_bytes(1, 'little') + b'\x00')
|
||||
|
||||
'''TM1931-Expand'''
|
||||
class CAR(TM1931):
|
||||
'''Infrared line patrol obstacle avoidance mode'''
|
||||
CL=0 #Turn off infrared to reduce power consumption
|
||||
OA=1 #Obstacle avoidance mode only
|
||||
LP=2 #Line patrol mode only
|
||||
LS=3 #Light seeking mode only
|
||||
AS=4 #Automatic mode switching
|
||||
|
||||
'''TM1931 port corresponding function definition'''
|
||||
OAOU=5 #obstacle avoidance
|
||||
LPOU=4 #Line patrol control
|
||||
LSOU=3 #Light control
|
||||
WLED=12 #Headlamp port
|
||||
GLED=[17,8,6,15] #Green LED port
|
||||
RLED=[16,7,9,18] #Red LED port
|
||||
UCOU=[1,2] #Typec external port
|
||||
MOTO=[[13,14],[10,11],[1,2]] #Motor port
|
||||
|
||||
def __init__(self, i2c_bus):
|
||||
super().__init__(i2c_bus)
|
||||
self._mode = self.CL
|
||||
self.atten = 0.82 if version else 1
|
||||
self.adc0 = ADC(Pin(9), atten=ADC.ATTN_11DB)
|
||||
self.adc1 = ADC(Pin(10), atten=ADC.ATTN_11DB)
|
||||
self.adc2 = ADC(Pin(1), atten=ADC.ATTN_11DB)
|
||||
self.adc3 = ADC(Pin(2), atten=ADC.ATTN_11DB)
|
||||
|
||||
def ir_mode(self, select=0):
|
||||
'''Infrared line patrol obstacle avoidance mode'''
|
||||
self._mode=select
|
||||
if select==self.CL:
|
||||
self.pwm(self.OAOU,0)
|
||||
self.pwm(self.LPOU,0)
|
||||
self.pwm(self.LSOU,0)
|
||||
if select==self.OA:
|
||||
self.pwm(self.OAOU,255)
|
||||
self.pwm(self.LPOU,0)
|
||||
self.pwm(self.LSOU,0)
|
||||
if select==self.LP:
|
||||
self.pwm(self.OAOU,0)
|
||||
self.pwm(self.LPOU,255)
|
||||
self.pwm(self.LSOU,0)
|
||||
if select==self.LS:
|
||||
self.pwm(self.OAOU,0)
|
||||
self.pwm(self.LPOU,0)
|
||||
self.pwm(self.LSOU,255)
|
||||
time.sleep_ms(2)
|
||||
|
||||
def obstacle(self):
|
||||
'''Read the obstacle avoidance sensor'''
|
||||
if self._mode==self.AS:
|
||||
self.pwm(self.OAOU,255)
|
||||
self.pwm(self.LPOU,0)
|
||||
self.pwm(self.LSOU,0)
|
||||
time.sleep_ms(2)
|
||||
if self._mode==self.OA or self._mode==self.AS :
|
||||
return self.adc2.read_u16(),self.adc1.read_u16(),self.adc0.read_u16(),self.adc3.read_u16()
|
||||
else:
|
||||
raise ValueError('Mode selection error, obstacle avoidance data cannot be read')
|
||||
|
||||
def patrol(self):
|
||||
'''Read the line patrol sensor'''
|
||||
if self._mode==self.AS:
|
||||
self.pwm(self.OAOU,0)
|
||||
self.pwm(self.LPOU,255)
|
||||
self.pwm(self.LSOU,0)
|
||||
time.sleep_ms(2)
|
||||
if self._mode==self.LP or self._mode==self.AS:
|
||||
return self.adc3.read_u16(),self.adc2.read_u16(),self.adc1.read_u16(),self.adc0.read_u16()
|
||||
else:
|
||||
raise ValueError('Mode selection error, line patrol data cannot be read')
|
||||
|
||||
def light(self):
|
||||
'''Read the light seeking sensor'''
|
||||
if self._mode==self.AS:
|
||||
self.pwm(self.OAOU,0)
|
||||
self.pwm(self.LPOU,0)
|
||||
self.pwm(self.LSOU,255)
|
||||
time.sleep_ms(2)
|
||||
if self._mode==self.LS or self._mode==self.AS:
|
||||
return self.adc3.read_u16(),self.adc2.read_u16(),self.adc1.read_u16(),self.adc0.read_u16()
|
||||
else:
|
||||
raise ValueError('Mode selection error, light seeking data cannot be read')
|
||||
|
||||
def motor(self, index, action, speed=0):
|
||||
speed = round(max(min(speed, 100), -100) * self.atten)
|
||||
if action=="N":
|
||||
if (index == [1, 2]) and Mi2c:
|
||||
i2c_motor(0)
|
||||
else:
|
||||
self.pwm(index[0], 255)
|
||||
self.pwm(index[1], 255)
|
||||
elif action=="P":
|
||||
if (index == [1, 2]) and Mi2c:
|
||||
i2c_motor(0)
|
||||
else:
|
||||
self.pwm(index[0], 0)
|
||||
self.pwm(index[1], 0)
|
||||
elif action=="CW":
|
||||
if (index == [1, 2]) and Mi2c:
|
||||
i2c_motor(speed)
|
||||
else:
|
||||
if speed >= 0:
|
||||
self.pwm(index[0], speed * 255 // 100)
|
||||
self.pwm(index[1], 0)
|
||||
else:
|
||||
self.pwm(index[0], 0)
|
||||
self.pwm(index[1], - speed * 255 // 100)
|
||||
elif action=="CCW":
|
||||
if (index == [1, 2]) and Mi2c:
|
||||
i2c_motor(- speed)
|
||||
else:
|
||||
if speed >= 0:
|
||||
self.pwm(index[0], 0)
|
||||
self.pwm(index[1], speed * 255 // 100)
|
||||
else:
|
||||
self.pwm(index[0], - speed * 255 // 100)
|
||||
self.pwm(index[1], 0)
|
||||
else:
|
||||
raise ValueError('Invalid input, valid are "N","P","CW","CCW"')
|
||||
|
||||
def move(self,action,speed=100):
|
||||
if action=="N":
|
||||
self.motor(self.MOTO[0],"N")
|
||||
self.motor(self.MOTO[1],"N")
|
||||
elif action=="P":
|
||||
self.motor(self.MOTO[0],"P")
|
||||
self.motor(self.MOTO[1],"P")
|
||||
elif action=="F":
|
||||
self.motor(self.MOTO[0],"CCW",speed)
|
||||
self.motor(self.MOTO[1],"CW",speed)
|
||||
elif action=="B":
|
||||
self.motor(self.MOTO[0],"CW",speed)
|
||||
self.motor(self.MOTO[1],"CCW",speed)
|
||||
elif action=="L":
|
||||
self.motor(self.MOTO[0],"CW",speed)
|
||||
self.motor(self.MOTO[1],"CW",speed)
|
||||
elif action=="R":
|
||||
self.motor(self.MOTO[0],"CCW",speed)
|
||||
self.motor(self.MOTO[1],"CCW",speed)
|
||||
else:
|
||||
raise ValueError('Invalid input, valid are "N","P","F","B","L","R"')
|
||||
|
||||
def setbrightness(self,index,val):
|
||||
if not 0 <= val <= 100:
|
||||
raise ValueError("Brightness must be in the range: 0-100%")
|
||||
self.pwm(index,val)
|
||||
|
||||
def getrightness(self,index):
|
||||
return self.duty(index)
|
||||
|
||||
def setonoff(self,index,val):
|
||||
if(val == -1):
|
||||
if self.getrightness(index) < 50:
|
||||
self.setbrightness(index,100)
|
||||
else:
|
||||
self.setbrightness(index,0)
|
||||
elif(val == 1):
|
||||
self.setbrightness(index,100)
|
||||
elif(val == 0):
|
||||
self.setbrightness(index,0)
|
||||
|
||||
def getonoff(self,index):
|
||||
return True if self.getrightness(index)>0 else False
|
||||
|
||||
try :
|
||||
car=CAR(i2c) #Including LED,motor,patrol,obstacle
|
||||
except Exception as e:
|
||||
print("Warning: Failed to communicate with TM1931 (ME GO CAR) or", e)
|
||||
|
||||
'''2Hall_HEP'''
|
||||
class HALL:
|
||||
|
||||
_pulse_turns=1/480 if version else 1/400 #圈数= 1/(减速比*磁极)
|
||||
_pulse_distance=_pulse_turns*math.pi*4.4 #距离= 圈数*π*轮胎直径
|
||||
|
||||
def __init__(self, pin):
|
||||
self.turns = 0
|
||||
self.distance = 0 #cm
|
||||
self._speed = 0 #cm/s
|
||||
self._on_receive = None
|
||||
self._time = time.ticks_ms()
|
||||
Pin(pin, Pin.IN).irq(handler=self._receive_cb, trigger=(Pin.IRQ_RISING | Pin.IRQ_FALLING))
|
||||
|
||||
def _receive_cb(self, event_source):
|
||||
self.turns += self._pulse_turns
|
||||
self.distance += self._pulse_distance
|
||||
self._speed += self._pulse_distance
|
||||
if self._on_receive:
|
||||
self._on_receive(round(self.turns, 2),round(self.distance, 2))
|
||||
|
||||
def irq_cb(self, callback):
|
||||
self._on_receive = callback
|
||||
|
||||
def initial(self, turns=None, distance=None):
|
||||
if not (turns is None):
|
||||
self.turns = turns
|
||||
if not (distance is None):
|
||||
self.distance = distance
|
||||
|
||||
@property
|
||||
def speed(self):
|
||||
value=self._speed/time.ticks_diff(time.ticks_ms(), self._time)*1000 if self._speed>0 else 0
|
||||
self._time = time.ticks_ms()
|
||||
self._speed = 0
|
||||
return round(value, 2)
|
||||
|
||||
hall_A = HALL(6)
|
||||
hall_B = HALL(7)
|
||||
|
||||
'''Reclaim memory'''
|
||||
gc.collect()
|
||||
@@ -0,0 +1,243 @@
|
||||
"""
|
||||
MixGo CE-Onboard resources
|
||||
|
||||
Micropython library for the MixGo CE-Onboard resources
|
||||
=======================================================
|
||||
|
||||
#Preliminary composition 20220901
|
||||
|
||||
dahanzimin From the Mixly Team
|
||||
"""
|
||||
|
||||
import time,gc
|
||||
from machine import Pin,SoftI2C,ADC,PWM,RTC
|
||||
from ws2812 import NeoPixel
|
||||
from music import MIDI
|
||||
|
||||
'''RTC'''
|
||||
rtc_clock=RTC()
|
||||
|
||||
'''i2c-onboard'''
|
||||
onboard_i2c=SoftI2C(scl = Pin(41), sda = Pin(42), freq = 400000)
|
||||
onboard_i2c_scan = onboard_i2c.scan()
|
||||
|
||||
'''Version judgment'''
|
||||
if 0x15 in onboard_i2c_scan:
|
||||
version=1
|
||||
elif 0x26 in onboard_i2c_scan:
|
||||
version=0
|
||||
else:
|
||||
print("Warning: Mixgo CE board is not detected, which may cause usage errors")
|
||||
|
||||
'''Matrix16x8'''
|
||||
try :
|
||||
import matrix16x8
|
||||
onboard_matrix = matrix16x8.Matrix(onboard_i2c)
|
||||
except Exception as e:
|
||||
print("Warning: Failed to communicate with Matrix16x8 or",e)
|
||||
|
||||
'''6-Button'''
|
||||
class Button:
|
||||
def __init__(self, pin):
|
||||
self._pin = Pin(pin, Pin.IN, Pin.PULL_UP)
|
||||
self._flag = True
|
||||
|
||||
def get_presses(self, delay = 1):
|
||||
last_time,presses = time.time(), 0
|
||||
while time.time() < last_time + delay:
|
||||
time.sleep(0.05)
|
||||
if self.was_pressed():
|
||||
presses += 1
|
||||
return presses
|
||||
|
||||
def is_pressed(self):
|
||||
return self._pin.value() == False
|
||||
|
||||
def was_pressed(self):
|
||||
if self._pin.value() != self._flag:
|
||||
time.sleep(0.01)
|
||||
self._flag = self._pin.value()
|
||||
if self._flag:
|
||||
return False
|
||||
else:
|
||||
return True
|
||||
|
||||
def irq(self, handler, trigger):
|
||||
self._pin.irq(handler = handler, trigger = trigger)
|
||||
|
||||
A1key = Button(14)
|
||||
A2key = Button(21)
|
||||
A3key = Button(36)
|
||||
A4key = Button(37)
|
||||
B1key = Button(0)
|
||||
B2key = Button(35)
|
||||
|
||||
'''4-TouchPad'''
|
||||
class Touch_Pad:
|
||||
_pins = [4, 5, 6, 7]
|
||||
__species = {}
|
||||
__first_init = True
|
||||
def __new__(cls, pin, *args, **kwargs):
|
||||
if pin not in cls.__species.keys():
|
||||
cls.__first_init = True
|
||||
cls.__species[pin]=object.__new__(cls)
|
||||
return cls.__species[pin]
|
||||
|
||||
def __init__(self, pin):
|
||||
if self.__first_init:
|
||||
self.__first_init = False
|
||||
from machine import TouchPad
|
||||
self._pin = TouchPad(Pin(self._pins[pin]))
|
||||
|
||||
def is_touched(self,value):
|
||||
return self._pin.read() > value
|
||||
|
||||
def raw_value(self):
|
||||
return self._pin.read()
|
||||
|
||||
#Touch with function call
|
||||
def touched(pin,value=33000):
|
||||
return Touch_Pad(pin).is_touched(value) if value else Touch_Pad(pin).raw_value()
|
||||
|
||||
'''2-LED''' #Modify indexing method
|
||||
class LED:
|
||||
def __init__(self, pins=[]):
|
||||
self._pins = [PWM(Pin(pin), duty_u16=65535) for pin in pins]
|
||||
self._brightness = [0 for _ in range(len(self._pins))]
|
||||
|
||||
def setbrightness(self, index, val):
|
||||
if not 0 <= val <= 100:
|
||||
raise ValueError("Brightness must be in the range: 0-100%")
|
||||
self._brightness[index - 1] = val
|
||||
self._pins[index - 1].duty_u16(65535 - val * 65535 // 100)
|
||||
|
||||
def getbrightness(self, index):
|
||||
return self._brightness[index - 1]
|
||||
|
||||
def setonoff(self, index, val):
|
||||
if val == -1:
|
||||
self.setbrightness(index, 100) if self.getbrightness(index) < 50 else self.setbrightness(index, 0)
|
||||
elif val == 1:
|
||||
self.setbrightness(index, 100)
|
||||
elif val == 0:
|
||||
self.setbrightness(index, 0)
|
||||
|
||||
def getonoff(self, index):
|
||||
return True if self.getbrightness(index) > 50 else False
|
||||
|
||||
onboard_led = LED(pins=[33, 34])
|
||||
|
||||
'''MIC_Sensor'''
|
||||
class MICSensor:
|
||||
def __init__(self, pin):
|
||||
self.adc=ADC(Pin(pin))
|
||||
self.adc.atten(ADC.ATTN_11DB)
|
||||
|
||||
def read(self):
|
||||
maxloudness = 0
|
||||
for i in range(5):
|
||||
loudness = self.sample()
|
||||
if loudness > maxloudness:
|
||||
maxloudness = loudness
|
||||
return maxloudness
|
||||
|
||||
def sample(self):
|
||||
values = []
|
||||
for i in range(50):
|
||||
val = self.adc.read_u16()
|
||||
values.append(val)
|
||||
return max(values) - min(values)
|
||||
|
||||
onboard_sound = MICSensor(13)
|
||||
|
||||
'''3-ADCSensor'''
|
||||
class ADCSensor:
|
||||
__species = {}
|
||||
__first_init = True
|
||||
def __new__(cls, pin, *args, **kwargs):
|
||||
if pin not in cls.__species.keys():
|
||||
cls.__first_init = True
|
||||
cls.__species[pin]=object.__new__(cls)
|
||||
return cls.__species[pin]
|
||||
|
||||
def __init__(self, pin):
|
||||
if self.__first_init:
|
||||
self.__first_init = False
|
||||
self._adc=ADC(Pin(pin))
|
||||
self._adc.atten(ADC.ATTN_11DB)
|
||||
self._switch = Pin(39, Pin.OUT)
|
||||
|
||||
def read(self):
|
||||
return self._adc.read_u16()
|
||||
|
||||
def switch(self,val):
|
||||
self._switch.value(val)
|
||||
|
||||
def get_brightness():
|
||||
return ADCSensor(15).read()
|
||||
|
||||
'''Function definition of different versions'''
|
||||
if version==0:
|
||||
'''ACC-Sensor'''
|
||||
try:
|
||||
import msa301
|
||||
onboard_acc = msa301.MSA301(onboard_i2c,front=True)
|
||||
except Exception as e:
|
||||
print("Warning: Failed to communicate with MSA301 or",e)
|
||||
|
||||
'''4-RGB'''
|
||||
if Pin(40, Pin.IN).value():
|
||||
onboard_rgb = NeoPixel(Pin(8), 4)
|
||||
else:
|
||||
onboard_rgb = NeoPixel(Pin(8), 4, ORDER=(0, 1, 2, 3))
|
||||
|
||||
'''1Buzzer-Music'''
|
||||
Pin(40, Pin.OUT).value(1)
|
||||
onboard_music =MIDI(17)
|
||||
|
||||
'''temperature'''
|
||||
def get_temperature():
|
||||
adc_val = ADCSensor(16).read()
|
||||
return adc_val * 3.9 / 5900
|
||||
|
||||
def infrared_left():
|
||||
print("Warning: Old version, without this function")
|
||||
|
||||
def infrared_right():
|
||||
print("Warning: Old version, without this function")
|
||||
|
||||
if version==1:
|
||||
'''ACC-Sensor'''
|
||||
try:
|
||||
import mxc6655xa
|
||||
onboard_acc = mxc6655xa.MXC6655XA(onboard_i2c,front=True)
|
||||
|
||||
'''temperature'''
|
||||
def get_temperature():
|
||||
return onboard_acc.temperature()
|
||||
|
||||
except Exception as e:
|
||||
print("Warning: Failed to communicate with MXC6655XA or",e)
|
||||
|
||||
'''4-RGB'''
|
||||
onboard_rgb = NeoPixel(Pin(8), 4)
|
||||
|
||||
'''1Buzzer-Music'''
|
||||
onboard_music =MIDI(40)
|
||||
|
||||
def infrared_left():
|
||||
ADCSensor(3).switch(1)
|
||||
time.sleep(0.01)
|
||||
adc=ADCSensor(3).read()
|
||||
ADCSensor(3).switch(0)
|
||||
return adc
|
||||
|
||||
def infrared_right():
|
||||
ADCSensor(16).switch(1)
|
||||
time.sleep(0.01)
|
||||
adc=ADCSensor(16).read()
|
||||
ADCSensor(16).switch(0)
|
||||
return adc
|
||||
|
||||
'''Reclaim memory'''
|
||||
gc.collect()
|
||||
163
mixly/boards/default_src/micropython_esp32s2/origin/config.json
Normal file
163
mixly/boards/default_src/micropython_esp32s2/origin/config.json
Normal file
@@ -0,0 +1,163 @@
|
||||
{
|
||||
"board": {
|
||||
"MixGo CE": {
|
||||
"key": "micropython:esp32s2:mixgo_ce",
|
||||
"config": [
|
||||
{
|
||||
"key": "BurnSpeed",
|
||||
"label": "Burn Speed",
|
||||
"messageId": "MICROPYTHON_CONFIG_MESSAGE_BURN_SPEED",
|
||||
"options": [
|
||||
{
|
||||
"key": "921600",
|
||||
"label": "921600"
|
||||
},
|
||||
{
|
||||
"key": "460800",
|
||||
"label": "460800"
|
||||
},
|
||||
{
|
||||
"key": "230400",
|
||||
"label": "230400"
|
||||
},
|
||||
{
|
||||
"key": "115200",
|
||||
"label": "115200"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
"ESP32S2 Generic": {
|
||||
"key": "micropython:esp32s2:generic",
|
||||
"config": [
|
||||
{
|
||||
"key": "BurnSpeed",
|
||||
"label": "Burn Speed",
|
||||
"messageId": "MICROPYTHON_CONFIG_MESSAGE_BURN_SPEED",
|
||||
"options": [
|
||||
{
|
||||
"key": "921600",
|
||||
"label": "921600"
|
||||
},
|
||||
{
|
||||
"key": "460800",
|
||||
"label": "460800"
|
||||
},
|
||||
{
|
||||
"key": "230400",
|
||||
"label": "230400"
|
||||
},
|
||||
{
|
||||
"key": "115200",
|
||||
"label": "115200"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"language": "MicroPython",
|
||||
"burn": {
|
||||
"type": "command",
|
||||
"portSelect": "all",
|
||||
"micropython:esp32s2:mixgo_ce": {
|
||||
"command": "\"{esptool}\" --chip esp32s2 --port {com} --baud {baudrate} --after=no_reset write_flash -e 0x1000 \"{indexPath}/build/Mixgo_CE_lib-v1.25.0.bin\" 0X3A0000 \"{indexPath}/../micropython/build/HZK12.bin\"",
|
||||
"special": [
|
||||
{
|
||||
"name": "Default",
|
||||
"command": "\"{esptool}\" --chip esp32s2 --port {com} --baud {baudrate} --after=no_reset write_flash -e 0x1000 \"{indexPath}/build/Mixgo_CE_lib-v1.25.0.bin\" 0X3A0000 \"{indexPath}/../micropython/build/HZK12.bin\""
|
||||
},
|
||||
{
|
||||
"name": "ESP-AT-mode",
|
||||
"command": "\"{esptool}\" --chip esp32s2 --port {com} --baud {baudrate} --after=no_reset write_flash -e 0x0000 \"{indexPath}/build/MixGo-CE_AT-T17_R18.bin\""
|
||||
}
|
||||
]
|
||||
},
|
||||
"micropython:esp32s2:generic": {
|
||||
"command": "\"{esptool}\" --chip esp32s2 --port {com} --baud {baudrate} --after=no_reset write_flash -e 0x1000 \"{indexPath}/build/Generic_S2_lib-v1.25.0.bin\"",
|
||||
"special": [
|
||||
{
|
||||
"name": "Default",
|
||||
"command": "\"{esptool}\" --chip esp32s2 --port {com} --baud {baudrate} --after=no_reset write_flash -e 0x1000 \"{indexPath}/build/Generic_S2_lib-v1.25.0.bin\""
|
||||
},
|
||||
{
|
||||
"name": "ESP-AT-mode",
|
||||
"command": "\"{esptool}\" --chip esp32s2 --port {com} --baud {baudrate} --after=no_reset write_flash -e 0x0000 \"{indexPath}/build/MixGo-CE_AT-T17_R18.bin\""
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"upload": {
|
||||
"type": "command",
|
||||
"portSelect": "all",
|
||||
"libPath": [
|
||||
"{indexPath}/build/lib",
|
||||
"{indexPath}/../micropython/build/lib"
|
||||
],
|
||||
"command": "\"{ampy}\" -p {com} -d 1 -r \"{reset}\" put \"{indexPath}/build/upload\"",
|
||||
"filePath": "{indexPath}/build/upload/main.py",
|
||||
"copyLib": false,
|
||||
"reset": []
|
||||
},
|
||||
"nav": {
|
||||
"burn": true,
|
||||
"upload": true,
|
||||
"save": {
|
||||
"py": true
|
||||
},
|
||||
"setting": {
|
||||
"thirdPartyLibrary": true
|
||||
}
|
||||
},
|
||||
"serial": {
|
||||
"ctrlCBtn": true,
|
||||
"ctrlDBtn": true,
|
||||
"baudRates": 115200,
|
||||
"yMax": 100,
|
||||
"yMin": 0,
|
||||
"pointNum": 100,
|
||||
"rts": true,
|
||||
"dtr": true
|
||||
},
|
||||
"lib": {
|
||||
"mixly": {
|
||||
"url": [
|
||||
"http://download.mixlylibs.cloud/mixly3-packages/cloud-libs/micropython_esp32s2/libs.json"
|
||||
]
|
||||
}
|
||||
},
|
||||
"pythonToBlockly": false,
|
||||
"web": {
|
||||
"devices": {
|
||||
"serial": true,
|
||||
"hid": false,
|
||||
"usb": false
|
||||
},
|
||||
"burn": {
|
||||
"erase": true,
|
||||
"micropython:esp32s2:mixgo_ce": {
|
||||
"binFile": [
|
||||
{
|
||||
"offset": "0x1000",
|
||||
"path": "./build/Mixgo_CE_lib-v1.25.0.bin"
|
||||
}, {
|
||||
"offset": "0x3A0000",
|
||||
"path": "../micropython/build/HZK12.bin"
|
||||
}
|
||||
]
|
||||
},
|
||||
"micropython:esp32s2:generic": {
|
||||
"binFile": [
|
||||
{
|
||||
"offset": "0x1000",
|
||||
"path": "./build/Generic_S2_lib-v1.25.0.bin"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"upload": {
|
||||
"reset": []
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1 @@
|
||||
<xml version="Mixly 2.0 rc4" board="MixGo CE@MixGo CE"><block type="controls_whileUntil" id=";Emlj))DIKA(HroZJ,0B" x="-1001" y="-592"><field name="MODE">WHILE</field><value name="BOOL"><shadow type="logic_boolean" id="5jJoRAao`~3eV7*ak)#I"><field name="BOOL">TRUE</field></shadow></value><statement name="DO"><block type="display_show_image" id="q{#2`p5/S68QA,Rokj/B"><value name="data"><shadow type="pins_builtinimg" id=",zROBR/w[t}BN38@q-=("><field name="PIN">onboard_matrix.HEART</field></shadow></value><next><block type="display_scroll_string" id="_^hChKhg6ut4IgnbC;^$"><value name="data"><shadow type="text" id="C(K|]/[8_h@1X5,yk_FJ"><field name="TEXT">Hello,Mixly!</field></shadow></value></block></next></block></statement></block></xml><config>{}</config><code>ZnJvbSBtaXhnb19jZSBpbXBvcnQgb25ib2FyZF9tYXRyaXgKCgp3aGlsZSBUcnVlOgogICAgb25ib2FyZF9tYXRyaXguc2hvd3Mob25ib2FyZF9tYXRyaXguSEVBUlQpCiAgICBvbmJvYXJkX21hdHJpeC5zY3JvbGwoJ0hlbGxvLE1peGx5IScpCg==</code>
|
||||
@@ -0,0 +1 @@
|
||||
<xml version="Mixly 2.0 rc4" board="MixGo CE@MixGo CE"><block type="controls_whileUntil" id=",DbiGC.k0t+ST2b5g[?G" x="-1330" y="-796"><field name="MODE">WHILE</field><value name="BOOL"><shadow type="logic_boolean" id="!CRrU)g?S_4{iz.:tG|d"><field name="BOOL">TRUE</field></shadow></value><statement name="DO"><block type="display_show_image" id="Xs?j]p5dOUG@(u:8#-og"><value name="data"><shadow type="pins_builtinimg" id="_cF.=J7*78vhXs}4(BJu"><field name="PIN">onboard_matrix.HEART</field></shadow><block type="image_invert" id="vqKsCQA,Sjf~XwDP9RDe"><value name="A"><shadow type="pins_builtinimg" id="UVfgwF-9}1k@[=Zge:vM"><field name="PIN">onboard_matrix.HEART</field></shadow></value></block></value><next><block type="display_scroll_string_delay" id="qrx@9QNwfUC_|iXc2k,#"><value name="data"><shadow type="text" id="QV1=rBXuW[zy++CH)o+?"><field name="TEXT">Hello,Mixly!</field></shadow></value><value name="space"><shadow type="math_number" id="hv_^{Bo{h0N`VR5}($Vg"><field name="NUM">0</field></shadow></value><value name="time"><shadow type="math_number" id="xW#2FIh,LQS]|r?#PXu)"><field name="NUM">50</field></shadow></value></block></next></block></statement></block></xml><config>{}</config><code>ZnJvbSBtaXhnb19jZSBpbXBvcnQgb25ib2FyZF9tYXRyaXgKCgp3aGlsZSBUcnVlOgogICAgb25ib2FyZF9tYXRyaXguc2hvd3Mob25ib2FyZF9tYXRyaXgubWFwX2ludmVydChvbmJvYXJkX21hdHJpeC5IRUFSVCkpCiAgICBvbmJvYXJkX21hdHJpeC5zY3JvbGwoJ0hlbGxvLE1peGx5IScsc3BlZWQgPTUwLHNwYWNlID0gMCkK</code>
|
||||
@@ -0,0 +1 @@
|
||||
<xml version="Mixly 2.0 rc4" board="MixGo CE@MixGo CE"><block type="controls_whileUntil" id="ts~I!KR;?X^$RmO_p|JF" x="-851" y="-584"><field name="MODE">WHILE</field><value name="BOOL"><shadow type="logic_boolean" id="zJc3hS^~|q*r99v|:@O_"><field name="BOOL">TRUE</field></shadow></value><statement name="DO"><block type="display_show_image" id="i#dOmu}FAZC#hXOgusmE"><value name="data"><shadow type="pins_builtinimg" id="mECneSGl#u.mJE{ByNh;"><field name="PIN">onboard_matrix.HEART</field></shadow></value><next><block type="controls_delay_new" id="RG+{5+$qy~oWU(,Su+K/"><field name="Time">s</field><value name="DELAY_TIME"><shadow type="math_number" id="]rOM{u^JBrjf;/8i;fUk"><field name="NUM">0.1</field></shadow></value><next><block type="display_show_image" id="js8@/t*kVVm]7H_^l+/D"><value name="data"><shadow type="pins_builtinimg" id="oA6X4fHaY!4l:9tyzJ9b"><field name="PIN">onboard_matrix.HEART_SMALL</field></shadow></value><next><block type="controls_delay_new" id="Hb9.Dsh0rpt*yw?xs|X_"><field name="Time">s</field><value name="DELAY_TIME"><shadow type="math_number" id="c@44mfK/q*YJZQH9s;[o"><field name="NUM">0.1</field></shadow></value></block></next></block></next></block></next></block></statement></block></xml><config>{}</config><code>ZnJvbSBtaXhnb19jZSBpbXBvcnQgb25ib2FyZF9tYXRyaXgKaW1wb3J0IHRpbWUKCgp3aGlsZSBUcnVlOgogICAgb25ib2FyZF9tYXRyaXguc2hvd3Mob25ib2FyZF9tYXRyaXguSEVBUlQpCiAgICB0aW1lLnNsZWVwKDAuMSkKICAgIG9uYm9hcmRfbWF0cml4LnNob3dzKG9uYm9hcmRfbWF0cml4LkhFQVJUX1NNQUxMKQogICAgdGltZS5zbGVlcCgwLjEpCg==</code>
|
||||
@@ -0,0 +1 @@
|
||||
<xml version="Mixly 2.0 rc4" board="MixGo CE@MixGo CE"><block type="display_scroll_string" id="zh/A:9,xgi=oeb*^xK3h" x="-847" y="-630"><value name="data"><shadow type="text" id="ltM)7yn_NgCnoWE-FF/q"><field name="TEXT">Mixly</field></shadow></value><next><block type="controls_whileUntil" id="3Kf{,(uz@3oY`Ddb7s5#"><field name="MODE">WHILE</field><value name="BOOL"><shadow type="logic_boolean" id="8SeoHit35S(jgfD$JA_I"><field name="BOOL">TRUE</field></shadow></value><statement name="DO"><block type="display_show_image" id="hWaUhq1;OeyWLvo9{HQb"><value name="data"><shadow type="pins_builtinimg" id="g:3O|lmm^L.H:~vL9(=="><field name="PIN">onboard_matrix.HEART</field></shadow></value><next><block type="controls_delay_new" id="C63=fb{tVN;:*I|H1bf?"><field name="Time">s</field><value name="DELAY_TIME"><shadow type="math_number" id=")YSAcc=`kaf[-zN3QPW6"><field name="NUM">0.1</field></shadow></value><next><block type="display_show_image" id="gOPxY:Ztvze;$/arTP$s"><value name="data"><shadow type="pins_builtinimg" id="y`3/@}r~v29NW*e]wP1^"><field name="PIN">onboard_matrix.HEART_SMALL</field></shadow></value><next><block type="controls_delay_new" id="O[uq1kguL*-L-S.~4MAq"><field name="Time">s</field><value name="DELAY_TIME"><shadow type="math_number" id="QTcllwK7UU=fo?G:gcoo"><field name="NUM">0.1</field></shadow></value></block></next></block></next></block></next></block></statement></block></next></block></xml><config>{}</config><code>ZnJvbSBtaXhnb19jZSBpbXBvcnQgb25ib2FyZF9tYXRyaXgKaW1wb3J0IHRpbWUKCgpvbmJvYXJkX21hdHJpeC5zY3JvbGwoJ01peGx5JykKd2hpbGUgVHJ1ZToKICAgIG9uYm9hcmRfbWF0cml4LnNob3dzKG9uYm9hcmRfbWF0cml4LkhFQVJUKQogICAgdGltZS5zbGVlcCgwLjEpCiAgICBvbmJvYXJkX21hdHJpeC5zaG93cyhvbmJvYXJkX21hdHJpeC5IRUFSVF9TTUFMTCkKICAgIHRpbWUuc2xlZXAoMC4xKQo=</code>
|
||||
@@ -0,0 +1 @@
|
||||
<xml version="Mixly 2.0 rc4" board="MixGo CE@MixGo CE"><block type="controls_whileUntil" id="0c/MfRu+j0UCspK}O0I|" x="-1017" y="-593"><field name="MODE">WHILE</field><value name="BOOL"><shadow type="logic_boolean" id="$oW7()ssOSL$nJ@jz`)`"><field name="BOOL">TRUE</field></shadow></value><statement name="DO"><block type="controls_if" id="CeOi19]Ntj5E3(hC$+)K"><mutation else="1"></mutation><value name="IF0"><block type="sensor_mixgo_button_is_pressed" id="q~e1=oBBQF=dD,*;y{W`"><value name="btn"><shadow type="pins_button" id="V8AEQ;tr@SuEcTFF,#A?"><field name="PIN">B1key</field></shadow></value></block></value><statement name="DO0"><block type="display_show_image" id="Z=sWgziVH[Ze*LUYXZX@"><value name="data"><shadow type="pins_builtinimg" id="?;nl+bT#dlAc``7?Y)T$"><field name="PIN">onboard_matrix.HEART</field></shadow></value></block></statement><statement name="ELSE"><block type="display_show_image" id="Ix=?}0Q=}~0)Mvue;8.#"><value name="data"><shadow type="pins_builtinimg" id="OAos-P@Vo^B2]|][oeLL"><field name="PIN">onboard_matrix.HEART_SMALL</field></shadow></value></block></statement></block></statement></block></xml><config>{}</config><code>aW1wb3J0IG1peGdvX2NlCmZyb20gbWl4Z29fY2UgaW1wb3J0IG9uYm9hcmRfbWF0cml4CgoKd2hpbGUgVHJ1ZToKICAgIGlmIG1peGdvX2NlLkIxa2V5LmlzX3ByZXNzZWQoKToKICAgICAgICBvbmJvYXJkX21hdHJpeC5zaG93cyhvbmJvYXJkX21hdHJpeC5IRUFSVCkKICAgIGVsc2U6CiAgICAgICAgb25ib2FyZF9tYXRyaXguc2hvd3Mob25ib2FyZF9tYXRyaXguSEVBUlRfU01BTEwpCg==</code>
|
||||
@@ -0,0 +1 @@
|
||||
<xml version="Mixly 2.0 rc4" board="MixGo CE@MixGo CE"><block type="controls_whileUntil" id="*M=4aRxT|}4KY79O5HYk" x="-1059" y="-724"><field name="MODE">WHILE</field><value name="BOOL"><shadow type="logic_boolean" id="~?Pz{`^Gg]t-)+L?MlZ{"><field name="BOOL">TRUE</field></shadow></value><statement name="DO"><block type="controls_if" id="dza@cru]=rF`IHt?hy;0"><mutation elseif="2" else="1"></mutation><value name="IF0"><block type="logic_operation" id="T[=2qkEEmy4W,iBs0AGh"><field name="OP">AND</field><value name="A"><block type="sensor_mixgo_button_is_pressed" id="JoDc3^_IX4^gg$Ho)}AY"><value name="btn"><shadow type="pins_button" id="w]T4t#yVjEjTYe+^8jqY"><field name="PIN">B1key</field></shadow></value></block></value><value name="B"><block type="sensor_mixgo_button_is_pressed" id="krE6NOcL/@ta;Eg0WRay"><value name="btn"><shadow type="pins_button" id="6;R}ugFi@K_Mf1fNuKTk"><field name="PIN">B2key</field></shadow></value></block></value></block></value><statement name="DO0"><block type="display_show_image" id="MOc^pNXfUD$k)xuJqpR("><value name="data"><shadow type="pins_builtinimg" id="lN1k6`G!=$q+D99Y*`hE"><field name="PIN">onboard_matrix.SAD</field></shadow></value></block></statement><value name="IF1"><block type="sensor_mixgo_button_is_pressed" id="7`~.iAqasC^Hm6QU}t/X"><value name="btn"><shadow type="pins_button" id="Z3yb,2N?(Wl`0U]w,a_+"><field name="PIN">B1key</field></shadow></value></block></value><statement name="DO1"><block type="display_show_image" id="`a_V`-rluYx~F-2G9cne"><value name="data"><shadow type="pins_builtinimg" id="1VT!/1ViV4nJM[qU=6Lz"><field name="PIN">onboard_matrix.HEART</field></shadow></value></block></statement><value name="IF2"><block type="sensor_mixgo_button_is_pressed" id="O]3dt)ymj{v2|`CMv/6."><value name="btn"><shadow type="pins_button" id=")5)_Tmv1=y+`?u:PN.DI"><field name="PIN">B2key</field></shadow></value></block></value><statement name="DO2"><block type="display_show_image" id="2NUR!fs(IYy=H2(!q3_T"><value name="data"><shadow type="pins_builtinimg" id="6^Y(M*_wwSG7Jb_.pSI("><field name="PIN">onboard_matrix.HEART_SMALL</field></shadow></value></block></statement><statement name="ELSE"><block type="display_show_image" id="@Wup:W#(xDvz,Dp*x8G/"><value name="data"><shadow type="pins_builtinimg" id="^f(lFKeBW`b{0?Wqt$j9"><field name="PIN">onboard_matrix.SMILE</field></shadow></value></block></statement></block></statement></block></xml><config>{}</config><code>aW1wb3J0IG1peGdvX2NlCmZyb20gbWl4Z29fY2UgaW1wb3J0IG9uYm9hcmRfbWF0cml4CgoKd2hpbGUgVHJ1ZToKICAgIGlmIG1peGdvX2NlLkIxa2V5LmlzX3ByZXNzZWQoKSBhbmQgbWl4Z29fY2UuQjJrZXkuaXNfcHJlc3NlZCgpOgogICAgICAgIG9uYm9hcmRfbWF0cml4LnNob3dzKG9uYm9hcmRfbWF0cml4LlNBRCkKICAgIGVsaWYgbWl4Z29fY2UuQjFrZXkuaXNfcHJlc3NlZCgpOgogICAgICAgIG9uYm9hcmRfbWF0cml4LnNob3dzKG9uYm9hcmRfbWF0cml4LkhFQVJUKQogICAgZWxpZiBtaXhnb19jZS5CMmtleS5pc19wcmVzc2VkKCk6CiAgICAgICAgb25ib2FyZF9tYXRyaXguc2hvd3Mob25ib2FyZF9tYXRyaXguSEVBUlRfU01BTEwpCiAgICBlbHNlOgogICAgICAgIG9uYm9hcmRfbWF0cml4LnNob3dzKG9uYm9hcmRfbWF0cml4LlNNSUxFKQo=</code>
|
||||
@@ -0,0 +1 @@
|
||||
<xml version="Mixly 2.0 rc4" board="MixGo CE@MixGo CE"><block type="controls_whileUntil" id="jW0m[K#`M9j}|(H6)SRk" x="-1059" y="-724"><field name="MODE">WHILE</field><value name="BOOL"><shadow type="logic_boolean" id="8_Zt{HV+`T~;7LNjEO3L"><field name="BOOL">TRUE</field></shadow></value><statement name="DO"><block type="controls_forEach" id=",]YHIHH-:DUG!Vd[ApqL"><value name="LIST"><shadow type="list_many_input" id="K!Me$[ah`t4zlk$98Z1r"><field name="CONTENT">0,1,2,3</field></shadow><block type="controls_range" id="Os;{3_XNtON.da_7(ZCd"><value name="FROM"><shadow type="math_number" id=")9-WDjmAnSCokg1,!@WJ"><field name="NUM">0</field></shadow></value><value name="TO"><shadow type="math_number" id="kOqjqji4l.|TegNy9]A+"><field name="NUM">4</field></shadow></value><value name="STEP"><shadow type="math_number" id="ReT!k0nivwLat;T;~7J/"><field name="NUM">1</field></shadow></value></block></value><value name="VAR"><shadow type="variables_get" id="dv~qo@7X^(f~`o^{;WpG"><field name="VAR">i</field></shadow></value><statement name="DO"><block type="actuator_onboard_neopixel_rgb" id="qsmcttnoaOhtaY-1/|(*"><value name="_LED_"><shadow type="math_number" id="2,wD#$*F:jCRrS}EJb#r"><field name="NUM">0</field></shadow><block type="variables_get" id="Dq#:U[Jc$7yM:|5Re1=k"><field name="VAR">i</field></block></value><value name="RVALUE"><shadow type="math_number" id="jP]Ae+5A3Tn6~4cC_9;V"><field name="NUM">0</field></shadow></value><value name="GVALUE"><shadow type="math_number" id="z9UitvNlrw3V.ejWvJaD"><field name="NUM">0</field></shadow></value><value name="BVALUE"><shadow type="math_number" id="]z!CfVW/(i*i_jJ!@LIV"><field name="NUM">25</field></shadow></value><next><block type="actuator_onboard_neopixel_write" id="Xm/;I#yPI#Zzj^anR_GL"><next><block type="controls_delay_new" id="t2!}$SVO.i4f},zsne)j"><field name="Time">s</field><value name="DELAY_TIME"><shadow type="math_number" id="Vg]y92c*vK}93D].pWq@"><field name="NUM">0.5</field></shadow></value></block></next></block></next></block></statement><next><block type="actuator_onboard_neopixel_rgb_all" id="^LiPBGe/P05{^h.]VSe]"><value name="RVALUE"><shadow type="math_number" id="LEU.f!|ex:q3uooz3,K~"><field name="NUM">0</field></shadow></value><value name="GVALUE"><shadow type="math_number" id="RanxV-;`Us[^-ijVT!JO"><field name="NUM">0</field></shadow></value><value name="BVALUE"><shadow type="math_number" id=")biPL6]x/x1z;Xv^IhJq"><field name="NUM">0</field></shadow></value><next><block type="actuator_onboard_neopixel_write" id="*:haglIQ|^$B8i3,(m{-"><next><block type="controls_delay_new" id="geif}M04@(N*dPca=(uU"><field name="Time">s</field><value name="DELAY_TIME"><shadow type="math_number" id="4;GB[.+g-i=P2JO-`,!r"><field name="NUM">1</field></shadow></value></block></next></block></next></block></next></block></statement></block></xml><config>{}</config><code>ZnJvbSBtaXhnb19jZSBpbXBvcnQgb25ib2FyZF9yZ2IKaW1wb3J0IHRpbWUKCgp3aGlsZSBUcnVlOgogICAgZm9yIGkgaW4gcmFuZ2UoMCwgNCwgMSk6CiAgICAgICAgb25ib2FyZF9yZ2JbaV0gPSAoMCwgMCwgMjUpCiAgICAgICAgb25ib2FyZF9yZ2Iud3JpdGUoKQogICAgICAgIHRpbWUuc2xlZXAoMC41KQogICAgb25ib2FyZF9yZ2IuZmlsbCgoMCwgMCwgMCkpCiAgICBvbmJvYXJkX3JnYi53cml0ZSgpCiAgICB0aW1lLnNsZWVwKDEpCg==</code>
|
||||
@@ -0,0 +1 @@
|
||||
<xml version="Mixly 2.0 rc4" board="MixGo CE@MixGo CE"><block type="controls_whileUntil" id="=s:f3eQS;:e6lEax{;~O" x="-1059" y="-724"><field name="MODE">WHILE</field><value name="BOOL"><shadow type="logic_boolean" id="6E;Z5?nn(G2|,:i4!#mj"><field name="BOOL">TRUE</field></shadow></value><statement name="DO"><block type="controls_forEach" id="xiCiGP!aoVtUBrsVjRXj"><value name="LIST"><shadow type="list_many_input" id="#D+;uZIXDj0@TWl_K8*y"><field name="CONTENT">0,1,2,3</field></shadow><block type="controls_range" id="er2N#9QUA@{rxJ@a,/a9"><value name="FROM"><shadow type="math_number" id="2_*hZEmqaBTuJh}.8UMD"><field name="NUM">0</field></shadow></value><value name="TO"><shadow type="math_number" id="l,}9ClRs;=M($Gu14v03"><field name="NUM">4</field></shadow></value><value name="STEP"><shadow type="math_number" id="vZJUv.f=eyMlsR3Pno+*"><field name="NUM">1</field></shadow></value></block></value><value name="VAR"><shadow type="variables_get" id="~jU=:)kV`tlAfAjfARRA"><field name="VAR">i</field></shadow></value><statement name="DO"><block type="actuator_onboard_neopixel_rgb_all" id="@3zA*#WDo?yYID6_3|8x"><value name="RVALUE"><shadow type="math_number" id="YBgMv`L_6JVKT9RKVqLR"><field name="NUM">0</field></shadow></value><value name="GVALUE"><shadow type="math_number" id="]8+pQVy2~Gu.fH,l6I+f"><field name="NUM">0</field></shadow></value><value name="BVALUE"><shadow type="math_number" id="deW2A`[TA5zNc~2NMKwX"><field name="NUM">0</field></shadow></value><next><block type="actuator_onboard_neopixel_rgb" id="QSWGl-KX9p^I+X:HL^Qm"><value name="_LED_"><shadow type="math_number" id="k}=D+]tD$!9#q/)t}*,$"><field name="NUM">0</field></shadow><block type="variables_get" id="8;5UbvM}kpm;cqZukBs1"><field name="VAR">i</field></block></value><value name="RVALUE"><shadow type="math_number" id="b(UB2+0@;AJB5Y)xOoMJ"><field name="NUM">0</field></shadow></value><value name="GVALUE"><shadow type="math_number" id="~9LRs=tB^D|#DTcZ~AB$"><field name="NUM">0</field></shadow></value><value name="BVALUE"><shadow type="math_number" id="rOqq65fhsT+cbJjm;FxJ"><field name="NUM">25</field></shadow></value><next><block type="actuator_onboard_neopixel_write" id="TJI)VbHRexod]0Qdvfdp"><next><block type="controls_delay_new" id="*:N,i:ByEH]}DJq}JpTo"><field name="Time">s</field><value name="DELAY_TIME"><shadow type="math_number" id="-W-st~qTJn?/h$0bu;:u"><field name="NUM">0.5</field></shadow></value></block></next></block></next></block></next></block></statement><next><block type="actuator_onboard_neopixel_rgb_all" id="o!`NzJp;*0GP(vaZ7a?1"><value name="RVALUE"><shadow type="math_number" id="@j:u9NEb_(v}e;;aZz(C"><field name="NUM">0</field></shadow></value><value name="GVALUE"><shadow type="math_number" id="R6ftgGephnYd2Un6zG82"><field name="NUM">0</field></shadow></value><value name="BVALUE"><shadow type="math_number" id="!?r_fosg_G9,y{N-ms7p"><field name="NUM">0</field></shadow></value><next><block type="actuator_onboard_neopixel_write" id="Z].IpwG#Z;JSISlWPf}z"><next><block type="controls_delay_new" id="7B@Ln)r3/OZ9@BZNiwGL"><field name="Time">s</field><value name="DELAY_TIME"><shadow type="math_number" id="I2CL7{4@@Car2`X|9^di"><field name="NUM">1</field></shadow></value></block></next></block></next></block></next></block></statement></block></xml><config>{}</config><code>ZnJvbSBtaXhnb19jZSBpbXBvcnQgb25ib2FyZF9yZ2IKaW1wb3J0IHRpbWUKCgp3aGlsZSBUcnVlOgogICAgZm9yIGkgaW4gcmFuZ2UoMCwgNCwgMSk6CiAgICAgICAgb25ib2FyZF9yZ2IuZmlsbCgoMCwgMCwgMCkpCiAgICAgICAgb25ib2FyZF9yZ2JbaV0gPSAoMCwgMCwgMjUpCiAgICAgICAgb25ib2FyZF9yZ2Iud3JpdGUoKQogICAgICAgIHRpbWUuc2xlZXAoMC41KQogICAgb25ib2FyZF9yZ2IuZmlsbCgoMCwgMCwgMCkpCiAgICBvbmJvYXJkX3JnYi53cml0ZSgpCiAgICB0aW1lLnNsZWVwKDEpCg==</code>
|
||||
@@ -0,0 +1 @@
|
||||
<xml version="Mixly 2.0 rc4" board="MixGo CE@MixGo CE"><block type="controls_whileUntil" id="C*|g+V^Y}a1e[Ap$8mDI" x="-1059" y="-724"><field name="MODE">WHILE</field><value name="BOOL"><shadow type="logic_boolean" id="OAOKa1aEA}$/!V945x)o"><field name="BOOL">TRUE</field></shadow></value><statement name="DO"><block type="controls_if" id="X:qv-lXRw+*mZ|zFJssB"><value name="IF0"><block type="sensor_mixgo_button_was_pressed" id="KXj?uj;iLNHrX=/NslWr"><value name="btn"><shadow type="pins_button" id="1zFNtZDF:7M-MGLl;1{="><field name="PIN">B1key</field></shadow></value></block></value><statement name="DO0"><block type="display_show_image" id="^:Z7aV2Y[5=2{SoeV@/Z"><value name="data"><shadow type="pins_builtinimg" id="oTO|=QwPeK[F`@3O0l6M"><field name="PIN">onboard_matrix.HEART</field></shadow></value></block></statement><next><block type="controls_if" id="Y/ShBidZMFB@1)c.K6rd"><value name="IF0"><block type="sensor_mixgo_button_was_pressed" id="#vv`XJArnOn?:9PUl=g$"><value name="btn"><shadow type="pins_button" id="~Se]Yr@_t/r{9Qx,lNc!"><field name="PIN">B2key</field></shadow></value></block></value><statement name="DO0"><block type="display_clear" id="*ogq-`?QH#Iobl:NDbB,"></block></statement></block></next></block></statement></block></xml><config>{}</config><code>aW1wb3J0IG1peGdvX2NlCmZyb20gbWl4Z29fY2UgaW1wb3J0IG9uYm9hcmRfbWF0cml4CgoKd2hpbGUgVHJ1ZToKICAgIGlmIG1peGdvX2NlLkIxa2V5Lndhc19wcmVzc2VkKCk6CiAgICAgICAgb25ib2FyZF9tYXRyaXguc2hvd3Mob25ib2FyZF9tYXRyaXguSEVBUlQpCiAgICBpZiBtaXhnb19jZS5CMmtleS53YXNfcHJlc3NlZCgpOgogICAgICAgIG9uYm9hcmRfbWF0cml4LmZpbGwoMCkKICAgICAgICBvbmJvYXJkX21hdHJpeC5zaG93KCkK</code>
|
||||
@@ -0,0 +1 @@
|
||||
<xml version="Mixly 2.0 rc4" board="MixGo CE@MixGo CE"><block type="controls_whileUntil" id="U~r=;pZ7VTWlUB;lMT;H" x="-1437" y="-624"><field name="MODE">WHILE</field><value name="BOOL"><shadow type="logic_boolean" id=".RsD2g;TOC]E(;8nY;^q"><field name="BOOL">TRUE</field></shadow></value><statement name="DO"><block type="controls_if" id="U1eAvp3Ni.7.gszZ4z2n"><value name="IF0"><block type="sensor_mixgo_button_was_pressed" id=".oO!ILsYuwVyKP[I-?Da"><value name="btn"><shadow type="pins_button" id="z$[A_/iCbgD6j8)@sDC?"><field name="PIN">B1key</field></shadow></value></block></value><statement name="DO0"><block type="do_while" id="6{/y-B?vMo(4d?N]_K-3"><field name="type">true</field><statement name="input_data"><block type="display_show_image" id="Rwzdz9vYj32ETrl9NvQO"><value name="data"><shadow type="pins_builtinimg" id="L#l4/ny^fUqKEKi(a):#"><field name="PIN">onboard_matrix.HEART</field></shadow></value></block></statement><value name="select_data"><block type="sensor_mixgo_button_was_pressed" id="59KGF7IJU+Y|a,WH,j5+"><value name="btn"><shadow type="pins_button" id="AFJ~zWy=ZPoaQoa/~;]:"><field name="PIN">B1key</field></shadow></value></block></value><next><block type="display_clear" id="PAx{Sx#RKU7ABwZNPVY/"></block></next></block></statement></block></statement></block></xml><config>{}</config><code>aW1wb3J0IG1peGdvX2NlCmZyb20gbWl4Z29fY2UgaW1wb3J0IG9uYm9hcmRfbWF0cml4CgoKd2hpbGUgVHJ1ZToKICAgIGlmIG1peGdvX2NlLkIxa2V5Lndhc19wcmVzc2VkKCk6CiAgICAgICAgd2hpbGUgVHJ1ZToKICAgICAgICAgICAgb25ib2FyZF9tYXRyaXguc2hvd3Mob25ib2FyZF9tYXRyaXguSEVBUlQpCiAgICAgICAgICAgIGlmIChtaXhnb19jZS5CMWtleS53YXNfcHJlc3NlZCgpKToKICAgICAgICAgICAgICAgIGJyZWFrCiAgICAgICAgb25ib2FyZF9tYXRyaXguZmlsbCgwKQogICAgICAgIG9uYm9hcmRfbWF0cml4LnNob3coKQo=</code>
|
||||
@@ -0,0 +1 @@
|
||||
<xml version="Mixly 2.0 rc4" board="MixGo CE@MixGo CE"><block type="variables_set" id="hV1(vM)yVDwHl6ZG:0sA" x="-1054" y="-758"><field name="VAR">显示</field><value name="VALUE"><block type="logic_boolean" id="|$|dp[4hF0q;zN@nc@{K"><field name="BOOL">FALSE</field></block></value><next><block type="controls_whileUntil" id="SJ8Mco2x+Zg];on1rE=="><field name="MODE">WHILE</field><value name="BOOL"><shadow type="logic_boolean" id="Y@CbQv+Ve`P^boNQ9{C$"><field name="BOOL">TRUE</field></shadow></value><statement name="DO"><block type="controls_if" id="tNxxZzGkx#;k/S0BN=*="><value name="IF0"><block type="sensor_mixgo_button_was_pressed" id="WUdh[RxGx!!j~Y08Q1/s"><value name="btn"><shadow type="pins_button" id="r;|Z@JvdKhbC:.oRX`I@"><field name="PIN">B1key</field></shadow></value></block></value><statement name="DO0"><block type="variables_set" id="nhw`y2M:q:jwX;J{hE?6"><field name="VAR">显示</field><value name="VALUE"><block type="logic_negate" id="j2zTs$ztvKV!+[h.RQY#"><value name="BOOL"><block type="variables_get" id="KWckR2|{zk{Y,ZmQa?kw"><field name="VAR">显示</field></block></value></block></value></block></statement><next><block type="controls_if" id="dzDm2j;0MHA5+#fD:mXm"><mutation else="1"></mutation><value name="IF0"><block type="variables_get" id="]x|K`fU}Z.a}:76e2u4*"><field name="VAR">显示</field></block></value><statement name="DO0"><block type="display_show_image" id="TS8:}[Xe^TK2rl;i[4Yf"><value name="data"><shadow type="pins_builtinimg" id="p!:N6j||w+],8!kk,XsV"><field name="PIN">onboard_matrix.HEART</field></shadow></value></block></statement><statement name="ELSE"><block type="display_clear" id="69y~?b!C`a8O=iI4-:Z~"></block></statement></block></next></block></statement></block></next></block></xml><config>{}</config><code>aW1wb3J0IG1peGdvX2NlCmZyb20gbWl4Z29fY2UgaW1wb3J0IG9uYm9hcmRfbWF0cml4CgoKX0U2Xzk4X0JFX0U3X0E0X0JBID0gRmFsc2UKd2hpbGUgVHJ1ZToKICAgIGlmIG1peGdvX2NlLkIxa2V5Lndhc19wcmVzc2VkKCk6CiAgICAgICAgX0U2Xzk4X0JFX0U3X0E0X0JBID0gbm90IF9FNl85OF9CRV9FN19BNF9CQQogICAgaWYgX0U2Xzk4X0JFX0U3X0E0X0JBOgogICAgICAgIG9uYm9hcmRfbWF0cml4LnNob3dzKG9uYm9hcmRfbWF0cml4LkhFQVJUKQogICAgZWxzZToKICAgICAgICBvbmJvYXJkX21hdHJpeC5maWxsKDApCiAgICAgICAgb25ib2FyZF9tYXRyaXguc2hvdygpCg==</code>
|
||||
@@ -0,0 +1 @@
|
||||
<xml version="Mixly 2.0 rc4" board="MixGo CE@MixGo CE"><block type="controls_whileUntil" id="D$)o99?rpnZPCQ-fnz|2" x="-1444" y="-789"><field name="MODE">WHILE</field><value name="BOOL"><shadow type="logic_boolean" id="X|JaAP.O{|tNFO-Dh:|I"><field name="BOOL">TRUE</field></shadow></value><statement name="DO"><block type="system_print" id="p=$s*G8X.|wZ`ZDRtZ4A"><value name="VAR"><shadow type="text" id="`xl_t]B4#2BE|I^7su$_"><field name="TEXT">Mixly</field></shadow><block type="sensor_sound" id="NvZ8`pa_j,w+:PHZ,$h*"></block></value><next><block type="controls_delay_new" id="1]lv|e](:8F[W6q`iO;N"><field name="Time">s</field><value name="DELAY_TIME"><shadow type="math_number" id="2d:f^RIxDjB--Hj;HjP["><field name="NUM">0.01</field></shadow></value></block></next></block></statement></block></xml><config>{}</config><code>aW1wb3J0IG1hY2hpbmUKZnJvbSBtaXhnb19jZSBpbXBvcnQgb25ib2FyZF9zb3VuZAppbXBvcnQgdGltZQoKCndoaWxlIFRydWU6CiAgICBwcmludChvbmJvYXJkX3NvdW5kLnJlYWQoKSkKICAgIHRpbWUuc2xlZXAoMC4wMSkK</code>
|
||||
@@ -0,0 +1 @@
|
||||
<xml version="Mixly 2.0 rc4" board="MixGo CE@MixGo CE"><block type="controls_whileUntil" id="m4mWs7b4Ly#r^?!I],_9" x="-1457" y="-799"><field name="MODE">WHILE</field><value name="BOOL"><shadow type="logic_boolean" id="Qzj3XS}BbFW-AfyI76`Q"><field name="BOOL">TRUE</field></shadow></value><statement name="DO"><block type="system_print" id="KtO0?JHKf^Le:5i-d?cq"><value name="VAR"><shadow type="text" id="ml@2iDy9zEzeNqc3b08)"><field name="TEXT">Mixly</field></shadow><block type="sensor_sound" id="!wxpd9uie)g8(fHd++L:"></block></value><next><block type="controls_forEach" id="TM9zCQ3PIpt{G~5=TH{`"><value name="LIST"><shadow type="list_many_input" id="4_yCFX)C#_NA|B14F4^y"><field name="CONTENT">0,1,2,3</field></shadow><block type="controls_range" id="[nk`S$.Q-96gUJw3U]3Q"><value name="FROM"><shadow type="math_number" id="Gi8RZMuIOv-v:UIQgkGf"><field name="NUM">0</field></shadow></value><value name="TO"><shadow type="math_number" id="?^~+,2?.m00$=t5vAze:"><field name="NUM">5</field></shadow><block type="text_to_number" id="}z(l$^7u{Fr6AP;e`c4P"><field name="TOWHAT">int</field><value name="VAR"><shadow type="variables_get" id="-UjZ;6Nj,PKYcKNrp,ew"><field name="VAR">x</field></shadow><block type="math_map" id="gY01A[8t6kXZqdl^}zrj"><value name="NUM"><shadow type="math_number" id="FSuOGkb*JYDi9$x`rjE["><field name="NUM">50</field></shadow><block type="sensor_sound" id="t+KO22~P*O{`!(G]8zSn"></block></value><value name="fromLow"><shadow type="math_number" id="F6UoNmz[Ob$j8*z2,MWF"><field name="NUM">0</field></shadow></value><value name="fromHigh"><shadow type="math_number" id="0F}{3O8l-7HB;n9p1#P,"><field name="NUM">30000</field></shadow></value><value name="toLow"><shadow type="math_number" id="3*F?@J;MOzvOzSu7|Llt"><field name="NUM">0</field></shadow></value><value name="toHigh"><shadow type="math_number" id="#=E@cf:88_cXS9jNG=.4"><field name="NUM">7</field></shadow></value></block></value></block></value><value name="STEP"><shadow type="math_number" id="3@p:K}6*[(/V+PH?@Hyf"><field name="NUM">1</field></shadow></value></block></value><value name="VAR"><shadow type="variables_get" id="}Xg#d4).TZHS`(rM!?z_"><field name="VAR">y</field></shadow></value><statement name="DO"><block type="display_bright_point" id="*N8RvMO#89O=.]-6OlWT"><value name="x"><shadow type="pins_exlcdh" id="Q~|qXK$y3VMdm{(PmI$h"><field name="PIN">15</field></shadow></value><value name="y"><shadow type="pins_exlcdv" id="c60:MWBVniHW!G9]ugi]"><field name="PIN">0</field></shadow><block type="math_arithmetic" id="!Q$jmhiU7/(HA,I:F5(a"><field name="OP">MINUS</field><value name="A"><shadow type="math_number" id="5S,e}Fn`^;(W.t7Xk/d)"><field name="NUM">7</field></shadow></value><value name="B"><shadow type="math_number" id="$$SJFjpec)V3-u6-J_!L"><field name="NUM">1</field></shadow><block type="variables_get" id="3uHL_CEpd7mge)|k6a.|"><field name="VAR">y</field></block></value></block></value><value name="STAT"><shadow type="display_onoff" id="O}~ZAh6`?b-d:;1XP-@2"><field name="ONOFF">ON</field></shadow></value></block></statement><next><block type="display_shift" id="GTK(M9h7v-==deE-:`yV"><field name="OP">shift_left</field><value name="val"><shadow type="math_number" id="SN2)KUyFV|yF`0_{/,{X"><field name="NUM">1</field></shadow></value><next><block type="controls_delay_new" id="a@+o_frn#Oh8(W2dcxO|"><field name="Time">s</field><value name="DELAY_TIME"><shadow type="math_number" id="xi*?^yrK21!wSOe|IR]!"><field name="NUM">0.1</field></shadow></value></block></next></block></next></block></next></block></statement></block></xml><config>{}</config><code>aW1wb3J0IG1hY2hpbmUKZnJvbSBtaXhnb19jZSBpbXBvcnQgb25ib2FyZF9zb3VuZApmcm9tIG1peHB5IGltcG9ydCBtYXRoX21hcApmcm9tIG1peGdvX2NlIGltcG9ydCBvbmJvYXJkX21hdHJpeAppbXBvcnQgdGltZQoKCndoaWxlIFRydWU6CiAgICBwcmludChvbmJvYXJkX3NvdW5kLnJlYWQoKSkKICAgIGZvciB5IGluIHJhbmdlKDAsIGludCgobWF0aF9tYXAob25ib2FyZF9zb3VuZC5yZWFkKCksIDAsIDMwMDAwLCAwLCA3KSkpLCAxKToKICAgICAgICBvbmJvYXJkX21hdHJpeC5waXhlbChpbnQoMTUpLCBpbnQoNyAtIHkpLCAxKQogICAgICAgIG9uYm9hcmRfbWF0cml4LnNob3coKQogICAgb25ib2FyZF9tYXRyaXguc2hpZnRfbGVmdCgxKQogICAgdGltZS5zbGVlcCgwLjEpCg==</code>
|
||||
@@ -0,0 +1 @@
|
||||
<xml version="Mixly 2.0 rc4" board="MixGo CE@MixGo CE"><block type="controls_whileUntil" id="{OvG=,K=!BD[hho-6{FU" x="-1433" y="-745"><field name="MODE">WHILE</field><value name="BOOL"><shadow type="logic_boolean" id="59-EJv;cQ#Gp!W,H],zt"><field name="BOOL">TRUE</field></shadow></value><statement name="DO"><block type="system_print" id="|O^1MC7=T1Q[Zj^jPh}u"><value name="VAR"><shadow type="text" id="GPm^Y7?;#Uh5]h3_{(28"><field name="TEXT">Mixly</field></shadow><block type="sensor_mixgo_light" id="`Fwc3*zx^)bzJfN+ni!["></block></value><next><block type="display_show_image_or_string_delay" id="./doabRqWFZal(-BG{ZX"><field name="center">False</field><value name="data"><shadow type="text" id="?OZt}ExMcukULgnoU-Il"><field name="TEXT">Mixly</field></shadow><block type="number_to_text" id="o~bDYEKQ|r4@N3RKGG.S"><value name="VAR"><shadow type="variables_get" id="N[Bt0z||3-=IC9w$h~E-"><field name="VAR">x</field></shadow><block type="text_to_number" id="3mqoyKz4,|ea2S4G*=E0"><field name="TOWHAT">int</field><value name="VAR"><shadow type="variables_get" id="puMyZFujqdC},71?g_K1"><field name="VAR">x</field></shadow><block type="math_arithmetic" id="[TDq!t@S|S)p!ATdj46:"><field name="OP">ZHENGCHU</field><value name="A"><shadow type="math_number" id="b-3ncq?DHbYgC5bJ3N9a"><field name="NUM">1</field></shadow><block type="sensor_mixgo_light" id="yU*+Q6`+be*vq)m8OTD-"></block></value><value name="B"><shadow type="math_number" id="m*cB}4O2s[js2[xwX[}]"><field name="NUM">10</field></shadow></value></block></value></block></value></block></value><value name="space"><shadow type="math_number" id="^:_-y?dQR(av5m=Me+X_"><field name="NUM">0</field></shadow></value><next><block type="controls_delay_new" id="Sz0ugFdf(GA2(V~$ofp|"><field name="Time">s</field><value name="DELAY_TIME"><shadow type="math_number" id="a7q(?^0zgSeJ^-=SVvND"><field name="NUM">0.1</field></shadow></value></block></next></block></next></block></statement></block></xml><config>{}</config><code>aW1wb3J0IG1hY2hpbmUKaW1wb3J0IG1peGdvX2NlCmZyb20gbWl4Z29fY2UgaW1wb3J0IG9uYm9hcmRfbWF0cml4CmltcG9ydCB0aW1lCgoKd2hpbGUgVHJ1ZToKICAgIHByaW50KG1peGdvX2NlLmdldF9icmlnaHRuZXNzKCkpCiAgICBvbmJvYXJkX21hdHJpeC5zaG93cyhzdHIoaW50KChtaXhnb19jZS5nZXRfYnJpZ2h0bmVzcygpIC8vIDEwKSkpLHNwYWNlID0gMCxjZW50ZXIgPSBGYWxzZSkKICAgIHRpbWUuc2xlZXAoMC4xKQo=</code>
|
||||
File diff suppressed because one or more lines are too long
@@ -0,0 +1 @@
|
||||
<xml version="Mixly 2.0 rc4" board="MixGo CE@MixGo CE"><block type="variables_set" id=".XWhWL@MVzZb7gHD?K5g" x="-1439" y="-816"><field name="VAR">接近距离</field><value name="VALUE"><block type="math_number" id="T/8Hy^]y6.9B52,!20J{"><field name="NUM">0</field></block></value><next><block type="controls_whileUntil" id="7{};9st|I[@F=V07!S85"><field name="MODE">WHILE</field><value name="BOOL"><shadow type="logic_boolean" id="JJ0qsVp)tC-e~Wq9}R^#"><field name="BOOL">TRUE</field></shadow></value><statement name="DO"><block type="variables_set" id="bl?A/fs9c::Sj(AJ/*;2"><field name="VAR">接近距离</field><value name="VALUE"><block type="text_to_number" id="WGrSE-Q5oi[+k;=K7k^*"><field name="TOWHAT">int</field><value name="VAR"><shadow type="variables_get" id="#tjG]iYCCmiwex9{1P$u"><field name="VAR">x</field></shadow><block type="sensor_mixgo_pin_near_double" id="nx^$!V+}[@A,uZ2P$APc"><field name="direction">left</field></block></value></block></value><next><block type="system_print" id="0@MJdOqJ}hXq$]6`0iSs"><value name="VAR"><shadow type="text" id="Fp(j#=T)b)`T8~go`vti"><field name="TEXT">Mixly</field></shadow><block type="variables_get" id="W.{/RjiADHoZIEQGXe#t"><field name="VAR">接近距离</field></block></value><next><block type="display_scroll_string" id="hFfh+mNHo-^;s6=?thQ^"><value name="data"><shadow type="text" id="dsLPP?LD9~ADu$HmR#NL"><field name="TEXT">Mixly</field></shadow><block type="number_to_text" id="FbbOfJnY(-;p(eA_]Bc["><value name="VAR"><shadow type="variables_get" id="Z{D?7w5^~8]!E}-;d2$l"><field name="VAR">x</field></shadow><block type="variables_get" id=";`YG9yhg!pZj_zXPO!W-"><field name="VAR">接近距离</field></block></value></block></value></block></next></block></next></block></statement></block></next></block></xml><config>{}</config><code>aW1wb3J0IG1peGdvX2NlCmltcG9ydCBtYWNoaW5lCmZyb20gbWl4Z29fY2UgaW1wb3J0IG9uYm9hcmRfbWF0cml4CgoKX0U2XzhFX0E1X0U4X0JGXzkxX0U4X0I3XzlEX0U3X0E2X0JCID0gMAp3aGlsZSBUcnVlOgogICAgX0U2XzhFX0E1X0U4X0JGXzkxX0U4X0I3XzlEX0U3X0E2X0JCID0gaW50KG1peGdvX2NlLmluZnJhcmVkX2xlZnQoKSkKICAgIHByaW50KF9FNl84RV9BNV9FOF9CRl85MV9FOF9CN185RF9FN19BNl9CQikKICAgIG9uYm9hcmRfbWF0cml4LnNjcm9sbChzdHIoX0U2XzhFX0E1X0U4X0JGXzkxX0U4X0I3XzlEX0U3X0E2X0JCKSkK</code>
|
||||
@@ -0,0 +1 @@
|
||||
<xml version="Mixly 2.0 rc4" board="MixGo CE@MixGo CE"><block type="variables_set" id="koANq4{SOyvTdSA|@cw@" x="-1439" y="-831"><field name="VAR">接近距离</field><value name="VALUE"><block type="math_number" id="LE=f~tL7uEO]c.OK5Svy"><field name="NUM">0</field></block></value><next><block type="variables_set" id=")wZ,QNP)o+aHELUC`z04"><field name="VAR">是否报警</field><value name="VALUE"><block type="logic_boolean" id=",U9/O*-p($|]!Qu7em@8"><field name="BOOL">FALSE</field></block></value><next><block type="controls_whileUntil" id="FJfw1*I6zf}GL)`[,wKR"><field name="MODE">WHILE</field><value name="BOOL"><shadow type="logic_boolean" id="]E:4#Fi4mRd)$;.W))4B"><field name="BOOL">TRUE</field></shadow></value><statement name="DO"><block type="variables_set" id="t_PD!dxI#Vv*5L1E/5I3"><field name="VAR">接近距离</field><value name="VALUE"><block type="text_to_number" id=":85g_y{JwmkM8{+JPW2x"><field name="TOWHAT">int</field><value name="VAR"><shadow type="variables_get" id="0Wj[lstG?4/~GBg7-8cG"><field name="VAR">x</field></shadow><block type="sensor_mixgo_pin_near_double" id="8/fay}y_D~W5B##jp?f+"><field name="direction">left</field></block></value></block></value><next><block type="system_print" id="99!f$syZIpcgyXKDN`pq"><value name="VAR"><shadow type="text" id="}jC7fo/t]65#q#lkYD1N"><field name="TEXT">Mixly</field></shadow><block type="variables_get" id="ss`YJh)y)Lpsd_M+!z!]"><field name="VAR">接近距离</field></block></value><next><block type="display_show_image_or_string_delay" id="1:RB~rOHF,efX/4HkRKA"><field name="center">False</field><value name="data"><shadow type="text" id="k-CCdoNZLk/wpB^#o45~"><field name="TEXT">Mixly</field></shadow><block type="number_to_text" id="KycP2@*9Tjj8Z+j8`fx-"><value name="VAR"><shadow type="variables_get" id="IM7a?-)0#0@RbX$:hvUh"><field name="VAR">x</field></shadow><block type="math_arithmetic" id="oELJ9s.^cL+:v+E8qd`L"><field name="OP">ZHENGCHU</field><value name="A"><shadow type="math_number" id="dGBvRxa]:{SI^d]YVQlD"><field name="NUM">1</field></shadow><block type="variables_get" id="q^AzQgLX#O;Kwz?}HvDj"><field name="VAR">接近距离</field></block></value><value name="B"><shadow type="math_number" id="RosQvlMHP=wy.|Nhn3}8"><field name="NUM">100</field></shadow></value></block></value></block></value><value name="space"><shadow type="math_number" id="}c8b.0zTx.xjBqjUtc^t"><field name="NUM">0</field></shadow></value><next><block type="variables_set" id="5m)au9T$on5Z,8DZj1O7"><field name="VAR">是否报警</field><value name="VALUE"><block type="logic_compare" id="~[Dh+FFin9Whthu)~S9K"><field name="OP">GT</field><value name="A"><block type="variables_get" id="k$jI;?)wxQ$0ZpD6yyY@"><field name="VAR">接近距离</field></block></value><value name="B"><block type="math_number" id="|M/Q/OsvftfNRDRW!Q9p"><field name="NUM">10000</field></block></value></block></value><next><block type="controls_if" id="{BVUt!I-du3Szwyrd]d."><value name="IF0"><block type="variables_get" id="CmEp5)vo/R$(4Rk$nh*r"><field name="VAR">是否报警</field></block></value><statement name="DO0"><block type="esp32_onboard_music_play_list" id=",;Y[4JRQ0S1g;wB*SjlR"><value name="LIST"><shadow type="pins_playlist" id="~vxW`].b4,vt6*/uuaW$"><field name="PIN">onboard_music.DADADADUM</field></shadow></value></block></statement></block></next></block></next></block></next></block></next></block></statement></block></next></block></next></block></xml><config>{}</config><code>aW1wb3J0IG1peGdvX2NlCmltcG9ydCBtYWNoaW5lCmZyb20gbWl4Z29fY2UgaW1wb3J0IG9uYm9hcmRfbWF0cml4CmZyb20gbWl4Z29fY2UgaW1wb3J0IG9uYm9hcmRfbXVzaWMKCgpfRTZfOEVfQTVfRThfQkZfOTFfRThfQjdfOURfRTdfQTZfQkIgPSAwCl9FNl85OF9BRl9FNV85MF9BNl9FNl84QV9BNV9FOF9BRF9BNiA9IEZhbHNlCndoaWxlIFRydWU6CiAgICBfRTZfOEVfQTVfRThfQkZfOTFfRThfQjdfOURfRTdfQTZfQkIgPSBpbnQobWl4Z29fY2UuaW5mcmFyZWRfbGVmdCgpKQogICAgcHJpbnQoX0U2XzhFX0E1X0U4X0JGXzkxX0U4X0I3XzlEX0U3X0E2X0JCKQogICAgb25ib2FyZF9tYXRyaXguc2hvd3Moc3RyKChfRTZfOEVfQTVfRThfQkZfOTFfRThfQjdfOURfRTdfQTZfQkIgLy8gMTAwKSksc3BhY2UgPSAwLGNlbnRlciA9IEZhbHNlKQogICAgX0U2Xzk4X0FGX0U1XzkwX0E2X0U2XzhBX0E1X0U4X0FEX0E2ID0gX0U2XzhFX0E1X0U4X0JGXzkxX0U4X0I3XzlEX0U3X0E2X0JCID4gMTAwMDAKICAgIGlmIF9FNl85OF9BRl9FNV85MF9BNl9FNl84QV9BNV9FOF9BRF9BNjoKICAgICAgICBvbmJvYXJkX211c2ljLnBsYXkob25ib2FyZF9tdXNpYy5EQURBREFEVU0pCg==</code>
|
||||
@@ -0,0 +1 @@
|
||||
<xml version="Mixly 2.0 rc4" board="MixGo CE@MixGo CE"><block type="controls_whileUntil" id="L[B_y*aK0D6:Jr~R.YCv" x="-1405" y="-729"><field name="MODE">WHILE</field><value name="BOOL"><shadow type="logic_boolean" id=".}Dx3ZSDm9]U/aPbD`45"><field name="BOOL">TRUE</field></shadow></value><statement name="DO"><block type="system_print" id="WvlJz=ijG0RA85fV)-f5"><value name="VAR"><shadow type="text" id="a.R)@Scc|I|Qa-K4z:{="><field name="TEXT">Mixly</field></shadow><block type="sensor_get_acceleration" id="YcREEcd]Uy;LvhqE[w^S"><field name="key"></field></block></value><next><block type="controls_delay_new" id="q$obMGGbM=$}?}*dq;3u"><field name="Time">s</field><value name="DELAY_TIME"><shadow type="math_number" id="bwjdjAlhbV];Sh.ljbX["><field name="NUM">1</field></shadow></value></block></next></block></statement></block></xml><config>{}</config><code>aW1wb3J0IG1hY2hpbmUKZnJvbSBtaXhnb19jZSBpbXBvcnQgb25ib2FyZF9hY2MKaW1wb3J0IHRpbWUKCgp3aGlsZSBUcnVlOgogICAgcHJpbnQob25ib2FyZF9hY2MuYWNjZWxlcmF0aW9uKCkpCiAgICB0aW1lLnNsZWVwKDEpCg==</code>
|
||||
File diff suppressed because one or more lines are too long
@@ -0,0 +1 @@
|
||||
<xml version="Mixly 2.0 rc4" board="MixGo CE@MixGo CE"><block type="controls_whileUntil" id="u|KHl[d(q_#Ijd3Cg8;P" x="-1632" y="-819"><field name="MODE">WHILE</field><value name="BOOL"><shadow type="logic_boolean" id="2WXq!ly3}9^2Y||)Tpm5"><field name="BOOL">TRUE</field></shadow></value><statement name="DO"><block type="controls_if" id="X?6ZM~ht)?3H=?cW),|."><mutation elseif="3" else="1"></mutation><value name="IF0"><block type="sensor_mixgoce_pin_pressed" id=".vC4Jod7B~=iD37lBgPd"><value name="button"><shadow type="number2" id="aLbL*IEti5x*oy*jR}./"><field name="op">0</field></shadow></value></block></value><statement name="DO0"><block type="display_show_image" id="T$/GP:2}_wB!|8Gv4wzO"><value name="data"><shadow type="pins_builtinimg" id="KO$z_2;v~S?|:E@_T:,8"><field name="PIN">onboard_matrix.HEART</field></shadow></value></block></statement><value name="IF1"><block type="sensor_mixgoce_pin_pressed" id="7r.Qob(r(D$`d6,UU1J0"><value name="button"><shadow type="number2" id="Z@Bw5yjrUie=2hMh/=AF"><field name="op">1</field></shadow></value></block></value><statement name="DO1"><block type="display_show_image" id="=R.:kO(a4WOnHD!.,W$w"><value name="data"><shadow type="pins_builtinimg" id="}2AM@e6e-U*Dch/]:R2j"><field name="PIN">onboard_matrix.SMILE</field></shadow></value></block></statement><value name="IF2"><block type="sensor_mixgoce_pin_pressed" id="h54c`^|L?DHj~^EVJ`JO"><value name="button"><shadow type="number2" id="B`*#3Y(5MX9yL$]{vnRX"><field name="op">2</field></shadow></value></block></value><statement name="DO2"><block type="display_show_image" id="7G5$gT;c8|[(gT3~zZ39"><value name="data"><shadow type="pins_builtinimg" id="YJPAXJa3^to,b)V~#oH:"><field name="PIN">onboard_matrix.HAPPY</field></shadow></value></block></statement><value name="IF3"><block type="sensor_mixgoce_pin_pressed" id="27z-6E5{{4hPLsz}V-|)"><value name="button"><shadow type="number2" id="rIh1+K(i~?}~M/?|aDj/"><field name="op">3</field></shadow></value></block></value><statement name="DO3"><block type="display_show_image" id="E+#EfPn_7w9~RS1Qgpne"><value name="data"><shadow type="pins_builtinimg" id="B{M7lnh5O:(j!a28^!ao"><field name="PIN">onboard_matrix.FABULOUS</field></shadow></value></block></statement><statement name="ELSE"><block type="display_show_image" id="_de+vOM}=(q!P],$o3x!"><value name="data"><shadow type="pins_builtinimg" id="wcr.O}v[]_WH=V14BcVT"><field name="PIN">onboard_matrix.SAD</field></shadow></value></block></statement></block></statement></block></xml><config>{}</config><code>aW1wb3J0IG1peGdvX2NlCmZyb20gbWl4Z29fY2UgaW1wb3J0IG9uYm9hcmRfbWF0cml4CgoKd2hpbGUgVHJ1ZToKICAgIGlmIG1peGdvX2NlLnRvdWNoZWQoMCk6CiAgICAgICAgb25ib2FyZF9tYXRyaXguc2hvd3Mob25ib2FyZF9tYXRyaXguSEVBUlQpCiAgICBlbGlmIG1peGdvX2NlLnRvdWNoZWQoMSk6CiAgICAgICAgb25ib2FyZF9tYXRyaXguc2hvd3Mob25ib2FyZF9tYXRyaXguU01JTEUpCiAgICBlbGlmIG1peGdvX2NlLnRvdWNoZWQoMik6CiAgICAgICAgb25ib2FyZF9tYXRyaXguc2hvd3Mob25ib2FyZF9tYXRyaXguSEFQUFkpCiAgICBlbGlmIG1peGdvX2NlLnRvdWNoZWQoMyk6CiAgICAgICAgb25ib2FyZF9tYXRyaXguc2hvd3Mob25ib2FyZF9tYXRyaXguRkFCVUxPVVMpCiAgICBlbHNlOgogICAgICAgIG9uYm9hcmRfbWF0cml4LnNob3dzKG9uYm9hcmRfbWF0cml4LlNBRCkK</code>
|
||||
@@ -0,0 +1 @@
|
||||
<xml version="Mixly 2.0 rc4" board="MixGo CE@MixGo CE"><block type="controls_whileUntil" id="u|KHl[d(q_#Ijd3Cg8;P" x="-1817" y="-846"><field name="MODE">WHILE</field><value name="BOOL"><shadow type="logic_boolean" id="2WXq!ly3}9^2Y||)Tpm5"><field name="BOOL">TRUE</field></shadow></value><statement name="DO"><block type="actuator_onboard_neopixel_rgb_all" id="LV9cJ#f$tZus2ZCT.7Le"><value name="RVALUE"><shadow type="math_number" id="]l-Yu{#cj1-T+DA2cgU["><field name="NUM">0</field></shadow></value><value name="GVALUE"><shadow type="math_number" id="4|I.$kHzBLndhPU=B{t,"><field name="NUM">0</field></shadow></value><value name="BVALUE"><shadow type="math_number" id="atbhrW!*Fp0unUc*{sWb"><field name="NUM">0</field></shadow></value><next><block type="controls_forEach" id="?Xo^/$*=uM97*f]FySae"><value name="LIST"><shadow type="list_many_input" id=")y!HhI5@yX7vO@d}IDpi"><field name="CONTENT">0,1,2,3</field></shadow><block type="controls_range" id="spw~dp7bVW*+~Ayp3+qv"><value name="FROM"><shadow type="math_number" id="7:)*vN2#]JvdXX5Ot(+$"><field name="NUM">0</field></shadow></value><value name="TO"><shadow type="math_number" id="R5*G#c}vKC)jAQgjRXqa"><field name="NUM">4</field></shadow></value><value name="STEP"><shadow type="math_number" id="Jg?j{l@pdp|ct~K0TYA6"><field name="NUM">1</field></shadow></value></block></value><value name="VAR"><shadow type="variables_get" id="Z/m75Hl{(rdmfzPo8bJ]"><field name="VAR">i</field></shadow></value><statement name="DO"><block type="controls_if" id="6^]oVEJ,o`a2CvVdm01q"><value name="IF0"><block type="sensor_mixgoce_pin_pressed" id=".vC4Jod7B~=iD37lBgPd"><value name="button"><shadow type="number2" id="aLbL*IEti5x*oy*jR}./"><field name="op">0</field></shadow><block type="variables_get" id="cTd,tt6,|*H1reS)1z:F"><field name="VAR">i</field></block></value></block></value><statement name="DO0"><block type="actuator_onboard_neopixel_rgb" id="wezk/|Ru@H;,~Xr5A#z7"><value name="_LED_"><shadow type="math_number" id="kNb#6KjiZQ7r81S]ll9p"><field name="NUM">0</field></shadow><block type="variables_get" id="]9#N$fMgj!9-rFw7ff[4"><field name="VAR">i</field></block></value><value name="RVALUE"><shadow type="math_number" id="+F+HkQt4(H^y[A.DF._X"><field name="NUM">0</field></shadow></value><value name="GVALUE"><shadow type="math_number" id="WG{c}r0BRQWhQn$2Y)Cv"><field name="NUM">0</field></shadow></value><value name="BVALUE"><shadow type="math_number" id="o[yV*cE(F4q/*BuE|TwZ"><field name="NUM">20</field></shadow></value></block></statement></block></statement><next><block type="actuator_onboard_neopixel_write" id=",9_:RaP]so6-j+!TSxLv"></block></next></block></next></block></statement></block></xml><config>{}</config><code>ZnJvbSBtaXhnb19jZSBpbXBvcnQgb25ib2FyZF9yZ2IKaW1wb3J0IG1peGdvX2NlCgoKd2hpbGUgVHJ1ZToKICAgIG9uYm9hcmRfcmdiLmZpbGwoKDAsIDAsIDApKQogICAgZm9yIGkgaW4gcmFuZ2UoMCwgNCwgMSk6CiAgICAgICAgaWYgbWl4Z29fY2UudG91Y2hlZChpKToKICAgICAgICAgICAgb25ib2FyZF9yZ2JbaV0gPSAoMCwgMCwgMjApCiAgICBvbmJvYXJkX3JnYi53cml0ZSgpCg==</code>
|
||||
File diff suppressed because one or more lines are too long
@@ -0,0 +1 @@
|
||||
<xml version="Mixly 2.0 rc4" board="MixGo CE@MixGo CE"><block type="display_bright_point" id=";ZzLjmX}EpFS)q333x~X" x="-675" y="-358"><value name="x"><shadow type="pins_exlcdh" id="Yc.,*dvEk$|9/:1@5Usn"><field name="PIN">7</field></shadow></value><value name="y"><shadow type="pins_exlcdv" id="Ei5JQeUs73+a;VP;oXj1"><field name="PIN">4</field></shadow></value><value name="STAT"><shadow type="display_onoff" id="w`$|XmlIlsWg;rf@#/m="><field name="ONOFF">ON</field></shadow></value><next><block type="controls_whileUntil" id="+B`0YU4v^Z^0qp$Ko.-S"><field name="MODE">WHILE</field><value name="BOOL"><shadow type="logic_boolean" id="Rz539FV},LTJ~!D1[nVq"><field name="BOOL">TRUE</field></shadow></value><statement name="DO"><block type="controls_if" id="p{!z?epMlxIE+cw`I*-C"><value name="IF0"><block type="sensor_mixgo_button_was_pressed" id="q45~au;i@NnV-qrgFS!o"><value name="btn"><shadow type="pins_button" id="d`/E~)oZv!d6eU5uR$rk"><field name="PIN">A1key</field></shadow></value></block></value><statement name="DO0"><block type="display_shift" id="X!4RmGX#C3R2b|+;8fdq"><field name="OP">shift_down</field><value name="val"><shadow type="math_number" id="a3sZ=}~D]!=^sSKGU!au"><field name="NUM">1</field></shadow></value></block></statement><next><block type="controls_if" id="Y-eT=ZfsY0R$+yj`=4A["><value name="IF0"><block type="sensor_mixgo_button_was_pressed" id="gw*eap$=)(7H{D}SN(Z^"><value name="btn"><shadow type="pins_button" id="Ev4zk/yx!$D9V4,CK^5Y"><field name="PIN">A2key</field></shadow></value></block></value><statement name="DO0"><block type="display_shift" id="wdWhXbQ7ux{ptDgREFQ;"><field name="OP">shift_left</field><value name="val"><shadow type="math_number" id="lZbvuE[:pTo0v+]^xeeK"><field name="NUM">1</field></shadow></value></block></statement><next><block type="controls_if" id="kZl16sFx*z!7!6=QkHnJ"><value name="IF0"><block type="sensor_mixgo_button_was_pressed" id="1n8t~r{`RZ0UpC/dME6I"><value name="btn"><shadow type="pins_button" id="6O$)*DGx:JR8@VGK2u9+"><field name="PIN">A3key</field></shadow></value></block></value><statement name="DO0"><block type="display_shift" id="JdnYcF.`$=JhZ?=M;g-$"><field name="OP">shift_up</field><value name="val"><shadow type="math_number" id="hZDKph~vO9g;.q+,hU|^"><field name="NUM">1</field></shadow></value></block></statement><next><block type="controls_if" id="gdXS^mqnC6-Mu?Z,^q-j"><value name="IF0"><block type="sensor_mixgo_button_was_pressed" id="{AeGRM)-dMBQA~`9L8GL"><value name="btn"><shadow type="pins_button" id="pA@`hqs`*7hU8w4vW(yc"><field name="PIN">A4key</field></shadow></value></block></value><statement name="DO0"><block type="display_shift" id="}(o/09v#Z@Ktc#Q~Us~6"><field name="OP">shift_right</field><value name="val"><shadow type="math_number" id="E}V]4]B[c:1}-R|cU-_-"><field name="NUM">1</field></shadow></value></block></statement></block></next></block></next></block></next></block></statement></block></next></block></xml><config>{}</config><code>ZnJvbSBtaXhnb19jZSBpbXBvcnQgb25ib2FyZF9tYXRyaXgKaW1wb3J0IG1peGdvX2NlCgoKb25ib2FyZF9tYXRyaXgucGl4ZWwoaW50KDcpLCBpbnQoNCksIDEpCm9uYm9hcmRfbWF0cml4LnNob3coKQp3aGlsZSBUcnVlOgogICAgaWYgbWl4Z29fY2UuQTFrZXkud2FzX3ByZXNzZWQoKToKICAgICAgICBvbmJvYXJkX21hdHJpeC5zaGlmdF9kb3duKDEpCiAgICBpZiBtaXhnb19jZS5BMmtleS53YXNfcHJlc3NlZCgpOgogICAgICAgIG9uYm9hcmRfbWF0cml4LnNoaWZ0X2xlZnQoMSkKICAgIGlmIG1peGdvX2NlLkEza2V5Lndhc19wcmVzc2VkKCk6CiAgICAgICAgb25ib2FyZF9tYXRyaXguc2hpZnRfdXAoMSkKICAgIGlmIG1peGdvX2NlLkE0a2V5Lndhc19wcmVzc2VkKCk6CiAgICAgICAgb25ib2FyZF9tYXRyaXguc2hpZnRfcmlnaHQoMSkK</code>
|
||||
@@ -0,0 +1 @@
|
||||
<xml version="Mixly 2.0 rc4" board="MixGo CE@MixGo CE"><block type="onboard_RTC_set_datetime" id="u-3`HB;1!xSg?Sy0a(!B" inline="true" x="-1886" y="-925"><value name="year"><shadow type="math_number" id="oivl74(A,?PJ7Y5lQ^b*"><field name="NUM">2024</field></shadow></value><value name="month"><shadow type="math_number" id="-E@Zu~1noSy7gAxYM2,k"><field name="NUM">4</field></shadow></value><value name="day"><shadow type="math_number" id="h/1cs9Q](itOX;.[|H9#"><field name="NUM">2</field></shadow></value><value name="hour"><shadow type="math_number" id="H@F*jcH2k^D3Jb-M#Gi@"><field name="NUM">21</field></shadow></value><value name="minute"><shadow type="math_number" id="wZsU39!AG}JjTRT^OIm-"><field name="NUM">4</field></shadow></value><value name="second"><shadow type="math_number" id="k|2Z61!~!R[isVeR`D_;"><field name="NUM">45</field></shadow></value><next><block type="controls_whileUntil" id="^_fTCn3o[1Jh`V!R:=9M"><field name="MODE">WHILE</field><value name="BOOL"><shadow type="logic_boolean" id="6@xT8i9,MVHYWA~v7#t["><field name="BOOL">TRUE</field></shadow></value><statement name="DO"><block type="system_print" id="`Z88RL/K[GK6)@JmT:nB"><value name="VAR"><shadow type="text" id="8Skaz}F+K+nZ}J`k#@/!"><field name="TEXT">Mixly</field></shadow><block type="onboard_RTC_get_time" id="B?^i@}dg1FO.ZW:{G7]~"></block></value><next><block type="controls_delay_new" id="ijs,n$)6w6XVShNLuRfy"><field name="Time">s</field><value name="DELAY_TIME"><shadow type="math_number" id="O!@/(w;rI;Vq4_9?y#I4"><field name="NUM">1</field></shadow></value></block></next></block></statement></block></next></block></xml><config>{}</config><code>aW1wb3J0IG50cHRpbWUKaW1wb3J0IG1hY2hpbmUKaW1wb3J0IHRpbWUKCgpudHB0aW1lLnNldHRpbWUoKDIwMjQsNCwyLDIxLDA0LDQ1LDAsMCkpCndoaWxlIFRydWU6CiAgICBwcmludCh0aW1lLmxvY2FsdGltZSgpKQogICAgdGltZS5zbGVlcCgxKQo=</code>
|
||||
@@ -0,0 +1 @@
|
||||
<xml version="Mixly 2.0 rc4" board="MixGo CE@MixGo CE"><block type="onboard_RTC_set_datetime" id="3;U~h|uU/6`)G7`FnE#3" inline="true" x="-2187" y="-818"><value name="year"><shadow type="math_number" id=",rgDRjcPJdHU6y/dlOlI"><field name="NUM">2024</field></shadow></value><value name="month"><shadow type="math_number" id="yy`(5OaTkr3DZ[`Ksv(I"><field name="NUM">4</field></shadow></value><value name="day"><shadow type="math_number" id="iA?+f[x@Qi@rVNQE{T+x"><field name="NUM">2</field></shadow></value><value name="hour"><shadow type="math_number" id="-mAs4joL7AHJin1g*,xv"><field name="NUM">21</field></shadow></value><value name="minute"><shadow type="math_number" id="nq^!{r+_X.k69$}!DHAk"><field name="NUM">4</field></shadow></value><value name="second"><shadow type="math_number" id="44z_2YQwresR3VG=2Rp8"><field name="NUM">45</field></shadow></value><next><block type="controls_whileUntil" id="7F(@SqnhAg=2]15OR2tK"><field name="MODE">WHILE</field><value name="BOOL"><shadow type="logic_boolean" id="F=d|(~9+;4ms~t$$.w{i"><field name="BOOL">TRUE</field></shadow></value><statement name="DO"><block type="variables_set" id="w?o{2k)#JSV;aJ#kHw_l"><field name="VAR">mytup</field><value name="VALUE"><block type="onboard_RTC_get_time" id="U6/ek(l3B1#=W]/{i=ZO"></block></value><next><block type="display_scroll_string" id="]=~D+k/F8:r8TH=L-=Vf"><value name="data"><shadow type="text" id="j}O!DPK^SO|kNY~SC_ft"><field name="TEXT">Mixly</field></shadow><block type="text_format_noreturn" id="X@uk5{;M8bvj1Wu9/.{p" inline="false"><mutation items="3"></mutation><value name="VAR"><shadow type="text" id="fW{6/p2Y3B5n]Mdg2`i7"><field name="TEXT">{}:{}:{}</field></shadow></value><value name="ADD0"><block type="number_to_text" id="wfKSga!ijHE?r0{N`N3I"><value name="VAR"><shadow type="variables_get" id="6QBKI^1K}Hl9iYtRGN+H"><field name="VAR">x</field></shadow><block type="tuple_getIndex" id="lY[-yYiw8,sO1L*w;@[x"><value name="TUP"><shadow type="variables_get" id="3H7]AC,qk}8oA9#T2Mc6"><field name="VAR">mytup</field></shadow></value><value name="AT"><shadow type="math_number" id="*Kn!Nf7lMjKo1@(,^:sr"><field name="NUM">3</field></shadow></value></block></value></block></value><value name="ADD1"><block type="number_to_text" id="+X*Yx~bzz^.[)7k@un/s"><value name="VAR"><shadow type="variables_get" id="I6D+.#mtV|Lje56g2CO-"><field name="VAR">x</field></shadow><block type="tuple_getIndex" id="@R_Y-9)x6hfqKX]q_^J`"><value name="TUP"><shadow type="variables_get" id="m1t[fMP^SQ5nhOXkF;UV"><field name="VAR">mytup</field></shadow></value><value name="AT"><shadow type="math_number" id="$4pB/E8|rl9]e3l?U.TJ"><field name="NUM">4</field></shadow></value></block></value></block></value><value name="ADD2"><block type="number_to_text" id="$m8{Z]{Se3!6Y|z9ll.V"><value name="VAR"><shadow type="variables_get" id="^LP-gn[6D!Cg21a+0r,j"><field name="VAR">x</field></shadow><block type="tuple_getIndex" id="`0su`e7a8OQ!{XogAK^;"><value name="TUP"><shadow type="variables_get" id="(D|_Pla}qP(?jo[GIAbW"><field name="VAR">mytup</field></shadow></value><value name="AT"><shadow type="math_number" id="ZyoBhbKF1@kzLwcpCSjP"><field name="NUM">5</field></shadow></value></block></value></block></value></block></value><next><block type="controls_delay_new" id="qN*;Y6se^c=*-|yw{h,p"><field name="Time">s</field><value name="DELAY_TIME"><shadow type="math_number" id="#}L{{OTC3J]pPIxn4XO`"><field name="NUM">0.5</field></shadow></value></block></next></block></next></block></statement></block></next></block></xml><config>{}</config><code>aW1wb3J0IG50cHRpbWUKaW1wb3J0IHRpbWUKZnJvbSBtaXhnb19jZSBpbXBvcnQgb25ib2FyZF9tYXRyaXgKCgpudHB0aW1lLnNldHRpbWUoKDIwMjQsNCwyLDIxLDA0LDQ1LDAsMCkpCndoaWxlIFRydWU6CiAgICBteXR1cCA9IHRpbWUubG9jYWx0aW1lKCkKICAgIG9uYm9hcmRfbWF0cml4LnNjcm9sbCgne306e306e30nLmZvcm1hdChzdHIobXl0dXBbM10pLCBzdHIobXl0dXBbNF0pLCBzdHIobXl0dXBbNV0pKSkKICAgIHRpbWUuc2xlZXAoMC41KQo=</code>
|
||||
@@ -0,0 +1 @@
|
||||
<xml version="Mixly 2.0 rc4" board="MixGo CE@MixGo CE"><block type="variables_set" id="@W$2YjhD2m(O]n+B+WJm" x="-2099" y="-915"><field name="VAR">按下时刻</field><value name="VALUE"><block type="math_number" id="i8^S-uv[HIXjQQwI+imQ"><field name="NUM">0</field></block></value><next><block type="variables_set" id="8Zi$|]aS#-w{P/e-hoa1"><field name="VAR">抬起时刻</field><value name="VALUE"><block type="math_number" id="D!yYZc;$SG;4fWH$s?b]"><field name="NUM">0</field></block></value><next><block type="controls_whileUntil" id="v{r,$l=WAw:4m!?yS=3{"><field name="MODE">WHILE</field><value name="BOOL"><shadow type="logic_boolean" id="PHowjR5!swVes.G-H33$"><field name="BOOL">TRUE</field></shadow></value><statement name="DO"><block type="controls_if" id="D/X!TB#E/ylY@NdO*-JZ"><value name="IF0"><block type="sensor_mixgo_button_is_pressed" id="mvi{tuKy}VkK$+(9p]#P"><value name="btn"><shadow type="pins_button" id="n~Lkh~0J9v9@a[2~_ZQV"><field name="PIN">B1key</field></shadow></value></block></value><statement name="DO0"><block type="variables_set" id="Ge5dYC0/TOOhfR($wDv6"><field name="VAR">按下时刻</field><value name="VALUE"><block type="controls_millis" id="N?//3n5Bqbmo4=jNpmk}"><field name="Time">ms</field></block></value><next><block type="do_while" id="COba|+4|W|w?d?nUd][P"><field name="type">true</field><value name="select_data"><block type="logic_negate" id="zT,?#J8UQPu?B=X6C8QQ"><value name="BOOL"><block type="sensor_mixgo_button_is_pressed" id="z3t]-1}-4|b[|:.Idny{"><value name="btn"><shadow type="pins_button" id="1Q/oKyWYE)@B0wYDdXA;"><field name="PIN">B1key</field></shadow></value></block></value></block></value><next><block type="variables_set" id="fzpPV/;6)0sX7I2N6jt8"><field name="VAR">抬起时刻</field><value name="VALUE"><block type="controls_millis" id="kG,m8C.V6B}H+orbNW0y"><field name="Time">ms</field></block></value><next><block type="system_print" id="X{$9i)ZCpiKLj;2kGuua"><value name="VAR"><shadow type="text" id="UpJmwzgImSrE)6i-[B3*"><field name="TEXT">Mixly</field></shadow><block type="math_arithmetic" id="EQNk_(|qtvgdkk!jV0JQ"><field name="OP">MINUS</field><value name="A"><shadow type="math_number" id="XH#:PGMTjP|[t#^7eEe="><field name="NUM">1</field></shadow><block type="variables_get" id=";5t}c01;NC`BT]1^O_;L"><field name="VAR">抬起时刻</field></block></value><value name="B"><shadow type="math_number" id="5E:I/tO7j$NBhebPUSOU"><field name="NUM">1</field></shadow><block type="variables_get" id="^r0cl=1CM#eef#w5X!ht"><field name="VAR">按下时刻</field></block></value></block></value><next><block type="display_show_image_or_string_delay" id="dUeKz;9J(;dl2DF0+L?p"><field name="center">True</field><value name="data"><shadow type="text" id="(1[o.W[gUn/sMD$qw2vZ"><field name="TEXT">Mixly</field></shadow><block type="number_to_text" id="k(;HHPMGsin5OB!`E@*j"><value name="VAR"><shadow type="variables_get" id="1(j^d3KPw_fAFF]Ng*{J"><field name="VAR">x</field></shadow><block type="math_arithmetic" id="8PbJT]^d[d9p:7Y})9G#"><field name="OP">MINUS</field><value name="A"><shadow type="math_number" id="DTmuUw([Q?9rSBs!mBJt"><field name="NUM">1</field></shadow><block type="variables_get" id="7xoO@-8D/ecJqczdnzEr"><field name="VAR">抬起时刻</field></block></value><value name="B"><shadow type="math_number" id="yk6RREMc,AWWWSE4F6r#"><field name="NUM">1</field></shadow><block type="variables_get" id="{f1v8*P(j{@8{k$)a3LQ"><field name="VAR">按下时刻</field></block></value></block></value></block></value><value name="space"><shadow type="math_number" id="S7q*Rg92pAH8yR2zPS]G"><field name="NUM">0</field></shadow></value></block></next></block></next></block></next></block></next></block></statement></block></statement></block></next></block></next></block></xml><config>{}</config><code>aW1wb3J0IG1peGdvX2NlCmltcG9ydCB0aW1lCmltcG9ydCBtYWNoaW5lCmZyb20gbWl4Z29fY2UgaW1wb3J0IG9uYm9hcmRfbWF0cml4CgoKX0U2XzhDXzg5X0U0X0I4XzhCX0U2Xzk3X0I2X0U1Xzg4X0JCID0gMApfRTZfOEFfQUNfRThfQjVfQjdfRTZfOTdfQjZfRTVfODhfQkIgPSAwCndoaWxlIFRydWU6CiAgICBpZiBtaXhnb19jZS5CMWtleS5pc19wcmVzc2VkKCk6CiAgICAgICAgX0U2XzhDXzg5X0U0X0I4XzhCX0U2Xzk3X0I2X0U1Xzg4X0JCID0gdGltZS50aWNrc19tcygpCiAgICAgICAgd2hpbGUgVHJ1ZToKICAgICAgICAgICAgaWYgKG5vdCBtaXhnb19jZS5CMWtleS5pc19wcmVzc2VkKCkpOgogICAgICAgICAgICAgICAgYnJlYWsKICAgICAgICBfRTZfOEFfQUNfRThfQjVfQjdfRTZfOTdfQjZfRTVfODhfQkIgPSB0aW1lLnRpY2tzX21zKCkKICAgICAgICBwcmludCgoX0U2XzhBX0FDX0U4X0I1X0I3X0U2Xzk3X0I2X0U1Xzg4X0JCIC0gX0U2XzhDXzg5X0U0X0I4XzhCX0U2Xzk3X0I2X0U1Xzg4X0JCKSkKICAgICAgICBvbmJvYXJkX21hdHJpeC5zaG93cyhzdHIoKF9FNl84QV9BQ19FOF9CNV9CN19FNl85N19CNl9FNV84OF9CQiAtIF9FNl84Q184OV9FNF9COF84Ql9FNl85N19CNl9FNV84OF9CQikpLHNwYWNlID0gMCxjZW50ZXIgPSBUcnVlKQo=</code>
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -0,0 +1 @@
|
||||
<xml version="Mixly 2.0 rc4" board="MixGo CE@MixGo CE"><block type="controls_whileUntil" id="|O7+PiK/1:9](:~sF{n!" x="-2754" y="-915"><field name="MODE">WHILE</field><value name="BOOL"><shadow type="logic_boolean" id="OV27?57)BdoDd|4?@zRr"><field name="BOOL">TRUE</field></shadow></value><statement name="DO"><block type="display_show_image" id="],XbYZN$4ODTR5y9|-_A"><value name="data"><shadow type="pins_builtinimg" id="k?d4*#Rb1LV+KW(nKKnP"><field name="PIN">onboard_matrix.HEART</field></shadow></value><next><block type="controls_delay_new" id="ci9|;vi+|aMn73}509G2"><field name="Time">s</field><value name="DELAY_TIME"><shadow type="math_number" id="Vfz?w;A`y19QFL|N|P#c"><field name="NUM">0.5</field></shadow></value><next><block type="display_show_image" id="3:bG*hr.Q*F8d}lY-zUj"><value name="data"><shadow type="pins_builtinimg" id="KN-SOU|D[!jm4q`L}_Xc"><field name="PIN">onboard_matrix.HEART_SMALL</field></shadow></value><next><block type="controls_delay_new" id="UUHW-:t:qAw9{y/iA!qz"><field name="Time">s</field><value name="DELAY_TIME"><shadow type="math_number" id="bW*NP@D-mJ1ul^UtV2h)"><field name="NUM">0.5</field></shadow></value><next><block type="controls_if" id="tL=qd.5bs*456J15X1YX"><value name="IF0"><block type="sensor_mixgo_button_was_pressed" id="FRMNUp@Gl[r*:vU#d5fb"><value name="btn"><shadow type="pins_button" id="S/7pAaI4.Z+R-HHOIHt!"><field name="PIN">B1key</field></shadow></value></block></value><statement name="DO0"><block type="actuator_onboard_neopixel_rgb_all" id="qp*p3VG.v1@e}|h{.(Hr"><value name="RVALUE"><shadow type="math_number" id="cbmleV2==6cfBen]XUC^"><field name="NUM">10</field></shadow></value><value name="GVALUE"><shadow type="math_number" id="c^Fvl`t3Rbc{Ic@Aym;)"><field name="NUM">10</field></shadow></value><value name="BVALUE"><shadow type="math_number" id=":D[Zl@bF0Qtp:zp2-Q_{"><field name="NUM">10</field></shadow></value><next><block type="actuator_onboard_neopixel_write" id="3$XQoo[0i[q]EZ:lcHCY"></block></next></block></statement><next><block type="controls_if" id="K[OW~(U#FxU0Nei2G]wq"><value name="IF0"><block type="sensor_mixgo_button_was_pressed" id="uxIo9zg2F[IPe9yKEGLN"><value name="btn"><shadow type="pins_button" id="*!+7bF3/(]MElQel4UHP"><field name="PIN">B2key</field></shadow></value></block></value><statement name="DO0"><block type="actuator_onboard_neopixel_rgb_all" id="+JS{jQWd/oeCei/fb[d6"><value name="RVALUE"><shadow type="math_number" id="#2}q!QxE+IxV7kbO`-P1"><field name="NUM">0</field></shadow></value><value name="GVALUE"><shadow type="math_number" id="IK5QhXVfc}6LlWql}1#E"><field name="NUM">0</field></shadow></value><value name="BVALUE"><shadow type="math_number" id="xZUci,r=)5-Rs2nNBlxW"><field name="NUM">0</field></shadow></value><next><block type="actuator_onboard_neopixel_write" id="UivRPcHh#~@7bUY7-UlI"></block></next></block></statement></block></next></block></next></block></next></block></next></block></next></block></statement></block></xml><config>{}</config><code>ZnJvbSBtaXhnb19jZSBpbXBvcnQgb25ib2FyZF9tYXRyaXgKaW1wb3J0IHRpbWUKaW1wb3J0IG1peGdvX2NlCmZyb20gbWl4Z29fY2UgaW1wb3J0IG9uYm9hcmRfcmdiCgoKd2hpbGUgVHJ1ZToKICAgIG9uYm9hcmRfbWF0cml4LnNob3dzKG9uYm9hcmRfbWF0cml4LkhFQVJUKQogICAgdGltZS5zbGVlcCgwLjUpCiAgICBvbmJvYXJkX21hdHJpeC5zaG93cyhvbmJvYXJkX21hdHJpeC5IRUFSVF9TTUFMTCkKICAgIHRpbWUuc2xlZXAoMC41KQogICAgaWYgbWl4Z29fY2UuQjFrZXkud2FzX3ByZXNzZWQoKToKICAgICAgICBvbmJvYXJkX3JnYi5maWxsKCgxMCwgMTAsIDEwKSkKICAgICAgICBvbmJvYXJkX3JnYi53cml0ZSgpCiAgICBpZiBtaXhnb19jZS5CMmtleS53YXNfcHJlc3NlZCgpOgogICAgICAgIG9uYm9hcmRfcmdiLmZpbGwoKDAsIDAsIDApKQogICAgICAgIG9uYm9hcmRfcmdiLndyaXRlKCkK</code>
|
||||
@@ -0,0 +1 @@
|
||||
<xml version="Mixly 2.0 rc4" board="MixGo CE@MixGo CE"><variables><variable id="kujED6C|3`}2*o!`dvF;">x</variable></variables><block type="sensor_mixgo_button_attachInterrupt" id="G)fSTgDN/5.Wk6`Z)}Av" x="-2776" y="-1011"><field name="mode">machine.Pin.IRQ_RISING</field><value name="btn"><shadow type="pins_button" id="Pl?M}B/r~@Gh-3v!q?j3"><field name="PIN">B1key</field></shadow></value><value name="DO"><shadow type="factory_block_return" id="M}=-T,b6^P2DJp8A=W5J"><field name="VALUE">attachInterrupt_func</field></shadow></value><next><block type="sensor_mixgo_button_attachInterrupt" id="qm=|cWh[({P-GMz0[qPA"><field name="mode">machine.Pin.IRQ_RISING</field><value name="btn"><shadow type="pins_button" id="wTthv1gfRQ,nmcsrniFY"><field name="PIN">B2key</field></shadow></value><value name="DO"><shadow type="factory_block_return" id="pV~Jjb7d?dP.:2XoIa6F"><field name="VALUE">attachInterrupt_func2</field></shadow></value><next><block type="controls_whileUntil" id="*Ol?E|1^51Km/UUh(_[]"><field name="MODE">WHILE</field><value name="BOOL"><shadow type="logic_boolean" id="^L;G4*[-XS2NB#cD-#J!"><field name="BOOL">TRUE</field></shadow></value><statement name="DO"><block type="display_show_image" id=")(o!RM[;814d:sdWy3=U"><value name="data"><shadow type="pins_builtinimg" id="TadkGFT(gS_1TS~~GUe*"><field name="PIN">onboard_matrix.HEART</field></shadow></value><next><block type="controls_delay_new" id="j8JCw:`])`)lF4RRxd|q"><field name="Time">s</field><value name="DELAY_TIME"><shadow type="math_number" id="5fl=3wvG9U+PtLsf9F@y"><field name="NUM">0.5</field></shadow></value><next><block type="display_show_image" id=":+DIU7S+*owULWymqt]="><value name="data"><shadow type="pins_builtinimg" id="~s|U?U`8a:x,*Q;*8KOS"><field name="PIN">onboard_matrix.HEART_SMALL</field></shadow></value><next><block type="controls_delay_new" id="-/[f^!C1X}K|2d.~aK2F"><field name="Time">s</field><value name="DELAY_TIME"><shadow type="math_number" id="ji)@VufU5o+Zk:yHqf]O"><field name="NUM">0.5</field></shadow></value></block></next></block></next></block></next></block></statement></block></next></block></next></block><block type="procedures_defnoreturn" id="]L4=pt1|6XT}I]_@A#fH" x="-2521" y="-705"><mutation><arg name="x" varid="kujED6C|3`}2*o!`dvF;"></arg></mutation><field name="NAME">attachInterrupt_func2</field><statement name="STACK"><block type="actuator_onboard_neopixel_rgb_all" id="l0PLkVp2BnP*J/_GZJ`@"><value name="RVALUE"><shadow type="math_number" id="-Nebd8uY4a@Q2eio5.aK"><field name="NUM">0</field></shadow></value><value name="GVALUE"><shadow type="math_number" id="}nbSCYaWX=`LlT{/tkem"><field name="NUM">0</field></shadow></value><value name="BVALUE"><shadow type="math_number" id="d4o@Nk=fWXbK*kvqb35+"><field name="NUM">0</field></shadow></value><next><block type="actuator_onboard_neopixel_write" id="$3O[!f]8Vwr@M(K!|f|U"></block></next></block></statement></block><block type="procedures_defnoreturn" id="s#PVH8c##`fi|GpS@a!7" x="-2951" y="-653"><mutation><arg name="x" varid="kujED6C|3`}2*o!`dvF;"></arg></mutation><field name="NAME">attachInterrupt_func</field><statement name="STACK"><block type="actuator_onboard_neopixel_rgb_all" id="l0Slk@RAHegK6!5:XA8?"><value name="RVALUE"><shadow type="math_number" id="!;Q$mCF~J[EUd7Mn*ts@"><field name="NUM">10</field></shadow></value><value name="GVALUE"><shadow type="math_number" id="u2*B8,;LqLI0Ls#TB8r4"><field name="NUM">10</field></shadow></value><value name="BVALUE"><shadow type="math_number" id="x(@Mt?p)3kNs}!tyZzb+"><field name="NUM">10</field></shadow></value><next><block type="actuator_onboard_neopixel_write" id="XyRhE@;$xFP4Tj4tkg[i"></block></next></block></statement></block></xml><config>{}</config><code>aW1wb3J0IG1hY2hpbmUKaW1wb3J0IG1peGdvX2NlCmZyb20gbWl4Z29fY2UgaW1wb3J0IG9uYm9hcmRfbWF0cml4CmltcG9ydCB0aW1lCmZyb20gbWl4Z29fY2UgaW1wb3J0IG9uYm9hcmRfcmdiCgpkZWYgYXR0YWNoSW50ZXJydXB0X2Z1bmMyKHgpOgogICAgb25ib2FyZF9yZ2IuZmlsbCgoMCwgMCwgMCkpCiAgICBvbmJvYXJkX3JnYi53cml0ZSgpCgpkZWYgYXR0YWNoSW50ZXJydXB0X2Z1bmMoeCk6CiAgICBvbmJvYXJkX3JnYi5maWxsKCgxMCwgMTAsIDEwKSkKICAgIG9uYm9hcmRfcmdiLndyaXRlKCkKCgoKbWl4Z29fY2UuQjFrZXkuaXJxKGhhbmRsZXIgPSBhdHRhY2hJbnRlcnJ1cHRfZnVuYywgdHJpZ2dlciA9IG1hY2hpbmUuUGluLklSUV9SSVNJTkcpCm1peGdvX2NlLkIya2V5LmlycShoYW5kbGVyID0gYXR0YWNoSW50ZXJydXB0X2Z1bmMyLCB0cmlnZ2VyID0gbWFjaGluZS5QaW4uSVJRX1JJU0lORykKd2hpbGUgVHJ1ZToKICAgIG9uYm9hcmRfbWF0cml4LnNob3dzKG9uYm9hcmRfbWF0cml4LkhFQVJUKQogICAgdGltZS5zbGVlcCgwLjUpCiAgICBvbmJvYXJkX21hdHJpeC5zaG93cyhvbmJvYXJkX21hdHJpeC5IRUFSVF9TTUFMTCkKICAgIHRpbWUuc2xlZXAoMC41KQo=</code>
|
||||
@@ -0,0 +1 @@
|
||||
<xml version="Mixly 2.0 rc4" board="MixGo CE@MixGo CE"><variables><variable id="kujED6C|3`}2*o!`dvF;">x</variable></variables><block type="variables_set" id="P(j6K]5S24IcSGx?[+(j" x="-2776" y="-1041"><field name="VAR">是否亮灯</field><value name="VALUE"><block type="logic_boolean" id="|cd~n5p0S*SO?jgM8N.q"><field name="BOOL">FALSE</field></block></value><next><block type="sensor_mixgo_button_attachInterrupt" id="G!2/0s#[IVuQlHS0C3Ze"><field name="mode">machine.Pin.IRQ_RISING</field><value name="btn"><shadow type="pins_button" id="Vy_09|Zr)j6ocu=-HQDG"><field name="PIN">B1key</field></shadow></value><value name="DO"><shadow type="factory_block_return" id="+^6P75]k3M!^E,HS-o:R"><field name="VALUE">attachInterrupt_func</field></shadow></value><next><block type="controls_whileUntil" id="_vr;nQ-p`kXWX3C}5hIY"><field name="MODE">WHILE</field><value name="BOOL"><shadow type="logic_boolean" id="H-IAL+gxV7VkFOV8ty:K"><field name="BOOL">TRUE</field></shadow></value><statement name="DO"><block type="display_show_image" id="w0AbN+J;K-/PP6[c#ap|"><value name="data"><shadow type="pins_builtinimg" id="@pn|OEhA7aLr/4Sm/{#)"><field name="PIN">onboard_matrix.HEART</field></shadow></value><next><block type="controls_delay_new" id="lcgP?zpL-cwj0AZKFQ6O"><field name="Time">s</field><value name="DELAY_TIME"><shadow type="math_number" id="6F~sg{CyOzI~F$ZT^6rf"><field name="NUM">0.5</field></shadow></value><next><block type="display_show_image" id="C9v]`X:Q-FI+1P~z8!Zt"><value name="data"><shadow type="pins_builtinimg" id="lKet^b/cw_(_XXY(oV3-"><field name="PIN">onboard_matrix.HEART_SMALL</field></shadow></value><next><block type="controls_delay_new" id="?qBWGzCo@PUwq[=bA}H;"><field name="Time">s</field><value name="DELAY_TIME"><shadow type="math_number" id="kpuQVzq:S=RLUz`K}~k0"><field name="NUM">0.5</field></shadow></value></block></next></block></next></block></next></block></statement></block></next></block></next></block><block type="procedures_defnoreturn" id="Dl|=9bHdFG8Q^)RGnYSX" x="-2787" y="-716"><mutation><arg name="x" varid="kujED6C|3`}2*o!`dvF;"></arg></mutation><field name="NAME">attachInterrupt_func</field><statement name="STACK"><block type="variables_global" id="6GT-UgnGY(a4CLI3L[Xr"><value name="VAR"><block type="variables_get" id="ufkzyA4pvRL:4?}k=BQQ"><field name="VAR">是否亮灯</field></block></value><next><block type="variables_set" id="Z-9fEF$1AVrpRRjTvu(~"><field name="VAR">是否亮灯</field><value name="VALUE"><block type="logic_negate" id="pcvC/{4H(Q]}_KHwBxTv"><value name="BOOL"><block type="variables_get" id="9vX^{Lt-?UpuZ:1bv2RP"><field name="VAR">是否亮灯</field></block></value></block></value><next><block type="controls_if" id="l5P@PalTVI2rBye*h5eA"><mutation else="1"></mutation><value name="IF0"><block type="variables_get" id="m`]nbiKbFNo_h|SRM+wW"><field name="VAR">是否亮灯</field></block></value><statement name="DO0"><block type="actuator_onboard_neopixel_rgb_all" id="K{EX?L|hdo)$LQn6UR[D"><value name="RVALUE"><shadow type="math_number" id="):!`jcHrR7V4]n7V5+9p"><field name="NUM">10</field></shadow></value><value name="GVALUE"><shadow type="math_number" id="-yJN/?3Jcj8(=ubZa3AH"><field name="NUM">10</field></shadow></value><value name="BVALUE"><shadow type="math_number" id="NxG-9b:xr^cgYF)HCoKI"><field name="NUM">10</field></shadow></value></block></statement><statement name="ELSE"><block type="actuator_onboard_neopixel_rgb_all" id="2CB)Z|776~;*!{j3^}r#"><value name="RVALUE"><shadow type="math_number" id="K/PqCS^8SGf#WNxQY+$H"><field name="NUM">0</field></shadow></value><value name="GVALUE"><shadow type="math_number" id="|o)FaRfM-}H`}1KRMS1/"><field name="NUM">0</field></shadow></value><value name="BVALUE"><shadow type="math_number" id="^ZZR}xMlLZW2hnnDFe.U"><field name="NUM">0</field></shadow></value></block></statement><next><block type="actuator_onboard_neopixel_write" id="kt5SxUD}$2cOcFE`Kgu/"></block></next></block></next></block></next></block></statement></block></xml><config>{}</config><code>aW1wb3J0IG1hY2hpbmUKaW1wb3J0IG1peGdvX2NlCmZyb20gbWl4Z29fY2UgaW1wb3J0IG9uYm9hcmRfbWF0cml4CmltcG9ydCB0aW1lCmZyb20gbWl4Z29fY2UgaW1wb3J0IG9uYm9hcmRfcmdiCgpkZWYgYXR0YWNoSW50ZXJydXB0X2Z1bmMoeCk6CiAgICBnbG9iYWwgX0U2Xzk4X0FGX0U1XzkwX0E2X0U0X0JBX0FFX0U3XzgxX0FGCiAgICBfRTZfOThfQUZfRTVfOTBfQTZfRTRfQkFfQUVfRTdfODFfQUYgPSBub3QgX0U2Xzk4X0FGX0U1XzkwX0E2X0U0X0JBX0FFX0U3XzgxX0FGCiAgICBpZiBfRTZfOThfQUZfRTVfOTBfQTZfRTRfQkFfQUVfRTdfODFfQUY6CiAgICAgICAgb25ib2FyZF9yZ2IuZmlsbCgoMTAsIDEwLCAxMCkpCiAgICBlbHNlOgogICAgICAgIG9uYm9hcmRfcmdiLmZpbGwoKDAsIDAsIDApKQogICAgb25ib2FyZF9yZ2Iud3JpdGUoKQoKCgpfRTZfOThfQUZfRTVfOTBfQTZfRTRfQkFfQUVfRTdfODFfQUYgPSBGYWxzZQptaXhnb19jZS5CMWtleS5pcnEoaGFuZGxlciA9IGF0dGFjaEludGVycnVwdF9mdW5jLCB0cmlnZ2VyID0gbWFjaGluZS5QaW4uSVJRX1JJU0lORykKd2hpbGUgVHJ1ZToKICAgIG9uYm9hcmRfbWF0cml4LnNob3dzKG9uYm9hcmRfbWF0cml4LkhFQVJUKQogICAgdGltZS5zbGVlcCgwLjUpCiAgICBvbmJvYXJkX21hdHJpeC5zaG93cyhvbmJvYXJkX21hdHJpeC5IRUFSVF9TTUFMTCkKICAgIHRpbWUuc2xlZXAoMC41KQo=</code>
|
||||
@@ -0,0 +1 @@
|
||||
<xml version="Mixly 2.0 rc4" board="MixGo CE@MixGo CE"><variables><variable id="ok:ro0iEW(eJAtg/iAsj">tim</variable></variables><block type="variables_set" id=";F6gej9P{iY/mYE-)Ey2" x="-2908" y="-1031"><field name="VAR">开始</field><value name="VALUE"><block type="logic_boolean" id="veP],r|V+7h)T0O_8DyV"><field name="BOOL">FALSE</field></block></value><next><block type="variables_set" id="qL.vC7o|M7ZzACDl2e3O"><field name="VAR">计时</field><value name="VALUE"><block type="math_number" id="zozW(j.;p:T8^`:6=~If"><field name="NUM">0</field></block></value><next><block type="system_timer_init" id="sD1s.siO1P5o}D-gX@Pk"><value name="SUB"><shadow type="variables_get" id="6Pp})sB~RW}+lOV/vGlx"><field name="VAR">tim</field></shadow></value><next><block type="system_timer" id="?4N7nKZq@BbMw}+S^/Fw"><field name="mode">PERIODIC</field><value name="VAR"><shadow type="variables_get" id="qp[Z+p;LOLv2V0UT=wH;"><field name="VAR">tim</field></shadow></value><value name="period"><shadow type="math_number" id="=;FziM@NI96;jWe;C4mw"><field name="NUM">100</field></shadow></value><value name="callback"><shadow type="factory_block_return" id="eN6IOvK+s},~O[UT`4mh"><field name="VALUE">tim_callback</field></shadow></value><next><block type="controls_whileUntil" id="d0x_[^nHB-d5G+,1X]U`"><field name="MODE">WHILE</field><value name="BOOL"><shadow type="logic_boolean" id="_,pE~*V[`xNNzuK82eN`"><field name="BOOL">TRUE</field></shadow></value><statement name="DO"><block type="controls_if" id="ni^,47o$H=wyt/=sL,9m"><value name="IF0"><block type="sensor_mixgo_button_was_pressed" id="*!qn@gbUr*67PoW($qfa"><value name="btn"><shadow type="pins_button" id="xSZ1V;`0]Sa-{@Jg{QsJ"><field name="PIN">B1key</field></shadow></value></block></value><statement name="DO0"><block type="variables_set" id="@OX(!|t!4Un*cTY9wuXT"><field name="VAR">开始</field><value name="VALUE"><block type="logic_negate" id="k5h1E$.B$]|I1A*32t?*"><value name="BOOL"><block type="variables_get" id="K2`V-e/YH:a=*BKzLaW1"><field name="VAR">开始</field></block></value></block></value></block></statement></block></statement></block></next></block></next></block></next></block></next></block><block type="procedures_defnoreturn" id="tylBX2O(de?_@}~QsDcl" x="-2911" y="-737"><mutation><arg name="tim" varid="ok:ro0iEW(eJAtg/iAsj"></arg></mutation><field name="NAME">tim_callback</field><statement name="STACK"><block type="variables_global" id="b9wDD8UxqI;oA*BYL8K1"><value name="VAR"><block type="variables_get" id="?*2f!?M~`nL=uuD,9Sxf"><field name="VAR">计时</field></block></value><next><block type="variables_global" id="uObWwczeE!|ppwU-$?bm"><value name="VAR"><block type="variables_get" id="+I+GV/d.Kt?^SA=nfVda"><field name="VAR">开始</field></block></value><next><block type="controls_if" id="p)yHXZSC^z=htC[6HdI`"><value name="IF0"><block type="variables_get" id="!1tRpG[2qKfSiY(8,T-."><field name="VAR">开始</field></block></value><statement name="DO0"><block type="math_selfcalcu" id="~-o^ANrJXpAmJ*jL)30Z"><field name="OP">ADD</field><value name="A"><shadow type="variables_get" id="siO4YKjUEcDKZbC98W:c"><field name="VAR">a</field></shadow><block type="variables_get" id="j4C4EI;62U8^+9n]TT=S"><field name="VAR">计时</field></block></value><value name="B"><shadow type="math_number" id="8TwHmd~4n}ns.K52/(@k"><field name="NUM">1</field></shadow></value></block></statement><next><block type="display_show_image_or_string_delay" id="2(?eu^]X0!-Qh0xO#5fa"><field name="center">True</field><value name="data"><shadow type="text" id="@l7pOw@691p`w4p`:c@C"><field name="TEXT">Mixly</field></shadow><block type="number_to_text" id="yF}(iD!lLVoSW:Eg+i9{"><value name="VAR"><shadow type="variables_get" id="-a:nJmv(NFXVGTuZ~8GP"><field name="VAR">x</field></shadow><block type="variables_get" id=".8yc1V4e0F}pr72^2O6a"><field name="VAR">计时</field></block></value></block></value><value name="space"><shadow type="math_number" id="Cj9d+J/NF}x^cn+NyF-e"><field name="NUM">0</field></shadow></value></block></next></block></next></block></next></block></statement></block></xml><config>{}</config><code>aW1wb3J0IG1hY2hpbmUKaW1wb3J0IG1peGdvX2NlCmZyb20gbWl4Z29fY2UgaW1wb3J0IG9uYm9hcmRfbWF0cml4CgpkZWYgdGltX2NhbGxiYWNrKHRpbSk6CiAgICBnbG9iYWwgX0U4X0FFX0ExX0U2Xzk3X0I2CiAgICBnbG9iYWwgX0U1X0JDXzgwX0U1X0E3XzhCCiAgICBpZiBfRTVfQkNfODBfRTVfQTdfOEI6CiAgICAgICAgX0U4X0FFX0ExX0U2Xzk3X0I2ICs9IDEKICAgIG9uYm9hcmRfbWF0cml4LnNob3dzKHN0cihfRThfQUVfQTFfRTZfOTdfQjYpLHNwYWNlID0gMCxjZW50ZXIgPSBUcnVlKQoKCgpfRTVfQkNfODBfRTVfQTdfOEIgPSBGYWxzZQpfRThfQUVfQTFfRTZfOTdfQjYgPSAwCnRpbSA9IG1hY2hpbmUuVGltZXIoMCkKdGltLmluaXQocGVyaW9kID0gMTAwLCBtb2RlID0gbWFjaGluZS5UaW1lci5QRVJJT0RJQywgY2FsbGJhY2sgPSB0aW1fY2FsbGJhY2spCndoaWxlIFRydWU6CiAgICBpZiBtaXhnb19jZS5CMWtleS53YXNfcHJlc3NlZCgpOgogICAgICAgIF9FNV9CQ184MF9FNV9BN184QiA9IG5vdCBfRTVfQkNfODBfRTVfQTdfOEIK</code>
|
||||
File diff suppressed because one or more lines are too long
@@ -0,0 +1 @@
|
||||
<xml version="Mixly 2.0 rc4" board="MixGo CE@MixGo CE"><block type="variables_set" id="J:T{X.qXm;Jiz;3]23Et" x="-3402" y="-1011"><field name="VAR">闪灯</field><value name="VALUE"><block type="logic_boolean" id="*zM*nAJkkO2id:!|lK3V"><field name="BOOL">FALSE</field></block></value><next><block type="controls_thread" id="Umw}g;(9TgU^!npKQGg@"><value name="callback"><shadow type="factory_block_return" id="onIv`Wl3;Sp5;s#U+iiV"><field name="VALUE">testThread</field></shadow></value><value name="VAR"><block type="tuple_create_with_noreturn" id="H#2a*dJX:oy2-N(LII{s" inline="true"><mutation items="0"></mutation></block></value><next><block type="controls_whileUntil" id="mD;8j$@QxvF8lN)4I^*{"><field name="MODE">WHILE</field><value name="BOOL"><shadow type="logic_boolean" id="2pc]j7S]TUv+aZA-uP+3"><field name="BOOL">TRUE</field></shadow></value><statement name="DO"><block type="controls_if" id="*oBamo~RiCfyV|f9I=[d"><value name="IF0"><block type="sensor_mixgo_button_was_pressed" id="-!fiX3zAIf7|oBtPT_bT"><value name="btn"><shadow type="pins_button" id="d+li9I##+;q^-A)$nlD^"><field name="PIN">B1key</field></shadow></value></block></value><statement name="DO0"><block type="variables_set" id="rhY$y3O9HGrr#N[zs~Ab"><field name="VAR">闪灯</field><value name="VALUE"><block type="logic_negate" id="J,2C}g~a:?Pd!xg-rna:"><value name="BOOL"><block type="variables_get" id="7j4?-bQN,pdqavUivO,f"><field name="VAR">闪灯</field></block></value></block></value></block></statement><next><block type="display_show_image" id="sgc~GHyr1r{cfyZ)Pf6_"><value name="data"><shadow type="pins_builtinimg" id="ULLP,]*D=Z47b#!1}dv`"><field name="PIN">onboard_matrix.HEART</field></shadow></value><next><block type="controls_delay_new" id="MZ7B32cbL,H3etvo9]q:"><field name="Time">s</field><value name="DELAY_TIME"><shadow type="math_number" id="L=AtBghH^}HtnV4rk){9"><field name="NUM">0.1</field></shadow></value><next><block type="display_show_image" id="4E;^9T7Ep.1foaWH~-yL"><value name="data"><shadow type="pins_builtinimg" id="zfHZ}8Tz/:(]6#vM3J6S"><field name="PIN">onboard_matrix.HEART_SMALL</field></shadow></value><next><block type="controls_delay_new" id="Es@Pe|2)x.89f,P$jV#}"><field name="Time">s</field><value name="DELAY_TIME"><shadow type="math_number" id="XdGNLIH)kGyZh91U,VX("><field name="NUM">0.1</field></shadow></value></block></next></block></next></block></next></block></next></block></statement></block></next></block></next></block><block type="procedures_defnoreturn" id="-7-H;d!vEn3{;.fL+|m," inline="false" x="-3384" y="-612"><field name="NAME">testThread</field><statement name="STACK"><block type="variables_global" id="5TXsMFayF*T^*j?h?`az"><value name="VAR"><block type="variables_get" id="W5At^1LX*lZyTr6}$wL:"><field name="VAR">闪灯</field></block></value><next><block type="controls_whileUntil" id="XG8^^cl.[{.u/Z/Lb(t["><field name="MODE">WHILE</field><value name="BOOL"><block type="logic_boolean" id="hN*p07dXcO.n`$3,D3=3"><field name="BOOL">TRUE</field></block></value><statement name="DO"><block type="controls_if" id="cC9q0//^pNP|{o#OwCPc"><value name="IF0"><block type="variables_get" id="BH]p_//hv`I-35+C5aOu"><field name="VAR">闪灯</field></block></value><statement name="DO0"><block type="actuator_led_bright" id="6St@~7|dN:cm;tM/ixGn"><value name="led"><shadow type="number" id="PAfxorH7G0{1JZ0AVB~z"><field name="op">2</field></shadow></value><value name="bright"><shadow type="ledswitch" id="m`]cY#!b/d}b/Vo`5CjZ"><field name="flag">-1</field></shadow></value><next><block type="controls_delay_new" id="FO]1mstxmQ?h1o9nv)J["><field name="Time">s</field><value name="DELAY_TIME"><shadow type="math_number" id="`KlLth6q{c+w~XyV9Q~e"><field name="NUM">0.2</field></shadow></value></block></next></block></statement></block></statement></block></next></block></statement></block></xml><config>{}</config><code>aW1wb3J0IF90aHJlYWQKaW1wb3J0IG1peGdvX2NlCmZyb20gbWl4Z29fY2UgaW1wb3J0IG9uYm9hcmRfbWF0cml4CmltcG9ydCB0aW1lCmZyb20gbWl4Z29fY2UgaW1wb3J0IG9uYm9hcmRfbGVkCgpkZWYgdGVzdFRocmVhZCgpOgogICAgZ2xvYmFsIF9FOV85N19BQV9FN184MV9BRgogICAgd2hpbGUgVHJ1ZToKICAgICAgICBpZiBfRTlfOTdfQUFfRTdfODFfQUY6CiAgICAgICAgICAgIG9uYm9hcmRfbGVkLnNldG9ub2ZmKDIsLTEpCiAgICAgICAgICAgIHRpbWUuc2xlZXAoMC4yKQoKCgpfRTlfOTdfQUFfRTdfODFfQUYgPSBGYWxzZQpfdGhyZWFkLnN0YXJ0X25ld190aHJlYWQodGVzdFRocmVhZCwgKCkpCndoaWxlIFRydWU6CiAgICBpZiBtaXhnb19jZS5CMWtleS53YXNfcHJlc3NlZCgpOgogICAgICAgIF9FOV85N19BQV9FN184MV9BRiA9IG5vdCBfRTlfOTdfQUFfRTdfODFfQUYKICAgIG9uYm9hcmRfbWF0cml4LnNob3dzKG9uYm9hcmRfbWF0cml4LkhFQVJUKQogICAgdGltZS5zbGVlcCgwLjEpCiAgICBvbmJvYXJkX21hdHJpeC5zaG93cyhvbmJvYXJkX21hdHJpeC5IRUFSVF9TTUFMTCkKICAgIHRpbWUuc2xlZXAoMC4xKQo=</code>
|
||||
File diff suppressed because one or more lines are too long
@@ -0,0 +1 @@
|
||||
<xml version="Mixly 2.0 rc4" board="MixGo CE@MixGo CE"><block type="controls_whileUntil" id="rnDk9_NO|nD8W3*NqQ`r" x="-3074" y="-1055"><field name="MODE">WHILE</field><value name="BOOL"><shadow type="logic_boolean" id="`IWXau!NMLPRDN]U21!I"><field name="BOOL">TRUE</field></shadow></value><statement name="DO"><block type="display_show_image" id="3._~+y7)O$e}IVsaS-XK"><value name="data"><shadow type="pins_builtinimg" id="s=HjNtj,hs]7`qLJ#n,v"><field name="PIN">onboard_matrix.HEART</field></shadow></value><next><block type="controls_delay_new" id="6E*ruVIV5[l/75n8}hx!"><field name="Time">s</field><value name="DELAY_TIME"><shadow type="math_number" id="_N)G*n?JSo5OEnDy]g*4"><field name="NUM">0.1</field></shadow></value><next><block type="display_show_image" id="k(Ofd(GjqR*YHvQUs-)7"><value name="data"><shadow type="pins_builtinimg" id="sq$c1+-CKC},No~g`=8v"><field name="PIN">onboard_matrix.HEART_SMALL</field></shadow></value><next><block type="controls_delay_new" id="~|0r@{ZITvS?Bm^2Hi75"><field name="Time">s</field><value name="DELAY_TIME"><shadow type="math_number" id="`K}Yr*X5SuznhO,..g0U"><field name="NUM">0.1</field></shadow></value><next><block type="variables_set" id="_9*[Ff_cT+9[7ybP;DyT"><field name="VAR">错误变量</field><value name="VALUE"><block type="logic_negate" id="}E6$[Ryd`VE]q59x!H:h"><value name="BOOL"><block type="variables_get" id="kqZl7^JLj{n~WwcoEv`J"><field name="VAR">错误变量</field></block></value></block></value></block></next></block></next></block></next></block></next></block></statement></block></xml><config>{}</config><code>ZnJvbSBtaXhnb19jZSBpbXBvcnQgb25ib2FyZF9tYXRyaXgKaW1wb3J0IHRpbWUKCgp3aGlsZSBUcnVlOgogICAgb25ib2FyZF9tYXRyaXguc2hvd3Mob25ib2FyZF9tYXRyaXguSEVBUlQpCiAgICB0aW1lLnNsZWVwKDAuMSkKICAgIG9uYm9hcmRfbWF0cml4LnNob3dzKG9uYm9hcmRfbWF0cml4LkhFQVJUX1NNQUxMKQogICAgdGltZS5zbGVlcCgwLjEpCiAgICBfRTlfOTRfOTlfRThfQUZfQUZfRTVfOEZfOThfRTlfODdfOEYgPSBub3QgX0U5Xzk0Xzk5X0U4X0FGX0FGX0U1XzhGXzk4X0U5Xzg3XzhGCg==</code>
|
||||
@@ -0,0 +1 @@
|
||||
<xml version="Mixly 2.0 rc4" board="MixGo CE@MixGo CE"><block type="controls_whileUntil" id="rnDk9_NO|nD8W3*NqQ`r" x="-3074" y="-1055"><field name="MODE">WHILE</field><value name="BOOL"><shadow type="logic_boolean" id="`IWXau!NMLPRDN]U21!I"><field name="BOOL">TRUE</field></shadow></value><statement name="DO"><block type="display_show_image" id="3._~+y7)O$e}IVsaS-XK"><value name="data"><shadow type="pins_builtinimg" id="s=HjNtj,hs]7`qLJ#n,v"><field name="PIN">onboard_matrix.HEART</field></shadow></value><next><block type="controls_delay_new" id="6E*ruVIV5[l/75n8}hx!"><field name="Time">s</field><value name="DELAY_TIME"><shadow type="math_number" id="_N)G*n?JSo5OEnDy]g*4"><field name="NUM">0.1</field></shadow></value><next><block type="display_show_image" id="k(Ofd(GjqR*YHvQUs-)7"><value name="data"><shadow type="pins_builtinimg" id="sq$c1+-CKC},No~g`=8v"><field name="PIN">onboard_matrix.HEART_SMALL</field></shadow></value><next><block type="controls_delay_new" id="~|0r@{ZITvS?Bm^2Hi75"><field name="Time">s</field><value name="DELAY_TIME"><shadow type="math_number" id="`K}Yr*X5SuznhO,..g0U"><field name="NUM">0.1</field></shadow></value><next><block type="controls_try_finally" id="s1YvgXxL1G9Zd$SVTzk|" disabled="true"><mutation elseif="1"></mutation><statement name="try"><block type="variables_set" id="_9*[Ff_cT+9[7ybP;DyT"><field name="VAR">错误变量</field><value name="VALUE"><block type="logic_negate" id="}E6$[Ryd`VE]q59x!H:h"><value name="BOOL"><block type="variables_get" id="kqZl7^JLj{n~WwcoEv`J"><field name="VAR">错误变量</field></block></value></block></value></block></statement><value name="IF1"><shadow type="factory_block_return" id="UW=aT,zCz]u^OWt2a;BE"><field name="VALUE">Exception as e</field></shadow></value><statement name="DO1"><block type="system_print" id="V`5x[ys;_rFWr~8_3W]0"><value name="VAR"><block type="variables_get" id="1vl}*/GSYitJ^}iOX`n1"><field name="VAR">e</field></block></value></block></statement></block></next></block></next></block></next></block></next></block></statement></block></xml><config>{}</config><code>ZnJvbSBtaXhnb19jZSBpbXBvcnQgb25ib2FyZF9tYXRyaXgKaW1wb3J0IHRpbWUKCgp3aGlsZSBUcnVlOgogICAgb25ib2FyZF9tYXRyaXguc2hvd3Mob25ib2FyZF9tYXRyaXguSEVBUlQpCiAgICB0aW1lLnNsZWVwKDAuMSkKICAgIG9uYm9hcmRfbWF0cml4LnNob3dzKG9uYm9hcmRfbWF0cml4LkhFQVJUX1NNQUxMKQogICAgdGltZS5zbGVlcCgwLjEpCg==</code>
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -0,0 +1 @@
|
||||
<xml version="Mixly 2.0 rc4" board="MixGo CE@MixGo CE"><block type="variables_set" id="=a?u8NyIYO8LXXeL*W^k" x="-1138" y="-442"><field name="VAR">入园人数</field><value name="VALUE"><block type="math_number" id="n-7C{oNGmQ57=Y.QKr5y"><field name="NUM">0</field></block></value><next><block type="controls_whileUntil" id=",{}*+s$[;d5kh4h$}=KT"><field name="MODE">WHILE</field><value name="BOOL"><shadow type="logic_boolean" id="29R$QR8Cn,b4O3a)SU6/"><field name="BOOL">TRUE</field></shadow></value><statement name="DO"><block type="controls_if" id="G/rHItW@X7^FGkF`sw9,"><value name="IF0"><block type="logic_compare" id="A[v.XB+[YK}[SBTY2=)W"><field name="OP">GT</field><value name="A"><block type="sensor_mixgo_pin_near_double" id="#8is~-Q#7C!tx`]ZiK8R"><field name="direction">left</field></block></value><value name="B"><block type="math_number" id="@MlEqV@)Lw]@4fCAJI{3"><field name="NUM">20000</field></block></value></block></value><statement name="DO0"><block type="math_selfcalcu" id="lpInl[9oLIs5yf7,g92:"><field name="OP">ADD</field><value name="A"><shadow type="variables_get" id="4c]R2*uVR(;b|7X}-MV;"><field name="VAR">入园人数</field></shadow></value><value name="B"><shadow type="math_number" id="~{OV7z*_fSqj0{4T^L.W"><field name="NUM">1</field></shadow></value><next><block type="do_while" id="c3d|/_)g5^={*h_]NG$u"><field name="type">true</field><value name="select_data"><block type="logic_compare" id="Iw6#yIM@,Q@h1Y9|~@y2"><field name="OP">LT</field><value name="A"><block type="sensor_mixgo_pin_near_double" id="|th[~8iHKinI1iVCu.If"><field name="direction">left</field></block></value><value name="B"><block type="math_number" id="gb]EAGQ5[b`IwiblU}7!"><field name="NUM">10000</field></block></value></block></value></block></next></block></statement><next><block type="controls_if" id="5jAX77Zh}?xfR(TQV#w;"><value name="IF0"><block type="logic_compare" id="id9p$[6!5b!$(]~4)XyY"><field name="OP">GT</field><value name="A"><block type="sensor_mixgo_pin_near_double" id="(-)uxc]J]hIlT^s1-I04"><field name="direction">right</field></block></value><value name="B"><block type="math_number" id=":zH(8ZTQCLj!i~{O;{eo"><field name="NUM">20000</field></block></value></block></value><statement name="DO0"><block type="math_selfcalcu" id="D;v/[7WZvwAK4U:u-a|0"><field name="OP">MINUS</field><value name="A"><shadow type="variables_get" id="hjSlAad4D9p_{8j8]I*b"><field name="VAR">入园人数</field></shadow></value><value name="B"><shadow type="math_number" id="C}YyyMjsF{hr@K^r`M.T"><field name="NUM">1</field></shadow></value><next><block type="do_while" id="l:Pa!SnDaCP3hJk(IJR}"><field name="type">true</field><value name="select_data"><block type="logic_compare" id=".X[g/u.t8TJyvm]0BA:e"><field name="OP">LT</field><value name="A"><block type="sensor_mixgo_pin_near_double" id="?h~YCZ=tzsV5/ZH0Pkx8"><field name="direction">right</field></block></value><value name="B"><block type="math_number" id="-vRiS;Wl7^{.lptmD|Qs"><field name="NUM">10000</field></block></value></block></value></block></next></block></statement><next><block type="display_show_image_or_string_delay" id="S60G@uO:C1=NqsZP4?cz"><field name="center">True</field><value name="data"><shadow type="text" id="-YEM0Ch-{p4D|R.mD~!e"><field name="TEXT">Mixly</field></shadow><block type="number_to_text" id="S9aU}QE5.A+TGgruDapS"><value name="VAR"><shadow type="variables_get" id="pjK=}D=5`tz+6L.Fp5nk"><field name="VAR">x</field></shadow><block type="variables_get" id="=2;(ofM8mpqK/qkqc:s6"><field name="VAR">入园人数</field></block></value></block></value><value name="space"><shadow type="math_number" id="3}2diy#GTgE[y/4P5@Bv"><field name="NUM">0</field></shadow></value></block></next></block></next></block></statement></block></next></block></xml><config>{}</config><code>aW1wb3J0IG1peGdvX2NlCmZyb20gbWl4Z29fY2UgaW1wb3J0IG9uYm9hcmRfbWF0cml4CgoKX0U1Xzg1X0E1X0U1XzlCX0FEX0U0X0JBX0JBX0U2Xzk1X0IwID0gMAp3aGlsZSBUcnVlOgogICAgaWYgbWl4Z29fY2UuaW5mcmFyZWRfbGVmdCgpID4gMjAwMDA6CiAgICAgICAgX0U1Xzg1X0E1X0U1XzlCX0FEX0U0X0JBX0JBX0U2Xzk1X0IwICs9IDEKICAgICAgICB3aGlsZSBUcnVlOgogICAgICAgICAgICBpZiAobWl4Z29fY2UuaW5mcmFyZWRfbGVmdCgpIDwgMTAwMDApOgogICAgICAgICAgICAgICAgYnJlYWsKICAgIGlmIG1peGdvX2NlLmluZnJhcmVkX3JpZ2h0KCkgPiAyMDAwMDoKICAgICAgICBfRTVfODVfQTVfRTVfOUJfQURfRTRfQkFfQkFfRTZfOTVfQjAgLT0gMQogICAgICAgIHdoaWxlIFRydWU6CiAgICAgICAgICAgIGlmIChtaXhnb19jZS5pbmZyYXJlZF9yaWdodCgpIDwgMTAwMDApOgogICAgICAgICAgICAgICAgYnJlYWsKICAgIG9uYm9hcmRfbWF0cml4LnNob3dzKHN0cihfRTVfODVfQTVfRTVfOUJfQURfRTRfQkFfQkFfRTZfOTVfQjApLHNwYWNlID0gMCxjZW50ZXIgPSBUcnVlKQo=</code>
|
||||
File diff suppressed because one or more lines are too long
@@ -0,0 +1 @@
|
||||
<xml version="Mixly 2.0 rc4" board="MixGo CE@MixGo CE"><variables><variable id="F6AZf]?TTBrVz3!HK,|p">cmd</variable><variable id="9evLpxY)q7CIC6uw4yKm">addr</variable><variable id="=T.Z=tj(7{K$1-8-Jmp|">raw</variable><variable id="bY/n=T#mN)b(Cy}6c4qY">pulses</variable></variables><block type="communicate_ir_recv_init" id="=VV32@Q{[||mXpcAHk~E" x="-1198" y="-340"><field name="type">0</field><value name="PIN"><shadow type="pins_digital_pin" id="9,VAXrGl}hEOVt^^zVD@"><field name="PIN">38</field></shadow></value><value name="SUB"><shadow type="factory_block_return" id="9Kyx{sF@O|ac?8vu*-8{"><field name="VALUE">callback</field></shadow></value><next><block type="communicate_ir_send_init" id="0pM{.sYmGDjp]brylKh9"><field name="type">False</field><value name="PIN"><shadow type="pins_digital_pin" id="$RVy/$ziTk?lPrpjE~m/"><field name="PIN">39</field></shadow></value><value name="power"><shadow type="math_number" id="-k@J+hk{NXVaL8O4-si("><field name="NUM">100</field></shadow></value><next><block type="controls_whileUntil" id="mO@n}X0hEB,s@edVXmCy"><field name="MODE">WHILE</field><value name="BOOL"><shadow type="logic_boolean" id="+LQrJ?|R21SI?o,I#6C!"><field name="BOOL">TRUE</field></shadow></value><statement name="DO"><block type="controls_if" id="wh,ZI6,JkP(^5wHOf.K6"><value name="IF0"><block type="sensor_mixgo_button_was_pressed" id="Xjzc~|aYmL0Wt0k3T7fG"><value name="btn"><shadow type="pins_button" id="OWAfz;9ge@f[P/I2caS/"><field name="PIN">B1key</field></shadow></value></block></value><statement name="DO0"><block type="ir_transmit_raw_code" id="ihpija`}P)TNi*gy!0pd"><value name="raw"><shadow type="math_number" id="qRekW^}1[YLkWthl/Vl-"><field name="NUM">0x1234</field></shadow></value></block></statement><next><block type="controls_if" id="oZ7vz@yT!28U1a./[)t="><value name="IF0"><block type="sensor_mixgo_button_was_pressed" id="rQB@s8rQPQiBr|Pz+r{g"><value name="btn"><shadow type="pins_button" id="^(ls^`C{dXc8U-@-f.XP"><field name="PIN">B2key</field></shadow></value></block></value><statement name="DO0"><block type="ir_transmit_raw_code" id="48,Kc$})=7!_7C`Z`~1{"><value name="raw"><shadow type="math_number" id="3ta=^.6g1ClfK*Uyqd~S"><field name="NUM">0xABCD</field></shadow></value></block></statement></block></next></block></statement></block></next></block></next></block><block type="procedures_defnoreturn" id="oL^9S2X+*F7Vaq0N;dJf" x="-1199" y="67"><mutation><arg name="cmd" varid="F6AZf]?TTBrVz3!HK,|p"></arg><arg name="addr" varid="9evLpxY)q7CIC6uw4yKm"></arg><arg name="raw" varid="=T.Z=tj(7{K$1-8-Jmp|"></arg><arg name="pulses" varid="bY/n=T#mN)b(Cy}6c4qY"></arg></mutation><field name="NAME">callback</field><statement name="STACK"><block type="system_print_many" id="cF2GC+opzz7q~g#tZH?b"><mutation items="4"></mutation><value name="ADD0"><block type="variables_get" id="+p^g[bc|@58i(;C?-B=="><field name="VAR">cmd</field></block></value><value name="ADD1"><block type="variables_get" id="P9T[.#7uL|;-^uXotdT2"><field name="VAR">addr</field></block></value><value name="ADD2"><block type="math_number_base_conversion" id="N#nLHKhQfH6pIlurhw#?"><field name="OP">ten</field><field name="OP2">sixteen</field><value name="NUM"><shadow type="math_number" id="GsZ7JgdAG-vx=~xshZ.."><field name="NUM">1010</field></shadow><block type="variables_get" id="daC,i@Dz!hE7_gnt!{LL"><field name="VAR">raw</field></block></value></block></value><value name="ADD3"><block type="variables_get" id="jcU?}-_!d{1W$m;_lE9C"><field name="VAR">pulses</field></block></value></block></statement></block></xml><config>{}</config><code>aW1wb3J0IGlycmVtb3RlCmltcG9ydCBtaXhnb19jZQppbXBvcnQgbWF0aAoKZGVmIGNhbGxiYWNrKGNtZCwgYWRkciwgcmF3LCBwdWxzZXMpOgogICAgcHJpbnQoY21kLCBhZGRyLCBoZXgoaW50KHN0cihyYXcpLCAxMCkpLCBwdWxzZXMpCgoKCmlyX3J4ID0gaXJyZW1vdGUuTkVDX1JYKDM4LDAsY2FsbGJhY2spCmlyX3R4ID0gaXJyZW1vdGUuTkVDX1RYKDM5LEZhbHNlLDEwMCkKd2hpbGUgVHJ1ZToKICAgIGlmIG1peGdvX2NlLkIxa2V5Lndhc19wcmVzc2VkKCk6CiAgICAgICAgaXJfdHgudHJhbnNtaXQocmF3PTB4MTIzNCkKICAgIGlmIG1peGdvX2NlLkIya2V5Lndhc19wcmVzc2VkKCk6CiAgICAgICAgaXJfdHgudHJhbnNtaXQocmF3PTB4QUJDRCkK</code>
|
||||
File diff suppressed because one or more lines are too long
@@ -0,0 +1 @@
|
||||
<xml version="Mixly 2.0 rc4" board="MixGo CE@MixGo CE"><block type="espnow_radio_channel" id="K~|,w+fQqA!WbQh9BeGZ" x="-912" y="-519"><value name="CHNL"><shadow type="espnow_channel" id="N=`CX;QmMR7T:Z1`g.s`"><field name="PIN">10</field></shadow></value><next><block type="espnow_radio_on_off" id="z$coAMHs}6jM9,/!ylsy"><field name="on_off">True</field><next><block type="controls_whileUntil" id="F~]K~4pBcV:x|jE,t0_B"><field name="MODE">WHILE</field><value name="BOOL"><shadow type="logic_boolean" id=",TDG;LobHj?uu?kXxo`U"><field name="BOOL">TRUE</field></shadow></value><statement name="DO"><block type="controls_if" id="+9!vD3/2PyG/=5aa:,gj"><value name="IF0"><block type="sensor_mixgo_button_was_pressed" id="T7Qc:GAW]/34-*g!Xo!["><value name="btn"><shadow type="pins_button" id="}{c8c([nItX~Ag+*p*L^"><field name="PIN">B1key</field></shadow></value></block></value><statement name="DO0"><block type="espnow_radio_send" id="hzMW*KD7Y=xh{/ntAmeb"><value name="send"><shadow type="text" id="DMd~EyY|yqg[HYOjfWTP"><field name="TEXT">LEFT</field></shadow></value></block></statement><next><block type="controls_if" id="S:GEL3!qjE1w/*HvSX7w"><value name="IF0"><block type="sensor_mixgo_button_was_pressed" id="3eY2CbJ9BE*c$WP=dphp"><value name="btn"><shadow type="pins_button" id="qSxvgx^[0zTW;[_PBew{"><field name="PIN">B2key</field></shadow></value></block></value><statement name="DO0"><block type="espnow_radio_send" id="scD?mD^p8OGz)B#)MlLL"><value name="send"><shadow type="text" id="}ctV:UXaX[vf..p+4;`b"><field name="TEXT">RIGHT</field></shadow></value></block></statement></block></next></block></statement></block></next></block></next></block><block type="espnow_radio_recv_new" id="xE]lsp6+dD:^P|oL0hF5" x="-894" y="-189"><statement name="DO"><block type="system_print" id="|)Ufoy?57:;]9HLnp2Dx"><value name="VAR"><block type="espnow_radio_recv_msg" id="ui!2N(c^|i1}=P||p4F*"></block></value></block></statement></block><block type="espnow_radio_recv_certain_msg_new" id=":RW*)(}#Umyy,*n,}!uW" x="-905" y="-84"><field name="msg">LEFT</field><statement name="DO"><block type="display_show_image" id="D,ORO+^=[d#~]Hiy^BN1"><value name="data"><shadow type="pins_builtinimg" id="PT{A8w#pDWz~=,0Lk*bH"><field name="PIN">onboard_matrix.LEFT_ARROW</field></shadow></value></block></statement></block><block type="espnow_radio_recv_certain_msg_new" id="K6YbCHuVe5(LJO8U4T]=" x="-904" y="13"><field name="msg">RIGHT</field><statement name="DO"><block type="display_show_image" id="hL]=78?m@:g0soUD8w4t"><value name="data"><shadow type="pins_builtinimg" id="piS5ZtuGFaL_e,TusKiQ"><field name="PIN">onboard_matrix.RIGHT_ARROW</field></shadow></value></block></statement></block></xml><config>{}</config><code>aW1wb3J0IHJhZGlvCkVTUE5vd19yYWRpbz1yYWRpby5FU1BOb3coKQppbXBvcnQgbWl4Z29fY2UKaGFuZGxlX2xpc3Q9W10KaW1wb3J0IG1hY2hpbmUKZGVmIEVTUE5vd19yYWRpb19yZWN2KG1hYyxFU1BOb3dfcmFkaW9fbXNnKToKICAgIHByaW50KEVTUE5vd19yYWRpb19tc2cpCgppZiBub3QgRVNQTm93X3JhZGlvX3JlY3YgaW4gaGFuZGxlX2xpc3Q6CiAgICBoYW5kbGVfbGlzdC5hcHBlbmQoRVNQTm93X3JhZGlvX3JlY3YpCkVTUE5vd19yYWRpby5yZWN2X2NiKGhhbmRsZV9saXN0KQoKZnJvbSBtaXhnb19jZSBpbXBvcnQgb25ib2FyZF9tYXRyaXgKZGVmIEVTUE5vd19yYWRpb19yZWN2X19MRUZUKG1hYyxFU1BOb3dfcmFkaW9fbXNnKToKICAgIG9uYm9hcmRfbWF0cml4LnNob3dzKG9uYm9hcmRfbWF0cml4LkxFRlRfQVJST1cpCgppZiBub3QgRVNQTm93X3JhZGlvX3JlY3ZfX0xFRlQgaW4gaGFuZGxlX2xpc3Q6CiAgICBoYW5kbGVfbGlzdC5hcHBlbmQoRVNQTm93X3JhZGlvX3JlY3ZfX0xFRlQpCkVTUE5vd19yYWRpby5yZWN2X2NiKGhhbmRsZV9saXN0KQoKZGVmIEVTUE5vd19yYWRpb19yZWN2X19SSUdIVChtYWMsRVNQTm93X3JhZGlvX21zZyk6CiAgICBvbmJvYXJkX21hdHJpeC5zaG93cyhvbmJvYXJkX21hdHJpeC5SSUdIVF9BUlJPVykKCmlmIG5vdCBFU1BOb3dfcmFkaW9fcmVjdl9fUklHSFQgaW4gaGFuZGxlX2xpc3Q6CiAgICBoYW5kbGVfbGlzdC5hcHBlbmQoRVNQTm93X3JhZGlvX3JlY3ZfX1JJR0hUKQpFU1BOb3dfcmFkaW8ucmVjdl9jYihoYW5kbGVfbGlzdCkKCgoKRVNQTm93X3JhZGlvLnNldF9jaGFubmVsKGNoYW5uZWw9MTApCkVTUE5vd19yYWRpby5hY3RpdmUoVHJ1ZSkKd2hpbGUgVHJ1ZToKICAgIGlmIG1peGdvX2NlLkIxa2V5Lndhc19wcmVzc2VkKCk6CiAgICAgICAgRVNQTm93X3JhZGlvLnNlbmQoImZmZmZmZmZmZmZmZiIsJ0xFRlQnKQogICAgaWYgbWl4Z29fY2UuQjJrZXkud2FzX3ByZXNzZWQoKToKICAgICAgICBFU1BOb3dfcmFkaW8uc2VuZCgiZmZmZmZmZmZmZmZmIiwnUklHSFQnKQo=</code>
|
||||
@@ -0,0 +1 @@
|
||||
<xml version="Mixly 2.0 rc4" board="MixGo CE@MixGo CE"><block type="variables_set" id=",lrM)5fDwh.QhB6C]^rq" x="-557" y="-442"><field name="VAR">lastmsgtime</field><value name="VALUE"><block type="controls_millis" id="-?KT#Pl09?ltU1~2.u[#"><field name="Time">ms</field></block></value><next><block type="espnow_radio_channel" id="xXiY,$CS[y5XPASpBeai"><value name="CHNL"><shadow type="espnow_channel" id="B^Hs,4Z/bHM|ya@o6ob)"><field name="PIN">10</field></shadow></value><next><block type="espnow_radio_on_off" id="x*1~N/ao^bD6KtuG~kSf"><field name="on_off">True</field><next><block type="controls_whileUntil" id="YO2k]9f+l:Ue,c~lKumY"><field name="MODE">WHILE</field><value name="BOOL"><shadow type="logic_boolean" id="Gkd{WrGMmntD~~F3kAP-"><field name="BOOL">TRUE</field></shadow></value><statement name="DO"><block type="controls_delay_new" id=";)OT@M}Yt6_GBS$+{x-_"><field name="Time">s</field><value name="DELAY_TIME"><shadow type="math_number" id="nQ]??zlNlhq$V7h-ZHJ!"><field name="NUM">2</field></shadow></value><next><block type="espnow_radio_send" id="^.vs=;NUVQeqYtvZ!ell"><value name="send"><shadow type="text" id="IgsrhCW=Uzu]!~f-Nn.@"><field name="TEXT">Mixly</field></shadow><block type="number_to_text" id="++I,vETwgohJ`$+!q-X3"><value name="VAR"><shadow type="variables_get" id="KI;hXlv.C}6/bU7#Pg!)"><field name="VAR">x</field></shadow><block type="controls_millis" id="PwapNQA(tZtzzp9PpdLV"><field name="Time">ms</field></block></value></block></value><next><block type="controls_if" id="h`IBeda.W1C[fn^3{9aB"><value name="IF0"><block type="logic_compare" id="}AGw^`8i1P+ye}X`)Fh}"><field name="OP">GT</field><value name="A"><block type="math_arithmetic" id="23Ov[z[x6=F_mM70ka2t"><field name="OP">MINUS</field><value name="A"><shadow type="math_number" id="pT~IHzzGTk6vTWp.bs0g"><field name="NUM">1</field></shadow><block type="controls_millis" id="u][/|dk@`=[$L@:-fiQm"><field name="Time">ms</field></block></value><value name="B"><shadow type="math_number" id="=Wh^92(}J=F@zPNMz(x]"><field name="NUM">1</field></shadow><block type="variables_get" id="xRX~4p7]M`Vl1*o_ny5}"><field name="VAR">lastmsgtime</field></block></value></block></value><value name="B"><block type="math_number" id="|l:VRr^V7h^AVVzg8xbo"><field name="NUM">10000</field></block></value></block></value><statement name="DO0"><block type="display_show_image" id="v{Vye49K$LX-sfjmUS,E"><value name="data"><shadow type="pins_builtinimg" id="KS*tLEfuZaB}jrc.A[Ct"><field name="PIN">onboard_matrix.NO</field></shadow></value><next><block type="esp32_onboard_music_play_list" id="tCT;ipU$H$$3g6V0(3|w"><value name="LIST"><shadow type="pins_playlist" id="oBJn5cI9a*vS]dJAV4(o"><field name="PIN">onboard_music.RINGTONE</field></shadow></value></block></next></block></statement></block></next></block></next></block></statement></block></next></block></next></block></next></block><block type="espnow_radio_recv_new" id="4TT)#DnKHB[I#0!=u9xQ" x="-553" y="-50"><statement name="DO"><block type="variables_global" id=";=*bxHw]?YakK}o?$t`s"><value name="VAR"><block type="variables_get" id="oa)3!o+Lv:ms$LfVN7yj"><field name="VAR">lastmsgtime</field></block></value><next><block type="display_show_image" id="R{I;l-`Qa8cTV_iPXGa1"><value name="data"><shadow type="pins_builtinimg" id="y|R+9_)B[CzSM12C)}Bw"><field name="PIN">onboard_matrix.YES</field></shadow></value><next><block type="variables_set" id="[a`vAdi_,pPF:]7wx#Jk"><field name="VAR">lastmsgtime</field><value name="VALUE"><block type="controls_millis" id=":d=jD,jBFdnQbexzfQ)B"><field name="Time">ms</field></block></value></block></next></block></next></block></statement></block></xml><config>{}</config><code>aW1wb3J0IHRpbWUKaW1wb3J0IHJhZGlvCkVTUE5vd19yYWRpbz1yYWRpby5FU1BOb3coKQpmcm9tIG1peGdvX2NlIGltcG9ydCBvbmJvYXJkX21hdHJpeApmcm9tIG1peGdvX2NlIGltcG9ydCBvbmJvYXJkX211c2ljCmhhbmRsZV9saXN0PVtdCmRlZiBFU1BOb3dfcmFkaW9fcmVjdihtYWMsRVNQTm93X3JhZGlvX21zZyk6CiAgICBnbG9iYWwgbGFzdG1zZ3RpbWUKICAgIG9uYm9hcmRfbWF0cml4LnNob3dzKG9uYm9hcmRfbWF0cml4LllFUykKICAgIGxhc3Rtc2d0aW1lID0gdGltZS50aWNrc19tcygpCgppZiBub3QgRVNQTm93X3JhZGlvX3JlY3YgaW4gaGFuZGxlX2xpc3Q6CiAgICBoYW5kbGVfbGlzdC5hcHBlbmQoRVNQTm93X3JhZGlvX3JlY3YpCkVTUE5vd19yYWRpby5yZWN2X2NiKGhhbmRsZV9saXN0KQoKCgpsYXN0bXNndGltZSA9IHRpbWUudGlja3NfbXMoKQpFU1BOb3dfcmFkaW8uc2V0X2NoYW5uZWwoY2hhbm5lbD0xMCkKRVNQTm93X3JhZGlvLmFjdGl2ZShUcnVlKQp3aGlsZSBUcnVlOgogICAgdGltZS5zbGVlcCgyKQogICAgRVNQTm93X3JhZGlvLnNlbmQoImZmZmZmZmZmZmZmZiIsc3RyKHRpbWUudGlja3NfbXMoKSkpCiAgICBpZiB0aW1lLnRpY2tzX21zKCkgLSBsYXN0bXNndGltZSA+IDEwMDAwOgogICAgICAgIG9uYm9hcmRfbWF0cml4LnNob3dzKG9uYm9hcmRfbWF0cml4Lk5PKQogICAgICAgIG9uYm9hcmRfbXVzaWMucGxheShvbmJvYXJkX211c2ljLlJJTkdUT05FKQo=</code>
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -0,0 +1 @@
|
||||
<xml version="Mixly 2.0 rc4" board="MixGo CE@MixGo CE"><block type="iot_wifi_connect" id="Q,2iW0?98ag4Wb@Kpc7*" x="-1261" y="-422"><value name="WIFINAME"><shadow type="text" id="TD+v1Jwr?![[B]0G(!nA"><field name="TEXT">fuhua3</field></shadow></value><value name="PASSWORD"><shadow type="text" id="6_(]2SDlR0rvPO]+Ivyl"><field name="TEXT">1234567890</field></shadow></value><next><block type="display_show_image_or_string_delay" id="pUEy~ub^Kzq8{DTH_A#e"><field name="center">True</field><value name="data"><shadow type="text" id="~GUX9`t-HWlEQ5DpZ{W5"><field name="TEXT">WO</field></shadow></value><value name="space"><shadow type="math_number" id="8zqsDxclGn3pSjJVt0qJ"><field name="NUM">0</field></shadow></value><next><block type="IOT_EMQX_INIT_AND_CONNECT_BY_MIXLY_CODE" id="A#(OpSg)_XLqDW3/(Uh{"><value name="SERVER"><shadow type="text" id="un9rf0zQdUIgN#;6hVb7"><field name="TEXT">mixio.mixly.cn</field></shadow></value><value name="KEY"><shadow type="iot_mixly_key" id="kjwIuhpz5__Qn7pry1DM"><field name="VISITOR_ID">31MOTCLJ</field></shadow></value><next><block type="display_show_image_or_string_delay" id="xl|n_MMQ`[8Sr,b)fMHQ"><field name="center">True</field><value name="data"><shadow type="text" id="XbB8I*IL[zm9WNUAzP/o"><field name="TEXT">MO</field></shadow></value><value name="space"><shadow type="math_number" id="5MBWiyk`{r-?Yj,ZdyiD"><field name="NUM">0</field></shadow></value><next><block type="controls_whileUntil" id="IDkyubtc:bNZwi3.[*6X"><field name="MODE">WHILE</field><value name="BOOL"><shadow type="logic_boolean" id="uAdoWg2t.SY4S]~YL?DA"><field name="BOOL">TRUE</field></shadow></value><statement name="DO"><block type="controls_delay_new" id="P94UHQHOjLMG:m_)[(@("><field name="Time">s</field><value name="DELAY_TIME"><shadow type="math_number" id="E#^0379D/;_{(-n}p?2;"><field name="NUM">5</field></shadow></value><next><block type="IOT_MIXIO_PUBLISH" id="z8M`Q!C^C{mmVWEm!,le"><value name="TOPIC"><shadow type="text" id="g;V39386D,E_iWake1uc"><field name="TEXT">光照</field></shadow></value><value name="MSG"><shadow type="text" id="u:(`hj([OOA8;Q5MUTMQ"><field name="TEXT">msg</field></shadow><block type="sensor_mixgo_light" id="[e;Y{ExB:/6UM(THlc~W"></block></value><next><block type="display_scroll_string_delay" id="^pTZNhwndV3vYPX9zNu7"><value name="data"><shadow type="text" id="!I]eG?s3bc:N2!_t0`tW"><field name="TEXT">Mixly</field></shadow><block type="number_to_text" id="gGd7I^+yy`_?xRxe-dqW"><value name="VAR"><shadow type="variables_get" id="jPdB*l$}}2IJf#=Gy9P/"><field name="VAR">x</field></shadow><block type="sensor_mixgo_light" id="t#];k(Q,n(qNJ8ybdZYx"></block></value></block></value><value name="space"><shadow type="math_number" id="vZ]dt@GIl5D#F:nf+S=R"><field name="NUM">0</field></shadow></value><value name="time"><shadow type="math_number" id="+?^?z;6[]9Kd)Mohv0o)"><field name="NUM">30</field></shadow></value><next><block type="controls_delay_new" id="Ekj{jD=l!Ao439ovn!xh"><field name="Time">s</field><value name="DELAY_TIME"><shadow type="math_number" id="i11OYe(EcU4t*v3-H1jQ"><field name="NUM">5</field></shadow></value></block></next></block></next></block></next></block></statement></block></next></block></next></block></next></block></next></block></xml><config>{}</config><code>aW1wb3J0IG1peGlvdApmcm9tIG1peGdvX2NlIGltcG9ydCBvbmJvYXJkX21hdHJpeAppbXBvcnQgbWFjaGluZQpmcm9tIHViaW5hc2NpaSBpbXBvcnQgaGV4bGlmeQppbXBvcnQgdGltZQppbXBvcnQgbWl4Z29fY2UKCgptaXhpb3Qud2xhbl9jb25uZWN0KCdmdWh1YTMnLCcxMjM0NTY3ODkwJykKb25ib2FyZF9tYXRyaXguc2hvd3MoJ1dPJyxzcGFjZSA9IDAsY2VudGVyID0gVHJ1ZSkKTVFUVF9VU1JfUFJKID0gIk1peElPLzMxTU9UQ0xKL2RlZmF1bHQvIgptcXR0X2NsaWVudCA9IG1peGlvdC5pbml0X01RVFRfY2xpZW50KCdtaXhpby5taXhseS5jbicsICJNaXhJT19wdWJsaWMiLCAiTWl4SU9fcHVibGljIiwgTVFUVF9VU1JfUFJKKQpvbmJvYXJkX21hdHJpeC5zaG93cygnTU8nLHNwYWNlID0gMCxjZW50ZXIgPSBUcnVlKQp3aGlsZSBUcnVlOgogICAgdGltZS5zbGVlcCg1KQogICAgbXF0dF9jbGllbnQucHVibGlzaChNUVRUX1VTUl9QUkogKyAn5YWJ54WnJywgbWl4Z29fY2UuZ2V0X2JyaWdodG5lc3MoKSkKICAgIG9uYm9hcmRfbWF0cml4LnNjcm9sbChzdHIobWl4Z29fY2UuZ2V0X2JyaWdodG5lc3MoKSksc3BlZWQgPTMwLHNwYWNlID0gMCkKICAgIHRpbWUuc2xlZXAoNSkK</code>
|
||||
@@ -0,0 +1 @@
|
||||
<xml version="Mixly 2.0 rc4" board="MixGo CE@MixGo CE"><block type="iot_wifi_connect" id="ygv{si(ZI]35Fuws=42A" x="-1378" y="-423"><value name="WIFINAME"><shadow type="text" id="Ho0,;MYORTC5X!-71qEv"><field name="TEXT">fuhua3</field></shadow></value><value name="PASSWORD"><shadow type="text" id="eDvb-H6hPe.:e]Ns7fvr"><field name="TEXT">1234567890</field></shadow></value><next><block type="display_show_image_or_string_delay" id="D~O{)^C:L__fWq`TObbM"><field name="center">True</field><value name="data"><shadow type="text" id=")}ZWl7w;gr5VwalFgiqC"><field name="TEXT">WO</field></shadow></value><value name="space"><shadow type="math_number" id=":2}-x=z3q^/:EPj]v?1U"><field name="NUM">0</field></shadow></value><next><block type="IOT_EMQX_INIT_AND_CONNECT_BY_MIXLY_CODE" id="8ZkD1p`EEb]4JtQV9n|?"><value name="SERVER"><shadow type="text" id="oMlIBQA4}y~qun5ahIEU"><field name="TEXT">mixio.mixly.cn</field></shadow></value><value name="KEY"><shadow type="iot_mixly_key" id="xPsh@k,f78H4Uq,Eq#3q"><field name="VISITOR_ID">31MOTCLJ</field></shadow></value><next><block type="display_show_image_or_string_delay" id="n1:V.m6il#~I};/7C:_o"><field name="center">True</field><value name="data"><shadow type="text" id="g8e@X~]fgbiLL{-lYKRi"><field name="TEXT">MO</field></shadow></value><value name="space"><shadow type="math_number" id="19--:O|/pU1le|HI74YQ"><field name="NUM">0</field></shadow></value><next><block type="controls_whileUntil" id="f3wUMe~DT{9TGMjQcVZ@"><field name="MODE">WHILE</field><value name="BOOL"><shadow type="logic_boolean" id="ythd1EMgXo~w1M?6gSrH"><field name="BOOL">TRUE</field></shadow></value><statement name="DO"><block type="controls_delay_new" id="Br.cGM.9,yb1M8KWG!r9"><field name="Time">s</field><value name="DELAY_TIME"><shadow type="math_number" id="mL1l-NREdeWh2||+*+__"><field name="NUM">5</field></shadow></value><next><block type="IOT_MIXIO_PUBLISH" id=";sKJ.5N]cpJK}qIZby2_"><value name="TOPIC"><shadow type="text" id="}$NC86T2:JlnwF!3E7Yp"><field name="TEXT">环境</field></shadow></value><value name="MSG"><shadow type="text" id=".@:w!J*px|`c12,=u.cD"><field name="TEXT">msg</field></shadow><block type="IOT_FORMAT_STRING" id="l[Ss5.rm7ppqn~mZJk}_"><value name="VAR"><block type="dicts_create_with_noreturn" id="_HZ3J7QvM7c6LoGW@_z2" inline="false"><mutation items="3"></mutation><field name="KEY0">"光照"</field><field name="KEY1">"声音"</field><field name="KEY2">"震动"</field><value name="ADD0"><block type="sensor_mixgo_light" id="t#];k(Q,n(qNJ8ybdZYx"></block></value><value name="ADD1"><block type="sensor_sound" id="HBsTmM_D5G5;cy,/roa;"></block></value><value name="ADD2"><block type="sensor_get_acceleration" id="li4}iy$(VCl#MP/?4J^x"><field name="key">strength</field></block></value></block></value></block></value></block></next></block></statement></block></next></block></next></block></next></block></next></block></xml><config>{}</config><code>aW1wb3J0IG1peGlvdApmcm9tIG1peGdvX2NlIGltcG9ydCBvbmJvYXJkX21hdHJpeAppbXBvcnQgbWFjaGluZQpmcm9tIHViaW5hc2NpaSBpbXBvcnQgaGV4bGlmeQppbXBvcnQgdGltZQppbXBvcnQgbWl4cHkKaW1wb3J0IG1peGdvX2NlCmZyb20gbWl4Z29fY2UgaW1wb3J0IG9uYm9hcmRfc291bmQKZnJvbSBtaXhnb19jZSBpbXBvcnQgb25ib2FyZF9hY2MKCgptaXhpb3Qud2xhbl9jb25uZWN0KCdmdWh1YTMnLCcxMjM0NTY3ODkwJykKb25ib2FyZF9tYXRyaXguc2hvd3MoJ1dPJyxzcGFjZSA9IDAsY2VudGVyID0gVHJ1ZSkKTVFUVF9VU1JfUFJKID0gIk1peElPLzMxTU9UQ0xKL2RlZmF1bHQvIgptcXR0X2NsaWVudCA9IG1peGlvdC5pbml0X01RVFRfY2xpZW50KCdtaXhpby5taXhseS5jbicsICJNaXhJT19wdWJsaWMiLCAiTWl4SU9fcHVibGljIiwgTVFUVF9VU1JfUFJKKQpvbmJvYXJkX21hdHJpeC5zaG93cygnTU8nLHNwYWNlID0gMCxjZW50ZXIgPSBUcnVlKQp3aGlsZSBUcnVlOgogICAgdGltZS5zbGVlcCg1KQogICAgbXF0dF9jbGllbnQucHVibGlzaChNUVRUX1VTUl9QUkogKyAn546v5aKDJywgbWl4cHkuZm9ybWF0X3N0cih7IuWFieeFpyI6bWl4Z29fY2UuZ2V0X2JyaWdodG5lc3MoKSwgIuWjsOmfsyI6b25ib2FyZF9zb3VuZC5yZWFkKCksICLpnIfliqgiOm9uYm9hcmRfYWNjLnN0cmVuZ3RoKCl9KSkK</code>
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -0,0 +1 @@
|
||||
<xml version="Mixly 2.0 rc4" board="MixGo CE@MixGo CE"><variables><variable id="x@Yfw8DrgkM3CEl{odMY">client</variable><variable id="Q.[d]Bc~)FuhqVb/l{Uh">topic</variable><variable id="0.A^[Eto)4wE7Tef?SZQ">msg</variable></variables><block type="iot_wifi_connect" id="Pzlc7$.1fgWQ1ZA3@~cU" x="-2026" y="-593"><value name="WIFINAME"><shadow type="text" id="ma1QD3E!O]8Q}+{m5lU/"><field name="TEXT">fuhua3</field></shadow></value><value name="PASSWORD"><shadow type="text" id="=-^b9Ffe:ITo]ms6kn)S"><field name="TEXT">1234567890</field></shadow></value><next><block type="display_show_image_or_string_delay" id="F#QioNRp?k=]=~*6N^]7"><field name="center">True</field><value name="data"><shadow type="text" id="sZnh6w1_Bq;eJegQ)qP("><field name="TEXT">WO</field></shadow></value><value name="space"><shadow type="math_number" id="w|2;c0MryseI)P6Z.5:2"><field name="NUM">0</field></shadow></value><next><block type="IOT_EMQX_INIT_AND_CONNECT_BY_MIXLY_CODE" id="_-b/CY(W2r4wI=)_s2jX"><value name="SERVER"><shadow type="text" id="Ny]?M/QtEo$pUTP#Rg.3"><field name="TEXT">mixio.mixly.cn</field></shadow></value><value name="KEY"><shadow type="iot_mixly_key" id="e!sU4-sVzhF672T~#+J7"><field name="VISITOR_ID">31MOTCLJ</field></shadow></value><next><block type="display_show_image_or_string_delay" id="DX(Ve*.r[G[:D!+9wjZ."><field name="center">True</field><value name="data"><shadow type="text" id="/(BqPnY`dar(]?8{D+Zp"><field name="TEXT">MO</field></shadow></value><value name="space"><shadow type="math_number" id=")]drgJ*iu;;-5cKWz6MA"><field name="NUM">0</field></shadow></value><next><block type="IOT_MIXIO_SUBSCRIBE" id="27*r-k4cS5@j,DzSA1j`"><value name="TOPIC"><shadow type="text" id="1w{doza_/tJls@:KD5Ns"><field name="TEXT">亮屏</field></shadow></value><value name="METHOD"><shadow type="factory_block_return" id="xZx7V=Uh`zQvM:4gFORG"><field name="VALUE">method</field></shadow></value><next><block type="controls_whileUntil" id="v{UUT[u^|V~I(Nl[Q7^3"><field name="MODE">WHILE</field><value name="BOOL"><shadow type="logic_boolean" id="QP37TB3)D*58EMX5o25p"><field name="BOOL">TRUE</field></shadow></value><statement name="DO"><block type="iot_mixio_check" id="HjztD?:PBRkzfltY.@[z"></block></statement></block></next></block></next></block></next></block></next></block></next></block><block type="procedures_defnoreturn" id="H}e`-eY2lU`zsX=ytgTm" x="-2020" y="-282"><mutation><arg name="client" varid="x@Yfw8DrgkM3CEl{odMY"></arg><arg name="topic" varid="Q.[d]Bc~)FuhqVb/l{Uh"></arg><arg name="msg" varid="0.A^[Eto)4wE7Tef?SZQ"></arg></mutation><field name="NAME">method</field><statement name="STACK"><block type="controls_if" id="oP6X;w*-|Y+}Rm]=53`u"><value name="IF0"><block type="logic_compare" id="IY4+vgDM@5(rbg?CNa5w"><field name="OP">EQ</field><value name="A"><block type="variables_get" id="qXhdD;[VhOmiamgBW+2o"><field name="VAR">msg</field></block></value><value name="B"><block type="text" id="aZJC1GJ.NB7;F{gOMAy:"><field name="TEXT">1</field></block></value></block></value><statement name="DO0"><block type="display_show_image" id="nSR?|KoUl`/x~x5bCvrV"><value name="data"><shadow type="pins_builtinimg" id="tOQ8?i2lfF(7dwqdDRf;"><field name="PIN">onboard_matrix.HEART</field></shadow></value></block></statement><next><block type="controls_if" id="i]X^T-PSv[KbNrgoM1DG"><value name="IF0"><block type="logic_compare" id="kV)HcupAqalIJbcgkveE"><field name="OP">EQ</field><value name="A"><block type="variables_get" id="zkkZym#4CB+=1u1RaO=s"><field name="VAR">msg</field></block></value><value name="B"><block type="text" id="5tl;|[I7A_34oo5}rbB2"><field name="TEXT">0</field></block></value></block></value><statement name="DO0"><block type="display_clear" id="QtO(cophfkLh4a)r6rKh"></block></statement></block></next></block></statement></block></xml><config>{}</config><code>aW1wb3J0IG1peGlvdApmcm9tIG1peGdvX2NlIGltcG9ydCBvbmJvYXJkX21hdHJpeAppbXBvcnQgbWFjaGluZQpmcm9tIHViaW5hc2NpaSBpbXBvcnQgaGV4bGlmeQoKZGVmIG1ldGhvZChjbGllbnQsIHRvcGljLCBtc2cpOgogICAgaWYgbXNnID09ICcxJzoKICAgICAgICBvbmJvYXJkX21hdHJpeC5zaG93cyhvbmJvYXJkX21hdHJpeC5IRUFSVCkKICAgIGlmIG1zZyA9PSAnMCc6CiAgICAgICAgb25ib2FyZF9tYXRyaXguZmlsbCgwKQogICAgICAgIG9uYm9hcmRfbWF0cml4LnNob3coKQoKCgptaXhpb3Qud2xhbl9jb25uZWN0KCdmdWh1YTMnLCcxMjM0NTY3ODkwJykKb25ib2FyZF9tYXRyaXguc2hvd3MoJ1dPJyxzcGFjZSA9IDAsY2VudGVyID0gVHJ1ZSkKTVFUVF9VU1JfUFJKID0gIk1peElPLzMxTU9UQ0xKL2RlZmF1bHQvIgptcXR0X2NsaWVudCA9IG1peGlvdC5pbml0X01RVFRfY2xpZW50KCdtaXhpby5taXhseS5jbicsICJNaXhJT19wdWJsaWMiLCAiTWl4SU9fcHVibGljIiwgTVFUVF9VU1JfUFJKKQpvbmJvYXJkX21hdHJpeC5zaG93cygnTU8nLHNwYWNlID0gMCxjZW50ZXIgPSBUcnVlKQptcXR0X2NsaWVudC5zZXRfY2FsbGJhY2soJ+S6ruWxjycsbWV0aG9kLCBNUVRUX1VTUl9QUkopCm1xdHRfY2xpZW50LnN1YnNjcmliZShNUVRUX1VTUl9QUkogKyAn5Lqu5bGPJykKd2hpbGUgVHJ1ZToKICAgIG1xdHRfY2xpZW50LmNoZWNrX21zZygpCg==</code>
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -0,0 +1 @@
|
||||
<xml version="Mixly 2.0 rc4" board="MixGo CE@MixGo CE"><block type="variables_set" id="(gQR0s$),zAvs!y;VCp2" x="-2139" y="-747"><field name="VAR">本机用户</field><value name="VALUE"><block type="text" id="j6Ey=Pa#*5(}nkB]vDlI"><field name="TEXT">mixly</field></block></value><next><block type="iot_wifi_connect" id=";VX3s+_)+Ol`i8V^,6$["><value name="WIFINAME"><shadow type="text" id="1M0F_zw8WL.G8pOQi]P!"><field name="TEXT">fuhua3</field></shadow></value><value name="PASSWORD"><shadow type="text" id="F6vezIHrCjxE)GJaU5z#"><field name="TEXT">1234567890</field></shadow></value><next><block type="IOT_EMQX_INIT_AND_CONNECT_BY_SHARE_CODE" id="XEVchC$Yc3v)C[vzlQZW"><value name="SERVER"><shadow type="text" id="?J_k/n[Q0EI4#5[|n/zp"><field name="TEXT">mixio.mixly.cn</field></shadow></value><value name="KEY"><shadow type="factory_block_return" id="Eumua1to=_hF7?}yZr^N"><field name="VALUE">7b6443</field></shadow></value><next><block type="controls_whileUntil" id="(MY)[YK=z_[]t/^]/$3*"><field name="MODE">WHILE</field><value name="BOOL"><shadow type="logic_boolean" id="vJ@8Jl2CX1679y?g/gzv"><field name="BOOL">TRUE</field></shadow></value><statement name="DO"><block type="display_show_image_or_string_delay" id="aJ!h6,-W9tcg2/Kv1*dr"><field name="center">True</field><value name="data"><shadow type="text" id="jJTH+~V3IBwb6:,3{~=Q"><field name="TEXT">GO</field></shadow></value><value name="space"><shadow type="math_number" id="*Y;6}X:]Lfjt4iZe:WY("><field name="NUM">0</field></shadow></value><next><block type="controls_if" id="Sg#vQJW{V#RD#tOn(OrC"><value name="IF0"><block type="sensor_mixgo_button_was_pressed" id="*Alvet/^p@f(QjKv#([M"><value name="btn"><shadow type="pins_button" id="qUMEm4@6dg(P!`$922om"><field name="PIN">B1key</field></shadow></value></block></value><statement name="DO0"><block type="display_clear" id="Sjov+6c;#iG{N(B@Z#K5"><next><block type="IOT_MIXIO_PUBLISH" id="NEZH:Z2n]atRYY-+5Dm#"><value name="TOPIC"><shadow type="text" id="U[Rw4ft4o9?Vu_Z!bMTM"><field name="TEXT">姓名</field></shadow></value><value name="MSG"><shadow type="text" id="[do.Kh0gk#.4?~,1D:Ma"><field name="TEXT">msg</field></shadow><block type="variables_get" id="NM2N}AN^s{7(fDriN{32"><field name="VAR">本机用户</field></block></value><next><block type="display_scroll_string" id="N)ejRccS1FzRMMV?Lh?k"><value name="data"><shadow type="text" id="~ndshcHb@l22kntsu0E="><field name="TEXT">Mixly</field></shadow><block type="variables_get" id="9`xvH9|(S=Nys:TnEtmd"><field name="VAR">本机用户</field></block></value><next><block type="display_show_image_or_string_delay" id="~a@0m`nE$SH0*foM[T+{"><field name="center">True</field><value name="data"><shadow type="text" id="ubg{7=dY,b[@y5QauATS"><field name="TEXT">OK</field></shadow></value><value name="space"><shadow type="math_number" id="XI_ZP~a2l)-o0plSCev5"><field name="NUM">0</field></shadow></value><next><block type="controls_delay_new" id=")q*cRR(NI0#w={]HGyo+"><field name="Time">s</field><value name="DELAY_TIME"><shadow type="math_number" id="3COt7rI[dS7Ms^w*bgUo"><field name="NUM">1</field></shadow></value><next><block type="display_show_image_or_string_delay" id="0g=KqUI8o-{rf=#|R[F+"><field name="center">True</field><value name="data"><shadow type="text" id="IBs5+e~cWlU}2rjz^HJ*"><field name="TEXT">GO</field></shadow></value><value name="space"><shadow type="math_number" id="F0J5*B@1VE-Vgmz*ak9o"><field name="NUM">0</field></shadow></value></block></next></block></next></block></next></block></next></block></next></block></statement></block></next></block></statement></block></next></block></next></block></next></block></xml><config>{}</config><code>aW1wb3J0IG1peGlvdAppbXBvcnQgbWFjaGluZQppbXBvcnQgdXJlcXVlc3RzCmZyb20gdWJpbmFzY2lpIGltcG9ydCBoZXhsaWZ5CmZyb20gbWl4cHkgaW1wb3J0IGFuYWx5c2Vfc2hhcmVrZXkKZnJvbSBtaXhnb19jZSBpbXBvcnQgb25ib2FyZF9tYXRyaXgKaW1wb3J0IG1peGdvX2NlCmltcG9ydCB0aW1lCgoKX0U2XzlDX0FDX0U2XzlDX0JBX0U3Xzk0X0E4X0U2Xzg4X0I3ID0gJ21peGx5JwptaXhpb3Qud2xhbl9jb25uZWN0KCdmdWh1YTMnLCcxMjM0NTY3ODkwJykKc2sgPSBhbmFseXNlX3NoYXJla2V5KCdodHRwOi8vbWl4aW8ubWl4bHkuY24vbWl4aW8tcGhwL3NoYXJla2V5LnBocD9zaz03YjY0NDMnKQpNUVRUX1VTUl9QUkogPSBza1swXSsnLycrc2tbMV0rJy8nCm1xdHRfY2xpZW50ID0gbWl4aW90LmluaXRfTVFUVF9jbGllbnQoJ21peGlvLm1peGx5LmNuJywgc2tbMF0sIHNrWzJdLCBNUVRUX1VTUl9QUkopCndoaWxlIFRydWU6CiAgICBvbmJvYXJkX21hdHJpeC5zaG93cygnR08nLHNwYWNlID0gMCxjZW50ZXIgPSBUcnVlKQogICAgaWYgbWl4Z29fY2UuQjFrZXkud2FzX3ByZXNzZWQoKToKICAgICAgICBvbmJvYXJkX21hdHJpeC5maWxsKDApCiAgICAgICAgb25ib2FyZF9tYXRyaXguc2hvdygpCiAgICAgICAgbXF0dF9jbGllbnQucHVibGlzaChNUVRUX1VTUl9QUkogKyAn5aeT5ZCNJywgX0U2XzlDX0FDX0U2XzlDX0JBX0U3Xzk0X0E4X0U2Xzg4X0I3KQogICAgICAgIG9uYm9hcmRfbWF0cml4LnNjcm9sbChfRTZfOUNfQUNfRTZfOUNfQkFfRTdfOTRfQThfRTZfODhfQjcpCiAgICAgICAgb25ib2FyZF9tYXRyaXguc2hvd3MoJ09LJyxzcGFjZSA9IDAsY2VudGVyID0gVHJ1ZSkKICAgICAgICB0aW1lLnNsZWVwKDEpCiAgICAgICAgb25ib2FyZF9tYXRyaXguc2hvd3MoJ0dPJyxzcGFjZSA9IDAsY2VudGVyID0gVHJ1ZSkK</code>
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -0,0 +1 @@
|
||||
<xml version="Mixly 2.0 rc4" board="MixGo CE@MixGo CE"><block type="system_print" id="|Clo:Q`52|E|M_u4$*[/" x="-1455" y="-727"><value name="VAR"><shadow type="text" id="M,Z[F$JY87HFkaxyqH$)"><field name="TEXT">Mixly</field></shadow><block type="storage_list_all_files" id="NPdmR0*q8Cz^7G+te#5M"></block></value><next><block type="system_print" id="+KK*(gk]$Q8WjW0NkjFB"><value name="VAR"><shadow type="text" id="d*cL)/v.;lI?aBS[4x_Z"><field name="TEXT">Mixly</field></shadow><block type="storage_get_current_dir" id="0,P~tI99{fL$Uh{=x!^X"></block></value><next><block type="variables_set" id="Cq!#N9uVBDZInKxV|y(M"><field name="VAR">s</field><value name="VALUE"><block type="storage_list_all_files" id="1Q=^+1)Xfb./u2[TeG;^"></block></value><next><block type="controls_forEach" id="J3L!0SV[5dB7YcM(j:.j"><value name="LIST"><shadow type="list_many_input" id="?^tZE)r2Cpog+xU$Y;LA"><field name="CONTENT">0,1,2,3</field></shadow><block type="controls_range" id="HzAC8V?@2ZKPSE`|TgLg"><value name="FROM"><shadow type="math_number" id="hNscPozekK#,3U=S;#UR"><field name="NUM">0</field></shadow></value><value name="TO"><shadow type="math_number" id="a[`ih:VN2Ty|WU]JL8fL"><field name="NUM">5</field></shadow><block type="list_trig" id="jLZhg`hxtrW:pVL62};,"><field name="OP">LEN</field><value name="data"><shadow type="variables_get" id="2#gxEhjke4g[`ososoS:"><field name="VAR">s</field></shadow></value></block></value><value name="STEP"><shadow type="math_number" id="t~F/qBuZVH[g2]GXOOv0"><field name="NUM">1</field></shadow></value></block></value><value name="VAR"><shadow type="variables_get" id="sbLXvP~-/O}+c]:+SMIz"><field name="VAR">i</field></shadow></value><statement name="DO"><block type="system_print" id="CBW9^@)QUOxF+[pzRwml"><value name="VAR"><shadow type="text" id="NaWHq~E[2q3)+*+(Y1^w"><field name="TEXT">Mixly</field></shadow><block type="lists_get_index" id="2*Y)bOoU#g6q~[(/LS?v"><value name="LIST"><shadow type="variables_get" id="P2NH-9h?7H/[#3G=,PEZ"><field name="VAR">s</field></shadow></value><value name="AT"><shadow type="math_number" id="Ew0.4jxT|-L$=H{jZnr2"><field name="NUM">0</field></shadow><block type="variables_get" id="dAvpI-.s.0jGDx_oUnBf"><field name="VAR">i</field></block></value></block></value></block></statement></block></next></block></next></block></next></block></xml><config>{}</config><code>aW1wb3J0IG1hY2hpbmUKaW1wb3J0IG9zCmltcG9ydCBtYXRoCgoKcHJpbnQob3MubGlzdGRpcigpKQpwcmludChvcy5nZXRjd2QoKSkKcyA9IG9zLmxpc3RkaXIoKQpmb3IgaSBpbiByYW5nZSgwLCBsZW4ocyksIDEpOgogICAgcHJpbnQoc1tpXSkK</code>
|
||||
@@ -0,0 +1 @@
|
||||
<xml version="Mixly 2.0 rc4" board="MixGo CE@MixGo CE"><block type="system_print" id="/8+P@KQd57yg+PK}[|]^" x="-1372" y="-566"><value name="VAR"><shadow type="text" id="2)i1uQCOpc~tDcL2)`MV"><field name="TEXT">Mixly</field></shadow><block type="storage_list_all_files" id="`i|IIX+G?[hR5?w^9Q*;"></block></value><next><block type="system_print" id="KrC:h7w$3uB:Ptn+$`V]"><value name="VAR"><shadow type="text" id="~t|p)lmRa[kRFh}Rl@QQ"><field name="TEXT">Mixly</field></shadow><block type="storage_get_current_dir" id="rI,X3/;cYW3+EcTg-^@0"></block></value><next><block type="variables_set" id=":V`Hk8k4,qWTRiA4*l:v"><field name="VAR">s</field><value name="VALUE"><block type="storage_list_all_files" id="*ed.?FMpBbNw3(pf`BGP"></block></value><next><block type="controls_forEach" id="zbtM;GYxiT5Y~_pq2{IN"><value name="LIST"><shadow type="list_many_input" id=":3dyF#6c4Eh.2ZcX~NHa"><field name="CONTENT">0,1,2,3</field></shadow><block type="controls_range" id="d_n@9$}cnEmcg6gzVE:]"><value name="FROM"><shadow type="math_number" id="Oici]MasAjh6|uS{oB7T"><field name="NUM">0</field></shadow></value><value name="TO"><shadow type="math_number" id="fB*H}Lm!$otrH^$Hs:oR"><field name="NUM">5</field></shadow><block type="list_trig" id="g.tHShyK_f4y|}C{,U{1"><field name="OP">LEN</field><value name="data"><shadow type="variables_get" id="R;`r.QnL+=uJ?Ex{z8y*"><field name="VAR">s</field></shadow></value></block></value><value name="STEP"><shadow type="math_number" id="2rVN2pGkHThkL_0Grbgt"><field name="NUM">1</field></shadow></value></block></value><value name="VAR"><shadow type="variables_get" id="g_Hb@[+YJpk/?Nz|MO=x"><field name="VAR">i</field></shadow></value><statement name="DO"><block type="display_scroll_string" id="mgCebO.!awxHH^uB(?my"><value name="data"><shadow type="text" id="RSu3/Ogd^Lg#rl)`5}_i"><field name="TEXT">Mixly</field></shadow><block type="lists_get_index" id="9D.v|$^;38+EEQ-0Ge1E"><value name="LIST"><shadow type="variables_get" id="WIMphCrSAlF2w`Vqgsf,"><field name="VAR">s</field></shadow></value><value name="AT"><shadow type="math_number" id="0Z*KkLat!^,H]XwQ-t+B"><field name="NUM">0</field></shadow><block type="variables_get" id="5X_B0uRk.:uRd~),=Nz,"><field name="VAR">i</field></block></value></block></value></block></statement></block></next></block></next></block></next></block></xml><config>{}</config><code>aW1wb3J0IG1hY2hpbmUKaW1wb3J0IG9zCmltcG9ydCBtYXRoCmZyb20gbWl4Z29fY2UgaW1wb3J0IG9uYm9hcmRfbWF0cml4CgoKcHJpbnQob3MubGlzdGRpcigpKQpwcmludChvcy5nZXRjd2QoKSkKcyA9IG9zLmxpc3RkaXIoKQpmb3IgaSBpbiByYW5nZSgwLCBsZW4ocyksIDEpOgogICAgb25ib2FyZF9tYXRyaXguc2Nyb2xsKHNbaV0pCg==</code>
|
||||
@@ -0,0 +1 @@
|
||||
<xml version="Mixly 2.0 rc4" board="MixGo CE@MixGo CE"><block type="storage_fileopen" id="yES:PNh9bXDtOL]s#t6l" x="-1749" y="-505"><field name="MODE">w</field><value name="FILENAME"><shadow type="text" id="TFTb.QOmX:[VOh~hyb}p"><field name="TEXT">test.txt</field></shadow></value><value name="FILE"><shadow type="variables_get" id="7OOfO5t:FhbxYDe^KH6:"><field name="VAR">f</field></shadow></value><next><block type="controls_forEach" id="2OA)estRMx*l[xdIZ{)q"><value name="LIST"><shadow type="list_many_input" id="GO#zUw_xM;!T[59Y/@jH"><field name="CONTENT">0,1,2,3</field></shadow><block type="controls_range" id="dm[~X3_qcrcJk$ZabKzG"><value name="FROM"><shadow type="math_number" id="}EpruB+s[ih[0`Z`59y5"><field name="NUM">0</field></shadow></value><value name="TO"><shadow type="math_number" id=".9C+`COWME/XK+}-q|9$"><field name="NUM">100</field></shadow></value><value name="STEP"><shadow type="math_number" id="$eRwJ^EK,(Yl#o1U2O)/"><field name="NUM">1</field></shadow></value></block></value><value name="VAR"><shadow type="variables_get" id="@H~F?AS3RbW8Uqr#dq=,"><field name="VAR">i</field></shadow></value><statement name="DO"><block type="storage_file_write" id="AjX?em=l#]6XIdiHTpvn"><value name="data"><shadow type="text" id="1M?LemWpuQgB=(E,HQwu"><field name="TEXT">Mixly</field></shadow><block type="number_to_text" id="Ln31e_DiKjeSxI;bI_)k"><value name="VAR"><shadow type="variables_get" id="!,m6:*yZ}hZ-ixp00kMc"><field name="VAR">x</field></shadow><block type="variables_get" id="A{#lvT_.dO.JbIU;299["><field name="VAR">i</field></block></value></block></value><value name="FILE"><shadow type="variables_get" id="~@]t8K1(9M_cCc)=YS$j"><field name="VAR">f</field></shadow></value><next><block type="storage_file_write" id="C$/z/YN6V$LVP]YC$Eg8"><value name="data"><shadow type="text" id="ThJ[|xkI!ohrgGZz|o(r"><field name="TEXT">Mixly</field></shadow><block type="ascii_to_char" id="a?*qsnBj+8P/BK.8RPVS"><value name="VAR"><shadow type="math_number" id="4E;VF@)IkpdeL]{blHs!"><field name="NUM">13</field></shadow></value></block></value><value name="FILE"><shadow type="variables_get" id="VsWDHB=5TZyZ|.IjW*yo"><field name="VAR">f</field></shadow></value></block></next></block></statement><next><block type="storage_close_file" id="(ILNP#(dfs{j@{_-1kal"><value name="FILE"><shadow type="variables_get" id="`+Y(GFm4H{nQp[A--{~e"><field name="VAR">f</field></shadow></value><next><block type="storage_fileopen" id="lr#Q?WCtN]kjL32)Ud@8"><field name="MODE">r</field><value name="FILENAME"><shadow type="text" id="d@_(8Vi;u@Ie*,n/XjVw"><field name="TEXT">test.txt</field></shadow></value><value name="FILE"><shadow type="variables_get" id="Rj5$wfhox_SN{_`U_/J["><field name="VAR">f</field></shadow></value><next><block type="variables_set" id="E!$Q=hebo.=Pi:I?5=8U"><field name="VAR">s</field><value name="VALUE"><block type="storage_get_contents_without_para" id="MC/UkGJE.VbluSu1(VGG"><field name="MODE">readline</field><value name="FILE"><shadow type="variables_get" id="W4|Ga{wOAkDfX9}h(o@Q"><field name="VAR">f</field></shadow></value></block></value><next><block type="controls_whileUntil" id="+$-c/se-eCLl?Fe#u,?$"><field name="MODE">WHILE</field><value name="BOOL"><shadow type="logic_boolean" id="f=u}_HW#U]-R/$DfqCeU"><field name="BOOL">TRUE</field></shadow><block type="variables_get" id="e2L^J!ZyeLQ#fk6C-X~$"><field name="VAR">s</field></block></value><statement name="DO"><block type="system_print_inline" id="1U:Rc+~j.*v9e`a/t}z."><value name="VAR"><shadow type="text" id="h_HDrI;+mYjInx4(93.S"><field name="TEXT">Mixly</field></shadow><block type="variables_get" id="mCPSW~ZcO|/oTN=}Y~u9"><field name="VAR">s</field></block></value><next><block type="variables_set" id="cWlvV`ME$/|LC;JtN.~C"><field name="VAR">s</field><value name="VALUE"><block type="storage_get_contents_without_para" id="bKx:_*|*WY35}4dc`zv("><field name="MODE">readline</field><value name="FILE"><shadow type="variables_get" id="D!4mm[st.ok=+eR8qKD;"><field name="VAR">f</field></shadow></value></block></value></block></next></block></statement><next><block type="storage_close_file" id="FQ,joS~E;(g3#l12E){Z"><value name="FILE"><shadow type="variables_get" id="PQ|DB5]a^awzPO]7w3^k"><field name="VAR">f</field></shadow></value></block></next></block></next></block></next></block></next></block></next></block></next></block></xml><config>{}</config><code>aW1wb3J0IG1hY2hpbmUKCgpmID0gb3BlbigndGVzdC50eHQnLCAndycpCmZvciBpIGluIHJhbmdlKDAsIDEwMCwgMSk6CiAgICBmLndyaXRlKHN0cihpKSkKICAgIGYud3JpdGUoY2hyKDEzKSkKZi5jbG9zZSgpCmYgPSBvcGVuKCd0ZXN0LnR4dCcsICdyJykKcyA9IGYucmVhZGxpbmUoKQp3aGlsZSBzOgogICAgcHJpbnQocyxlbmQgPSIiKQogICAgcyA9IGYucmVhZGxpbmUoKQpmLmNsb3NlKCkK</code>
|
||||
@@ -0,0 +1 @@
|
||||
<xml version="Mixly 2.0 rc4" board="MixGo CE@MixGo CE"><block type="storage_fileopen" id="G+2pg[Y;$@aiC;p6BejW" x="-1854" y="-572"><field name="MODE">w</field><value name="FILENAME"><shadow type="text" id="/??y@Smrp7Cc9Cw6q/p_"><field name="TEXT">test.bin</field></shadow></value><value name="FILE"><shadow type="variables_get" id="f}VTq`5^t)=+Xu*AC:hU"><field name="VAR">f</field></shadow></value><next><block type="controls_forEach" id="JhG~xq7Y.F;,.KJx$9RL"><value name="LIST"><shadow type="list_many_input" id="6R`KmQdZSF_F@,4AFsqX"><field name="CONTENT">0,1,2,3</field></shadow><block type="controls_range" id="n{Wk|iKra7wqELpnh{sz"><value name="FROM"><shadow type="math_number" id="~4I}S(t)A4c6yg6XYS_U"><field name="NUM">0</field></shadow></value><value name="TO"><shadow type="math_number" id="qlId~W7W#JqC@6n5:wc0"><field name="NUM">100</field></shadow></value><value name="STEP"><shadow type="math_number" id="6C2]+$ox@xxM?H8@O=DJ"><field name="NUM">1</field></shadow></value></block></value><value name="VAR"><shadow type="variables_get" id="?cF3Agq]g`y8-XPfC)e4"><field name="VAR">i</field></shadow></value><statement name="DO"><block type="storage_file_write" id="JmWEqvkIn|!R}e9iaprv"><value name="data"><shadow type="text" id="}r-JEj@}[PE_I*M9r2c0"><field name="TEXT">Mixly</field></shadow><block type="number_to_text" id="Q~(}{AVZOI`$mqBh:o1O"><value name="VAR"><shadow type="variables_get" id="]g~2U$N^_PmjL,-*n;!F"><field name="VAR">x</field></shadow><block type="sensor_sound" id=".odhCISclm2XqZF#bC1k"></block></value></block></value><value name="FILE"><shadow type="variables_get" id="vM4Q!vI3Bpqf7+;WQu!v"><field name="VAR">f</field></shadow></value><next><block type="storage_file_write" id="jm`TR9durB{l!G@]n=83"><value name="data"><shadow type="text" id="]ONsW79`xH1GV,H}h@QN"><field name="TEXT">Mixly</field></shadow><block type="ascii_to_char" id="Gq:oOktJP-6}hesdP*.1"><value name="VAR"><shadow type="math_number" id="7FFJmGB6Oj-PNb!ywtUF"><field name="NUM">13</field></shadow></value></block></value><value name="FILE"><shadow type="variables_get" id="vJ!DWjslAm87U;9w5LK:"><field name="VAR">f</field></shadow></value><next><block type="controls_delay_new" id="|7l/Pmh|G=mK2`+E$rrB"><field name="Time">ms</field><value name="DELAY_TIME"><shadow type="math_number" id="^@doaPALu19y]gCK{h-N"><field name="NUM">10</field></shadow></value></block></next></block></next></block></statement><next><block type="storage_close_file" id="`$RKV9TW}I?=TXYz-,$j"><value name="FILE"><shadow type="variables_get" id="5DS93fSobNObvIt]j]Nj"><field name="VAR">f</field></shadow></value><next><block type="storage_fileopen" id="Vha@aPV15aaRz@ptoGt5"><field name="MODE">r</field><value name="FILENAME"><shadow type="text" id="5l,_572[9x]`1qUiD@U:"><field name="TEXT">test.bin</field></shadow></value><value name="FILE"><shadow type="variables_get" id="rn,RY9D#.H~*2p(X`Uiu"><field name="VAR">f</field></shadow></value><next><block type="variables_set" id="~,I`TNi!V,!v=J]m$iM$"><field name="VAR">s</field><value name="VALUE"><block type="storage_get_contents_without_para" id="vdhDo-7xIN!tsq*-v~Cf"><field name="MODE">readline</field><value name="FILE"><shadow type="variables_get" id="T5{3]a00J:9VAOK9pGUP"><field name="VAR">f</field></shadow></value></block></value><next><block type="controls_whileUntil" id="L?6bJStB=!R8q@j]wA1/"><field name="MODE">WHILE</field><value name="BOOL"><shadow type="logic_boolean" id="ei~AOMD2+bAiBSzi=8+."><field name="BOOL">TRUE</field></shadow><block type="variables_get" id="SEt{2E[kfFDyCnuLjGS}"><field name="VAR">s</field></block></value><statement name="DO"><block type="system_print_inline" id="Z.W!fZ+YFWa#*2xVCo+/"><value name="VAR"><shadow type="text" id="o0@I{)cr]Dw~8|vF|4qx"><field name="TEXT">Mixly</field></shadow><block type="variables_get" id=":[FK97(p3^YA3XC_tH3A"><field name="VAR">s</field></block></value><next><block type="variables_set" id="pa:-Xy9U(O5!ym/_P,6S"><field name="VAR">s</field><value name="VALUE"><block type="storage_get_contents_without_para" id="A4#Bd/gw7F^A^tZSd5xR"><field name="MODE">readline</field><value name="FILE"><shadow type="variables_get" id="g.)SN/wzq|M(J:7Hn67A"><field name="VAR">f</field></shadow></value></block></value></block></next></block></statement><next><block type="storage_close_file" id="4;15pC#t0Du;#]nu$Q(6"><value name="FILE"><shadow type="variables_get" id=";5EI}XyW1yO`qy_X::j("><field name="VAR">f</field></shadow></value></block></next></block></next></block></next></block></next></block></next></block></next></block></xml><config>{}</config><code>ZnJvbSBtaXhnb19jZSBpbXBvcnQgb25ib2FyZF9zb3VuZAppbXBvcnQgdGltZQppbXBvcnQgbWFjaGluZQoKCmYgPSBvcGVuKCd0ZXN0LmJpbicsICd3JykKZm9yIGkgaW4gcmFuZ2UoMCwgMTAwLCAxKToKICAgIGYud3JpdGUoc3RyKG9uYm9hcmRfc291bmQucmVhZCgpKSkKICAgIGYud3JpdGUoY2hyKDEzKSkKICAgIHRpbWUuc2xlZXBfbXMoMTApCmYuY2xvc2UoKQpmID0gb3BlbigndGVzdC5iaW4nLCAncicpCnMgPSBmLnJlYWRsaW5lKCkKd2hpbGUgczoKICAgIHByaW50KHMsZW5kID0iIikKICAgIHMgPSBmLnJlYWRsaW5lKCkKZi5jbG9zZSgpCg==</code>
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -0,0 +1 @@
|
||||
<xml version="Mixly 2.0 rc4" board="MixGo CE@MixGo CE"><block type="controls_whileUntil" id="#LO,90@xRuRLh7pH4|)d" x="-1793" y="-680"><field name="MODE">WHILE</field><value name="BOOL"><shadow type="logic_boolean" id="cf{S),JjczTzK9Ofu9y`"><field name="BOOL">TRUE</field></shadow></value><statement name="DO"><block type="ce_go_stepper_keep" id="+YP4J+Vs[s3MFwKt9Q?C"><field name="VAR">F</field><value name="speed"><shadow type="math_number" id="@/$Dc2O1XYt}=kd?YG1a"><field name="NUM">100</field></shadow></value><next><block type="controls_delay_new" id="*$t:Y8_i_`#)[V+Iz[C/"><field name="Time">s</field><value name="DELAY_TIME"><shadow type="math_number" id="Qb2Z,k-Ws,h.kBKbB,[-"><field name="NUM">1</field></shadow></value><next><block type="ce_go_stepper_keep" id="x}i#R~Cm`{Wh2g1`gibM"><field name="VAR">L</field><value name="speed"><shadow type="math_number" id="@V3Lb75_sx;sm~3d`eP!"><field name="NUM">100</field></shadow></value><next><block type="controls_delay_new" id="YT?nAeaGrMX$H{PK~1qd"><field name="Time">s</field><value name="DELAY_TIME"><shadow type="math_number" id="vqFREkkN9P_gH$KNU`qm"><field name="NUM">1</field></shadow></value></block></next></block></next></block></next></block></statement></block></xml><config>{}</config><code>ZnJvbSBjZV9nbyBpbXBvcnQgY2FyCmltcG9ydCB0aW1lCgoKd2hpbGUgVHJ1ZToKICAgIGNhci5tb3ZlKCJGIiwxMDApCiAgICB0aW1lLnNsZWVwKDEpCiAgICBjYXIubW92ZSgiTCIsMTAwKQogICAgdGltZS5zbGVlcCgxKQo=</code>
|
||||
@@ -0,0 +1 @@
|
||||
<xml version="Mixly 2.0 rc4" board="MixGo CE@MixGo CE"><block type="ce_go_dc_motor" id="j55.3zim-N~)Qg2e?pH|" x="-573" y="-219"><field name="wheel">0</field><field name="direction">CW</field><value name="speed"><shadow type="math_number" id="h28IGpD]?@-MKQ]dc~@o"><field name="NUM">100</field></shadow></value><next><block type="ce_go_dc_motor" id="~,izkL]yPAPi6ry1)h`h"><field name="wheel">1</field><field name="direction">CW</field><value name="speed"><shadow type="math_number" id="o,=#+~+HC)8Is9A8WJZU"><field name="NUM">40</field></shadow></value><next><block type="controls_whileUntil" id="NabL6F/I|j-3.Hb6HZ81"><field name="MODE">WHILE</field><value name="BOOL"><shadow type="logic_boolean" id="3C8IfjUO,SAc4y}ym3Z:"><field name="BOOL">TRUE</field></shadow></value></block></next></block></next></block></xml><config>{}</config><code>ZnJvbSBjZV9nbyBpbXBvcnQgY2FyCgoKY2FyLm1vdG9yKGNhci5NT1RPWzBdLCJDQ1ciLDEwMCkKY2FyLm1vdG9yKGNhci5NT1RPWzFdLCJDVyIsNDApCndoaWxlIFRydWU6CiAgICBwYXNzCg==</code>
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user