Update: 合并master分支提交记录
This commit is contained in:
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
@@ -1 +1 @@
|
||||
<xml version="Mixly 3.0 rc0" board="Python ESP32-C2@MixGo MINI" shown="block"><block type="analog_ble_keyboard_init" id="hM)c[?2Wi#$sU(iiU;gm" x="-8" y="-1"><value name="kname"><shadow type="text" id="6;f$gC6Iksb7B{C0)$Zh"><field name="TEXT">ble_keyboard</field></shadow></value><next><block type="controls_whileUntil" id="gr([W7tV{b[n-L8~Svc}"><field name="MODE">WHILE</field><value name="BOOL"><shadow type="logic_boolean" id="GYqZ(GytsnLz*p0f:.Dp"><field name="BOOL">TRUE</field></shadow></value><statement name="DO"><block type="system_print" id="+7pk-l-zaVsP~3E(mBmO"><value name="VAR"><shadow type="text" id="gT1S{,(SsSBq+D1eXAzk"><field name="TEXT">Mixly</field></shadow><block type="sensor_mixgo_pin_near_single" id="]*,VN]HkDOo:bsjbla8a"></block></value><next><block type="controls_if" id="X94+~x3lmk`EyStX28UL"><value name="IF0"><block type="logic_compare" id=")1h$w+;L7=GAohz{5kxt"><field name="OP">GT</field><value name="A"><block type="sensor_mixgo_pin_near_single" id="pYbpqoz1uIP2khKz!^Xo"></block></value><value name="B"><block type="math_number" id="S!YcLq/k-IInAOl;!#5M"><field name="NUM">100</field></block></value></block></value><statement name="DO0"><block type="analog_ble_keyboard_input" id="gkOVDjHZwy?n[CGH)4wT"><field name="release">True</field><value name="special"><block type="special_key" id="Wux*SK@=+t~73ze1;`nv"><field name="op">0x08</field></block></value><value name="general"><block type="general_key" id="L!S-,zf?X9dfHBPzv32v"><field name="op">0x07</field></block></value></block></statement><next><block type="controls_delay_new" id=".6:BN$LCGT9f5u*PToRx"><field name="Time">ms</field><value name="DELAY_TIME"><shadow type="math_number" id="FQ,**3YOtw_qwx,aBeIT"><field name="NUM">10</field></shadow></value></block></next></block></next></block></statement></block></next></block></xml><config>{}</config><code>ZnJvbSBibGVfaGlkX2tleWJvYXJkIGltcG9ydCBLZXlib2FyZAppbXBvcnQgbWFjaGluZQpmcm9tIG1peGdvX21pbmkgaW1wb3J0IG9uYm9hcmRfYWxzCmltcG9ydCB0aW1lCgoKYmxlX2tleWJvYXJkPUtleWJvYXJkKCdibGVfa2V5Ym9hcmQnKQp3aGlsZSBUcnVlOgogICAgcHJpbnQob25ib2FyZF9hbHMucHNfbmwoKSkKICAgIGlmIG9uYm9hcmRfYWxzLnBzX25sKCkgPiAxMDA6CiAgICAgICAgYmxlX2tleWJvYXJkLm5vdGlmeV9oaWQoMHgwOCwweDA3LFRydWUpCiAgICB0aW1lLnNsZWVwX21zKDEwKQo=</code>
|
||||
<xml version="Mixly 3.0 rc0" board="Python ESP32-C2@MixGo MINI" shown="block"><block type="analog_ble_keyboard_init" id="10#lkmIHoEH3G,WJtzbM" x="0" y="0"><value name="kname"><shadow type="text" id="_}d.~jsr]rwag}G~cOh;"><field name="TEXT">ble_keyboard</field></shadow></value><next><block type="do_while" id="T589~[/#u`Dx;eocy@5R"><field name="type">true</field><statement name="input_data"><block type="display_scroll_string" id="EYn..n?~x2BCVyRmZU,v"><value name="data"><shadow type="text" id="76Q?i*5#vUdn+bI6*Q5x"><field name="TEXT">waitting</field></shadow></value></block></statement><value name="select_data"><block type="ble_keyboard_connect" id="lHRh=`vjZoBj*U(Q.Uha"></block></value><next><block type="esp32_onboard_music_pitch_with_time" id="viAjjNQ[EX#N2T/qN3tM"><value name="pitch"><shadow type="pins_tone_notes" id="AsYY_JwX+/}b`izqal=2"><field name="PIN">698</field></shadow></value><value name="time"><shadow type="math_number" id="(FS[T-Zb^wR*GjAMhesu"><field name="NUM">150</field></shadow></value><next><block type="esp32_onboard_music_pitch_with_time" id="AK2VkI=[B@iAv1L5Ucnt"><value name="pitch"><shadow type="pins_tone_notes" id="bFNek2T9?[Lu;$fg^}fT"><field name="PIN">523</field></shadow></value><value name="time"><shadow type="math_number" id="1gij.8pY)1iKZ+pV]Kjd"><field name="NUM">150</field></shadow></value><next><block type="controls_whileUntil" id="kEPWM4fvkz:SSKWvv7~|"><field name="MODE">WHILE</field><value name="BOOL"><shadow type="logic_boolean" id="wt(Kz3a|T+Nm[J2`C_sr"><field name="BOOL">TRUE</field></shadow></value><statement name="DO"><block type="controls_if" id="hoF;u:`=ypocLVhn#}x2"><value name="IF0"><block type="logic_compare" id="d1z_ddGt!8fL.F~;~}6Y"><field name="OP">GT</field><value name="A"><block type="sensor_mixgo_pin_near_single" id="guN!PK4LmV/{Heu8gq:g"></block></value><value name="B"><block type="math_number" id="fn?So{65p.M*3PlAx=SI"><field name="NUM">100</field></block></value></block></value><statement name="DO0"><block type="analog_ble_keyboard_input" id="[mQ]yedR$-23N{B;lt-z"><field name="release">True</field><value name="special"><block type="special_key" id="qE$DAXH#j}hF.F?O=3tK"><field name="op">0x08</field></block></value><value name="general"><block type="general_key" id="~0xnO3RD[EM_l:C15vgQ"><field name="op">0x07</field></block></value><next><block type="controls_delay_new" id="zm,ft=_)0jM/@jHLp+,M"><field name="Time">ms</field><value name="DELAY_TIME"><shadow type="math_number" id="Kfx,[l^JV*S(aV!:ADnk"><field name="NUM">300</field></shadow></value></block></next></block></statement><next><block type="controls_delay_new" id=".@_rc=6`Cu#.UzIT=,v["><field name="Time">ms</field><value name="DELAY_TIME"><shadow type="math_number" id="mA|Bs0q_W{b}J4})hk(!"><field name="NUM">100</field></shadow></value></block></next></block></statement></block></next></block></next></block></next></block></next></block></xml><config>{}</config><code>ZnJvbSBibGVfaGlkX2tleWJvYXJkIGltcG9ydCBLZXlib2FyZApmcm9tIG1peGdvX21pbmkgaW1wb3J0IG9uYm9hcmRfbWF0cml4CmZyb20gbWl4Z29fbWluaSBpbXBvcnQgb25ib2FyZF9tdXNpYwpmcm9tIG1peGdvX21pbmkgaW1wb3J0IG9uYm9hcmRfYWxzCmltcG9ydCB0aW1lCgoKYmxlX2tleWJvYXJkPUtleWJvYXJkKCdibGVfa2V5Ym9hcmQnKQp3aGlsZSBUcnVlOgogICAgb25ib2FyZF9tYXRyaXguc2Nyb2xsKCd3YWl0dGluZycpCiAgICBpZiAoYmxlX2tleWJvYXJkLmlzX2Nvbm5lY3RlZCgpKToKICAgICAgICBicmVhawpvbmJvYXJkX211c2ljLnBpdGNoX3RpbWUoNjk4LCAxNTApCm9uYm9hcmRfbXVzaWMucGl0Y2hfdGltZSg1MjMsIDE1MCkKd2hpbGUgVHJ1ZToKICAgIGlmIG9uYm9hcmRfYWxzLnBzX25sKCkgPiAxMDA6CiAgICAgICAgYmxlX2tleWJvYXJkLm5vdGlmeV9oaWQoMHgwOCwweDA3LFRydWUpCiAgICAgICAgdGltZS5zbGVlcF9tcygzMDApCiAgICB0aW1lLnNsZWVwX21zKDEwMCkK</code>
|
||||
@@ -0,0 +1 @@
|
||||
<xml version="Mixly 3.0 rc0" board="Python ESP32-C2@MixGo MINI" shown="block"><block type="analog_ble_keyboard_init" id="$#{W*PmG{S5Yw_rQkz7O" x="-47" y="4"><value name="kname"><shadow type="text" id="B~9/2K|h/gTWPzrQR|=u"><field name="TEXT">ble_keyboard</field></shadow></value><next><block type="do_while" id="VurGE57MFqhek1G!t9-{"><field name="type">true</field><statement name="input_data"><block type="display_scroll_string" id="!~H8f|W#7.FCTx!gg==k"><value name="data"><shadow type="text" id="|N:r#{Jh$6!v(mr1g6qW"><field name="TEXT">waitting</field></shadow></value></block></statement><value name="select_data"><block type="ble_keyboard_connect" id="ncq4!etx)VI8Y]m?AQf_"></block></value><next><block type="esp32_onboard_music_pitch_with_time" id="[+y?[s7aF@Xa|s/}X9!b"><value name="pitch"><shadow type="pins_tone_notes" id="JjS(SgfTlN!eC]_tNKs8"><field name="PIN">784</field></shadow></value><value name="time"><shadow type="math_number" id="B9QV`At_kWI7?!y@g:.K"><field name="NUM">150</field></shadow></value><next><block type="esp32_onboard_music_pitch_with_time" id="J^qR9)7YCg?)$qBcgyw|"><value name="pitch"><shadow type="pins_tone_notes" id="XT@kR}wJ@y6VB_)!TNJx"><field name="PIN">659</field></shadow></value><value name="time"><shadow type="math_number" id="b`CH16Le|V!}6M^@ZAQ;"><field name="NUM">150</field></shadow></value><next><block type="controls_whileUntil" id="U};S2}RdC2um|_A,-(!{"><field name="MODE">WHILE</field><value name="BOOL"><shadow type="logic_boolean" id="#dWZkQBGY}TzVkg==s9r"><field name="BOOL">TRUE</field></shadow></value><statement name="DO"><block type="controls_if" id=")Zi(S,uU2q7SSYzVvl9C"><mutation elseif="1"></mutation><value name="IF0"><block type="sensor_mixgo_button_was_pressed" id="HUp9WD{$pP87S6]?Pct;"><value name="btn"><shadow type="pins_button" id="Kk*.,sS,!bbiRAnSZX90"><field name="PIN">A1key</field></shadow></value></block></value><statement name="DO0"><block type="analog_ble_keyboard_input" id="gXV=t/#tjCO0plT8fOT3"><field name="release">True</field><value name="special"><block type="special_key" id="Wk594}n]]ax|GwA$895."><field name="op">0x00</field></block></value><value name="general"><block type="general_key" id="B64|/5M3$R|vb5qPH_rh"><field name="op">0x52</field></block></value><next><block type="system_print" id="#hu?4Oktr1oe*lpuNMI4"><value name="VAR"><shadow type="text" id="bX$C3t[dK74D=Pd.v9oA"><field name="TEXT">Mixly</field></shadow></value></block></next></block></statement><value name="IF1"><block type="sensor_mixgo_button_was_pressed" id="o?gE2*xN-E)*1Q/d-#cm"><value name="btn"><shadow type="pins_button" id=",z{R3a?iJJT~8{asKk8("><field name="PIN">A3key</field></shadow></value></block></value><statement name="DO1"><block type="analog_ble_keyboard_input" id="*ZkPn^~f21@;Y(xA1PJ:"><field name="release">True</field><value name="special"><block type="special_key" id="Um.|*v1)OR57][w*j10d"><field name="op">0x00</field></block></value><value name="general"><block type="general_key" id="?~Py=~jz.zI!=H]IUVAx"><field name="op">0x51</field></block></value></block></statement><next><block type="controls_delay_new" id="3XNDj_Z=QFR$D6+wL0@:"><field name="Time">ms</field><value name="DELAY_TIME"><shadow type="math_number" id="LbVN^u/e`oaxP4(z+j~O"><field name="NUM">10</field></shadow></value></block></next></block></statement></block></next></block></next></block></next></block></next></block></xml><config>{}</config><code>ZnJvbSBibGVfaGlkX2tleWJvYXJkIGltcG9ydCBLZXlib2FyZApmcm9tIG1peGdvX21pbmkgaW1wb3J0IG9uYm9hcmRfbWF0cml4CmZyb20gbWl4Z29fbWluaSBpbXBvcnQgb25ib2FyZF9tdXNpYwppbXBvcnQgbWl4Z29fbWluaQppbXBvcnQgbWFjaGluZQppbXBvcnQgdGltZQoKCmJsZV9rZXlib2FyZD1LZXlib2FyZCgnYmxlX2tleWJvYXJkJykKd2hpbGUgVHJ1ZToKICAgIG9uYm9hcmRfbWF0cml4LnNjcm9sbCgnd2FpdHRpbmcnKQogICAgaWYgKGJsZV9rZXlib2FyZC5pc19jb25uZWN0ZWQoKSk6CiAgICAgICAgYnJlYWsKb25ib2FyZF9tdXNpYy5waXRjaF90aW1lKDc4NCwgMTUwKQpvbmJvYXJkX211c2ljLnBpdGNoX3RpbWUoNjU5LCAxNTApCndoaWxlIFRydWU6CiAgICBpZiBtaXhnb19taW5pLkExa2V5Lndhc19wcmVzc2VkKCk6CiAgICAgICAgYmxlX2tleWJvYXJkLm5vdGlmeV9oaWQoMHgwMCwweDUyLFRydWUpCiAgICAgICAgcHJpbnQoJ01peGx5JykKICAgIGVsaWYgbWl4Z29fbWluaS5BM2tleS53YXNfcHJlc3NlZCgpOgogICAgICAgIGJsZV9rZXlib2FyZC5ub3RpZnlfaGlkKDB4MDAsMHg1MSxUcnVlKQogICAgdGltZS5zbGVlcF9tcygxMCkK</code>
|
||||
@@ -216,6 +216,10 @@
|
||||
"__file__": true,
|
||||
"__name__": "23-2-蓝牙键鼠-无线键盘.mix"
|
||||
},
|
||||
"23-2-蓝牙键鼠-翻页笔.mix": {
|
||||
"__file__": true,
|
||||
"__name__": "23-2-蓝牙键鼠-翻页笔.mix"
|
||||
},
|
||||
"24-1-无线广播-通讯测试.mix": {
|
||||
"__file__": true,
|
||||
"__name__": "24-1-无线广播-通讯测试.mix"
|
||||
|
||||
@@ -31,6 +31,41 @@ const Variables = {};
|
||||
*/
|
||||
Variables.NAME_TYPE = 'VARIABLE';
|
||||
|
||||
Variables.DATA_TYPE = [
|
||||
[Blockly.Msg.LANG_MATH_INT, 'int'],
|
||||
[Blockly.Msg.LANG_MATH_UNSIGNED_INT, 'unsigned int'],
|
||||
[Blockly.Msg.LANG_MATH_WORD, 'word'],
|
||||
[Blockly.Msg.LANG_MATH_LONG, 'long'],
|
||||
[Blockly.Msg.LANG_MATH_UNSIGNED_LONG, 'unsigned long'],
|
||||
[Blockly.Msg.LANG_MATH_FLOAT, 'float'],
|
||||
[Blockly.Msg.LANG_MATH_DOUBLE, 'double'],
|
||||
[Blockly.Msg.LANG_MATH_BOOLEAN, 'bool'],
|
||||
[Blockly.Msg.LANG_MATH_BYTE, 'byte'],
|
||||
[Blockly.Msg.LANG_MATH_CHAR, 'char'],
|
||||
[Blockly.Msg.LANG_MATH_UNSIGNED_CHAR, 'unsigned char'],
|
||||
[Blockly.Msg.LANG_MATH_STRING, 'String'],
|
||||
['uint8_t', 'uint8_t'],
|
||||
['uint16_t', 'uint16_t'],
|
||||
['uint32_t', 'uint32_t'],
|
||||
['uint64_t', 'uint64_t'],
|
||||
['int*', 'int*'],
|
||||
['unsigned int*', 'unsigned int*'],
|
||||
['word*', 'word*'],
|
||||
['long*', 'long*'],
|
||||
['unsigned long*', 'unsigned long*'],
|
||||
['float*', 'float*'],
|
||||
['double*', 'double*'],
|
||||
['bool*', 'bool*'],
|
||||
['byte*', 'byte*'],
|
||||
['char*', 'char*'],
|
||||
['unsigned char*', 'unsigned char*'],
|
||||
['String*', 'String*'],
|
||||
['uint8_t*', 'uint8_t*'],
|
||||
['uint16_t*', 'uint16_t*'],
|
||||
['uint32_t*', 'uint32_t*'],
|
||||
['uint64_t*', 'uint64_t*']
|
||||
];
|
||||
|
||||
/**
|
||||
* Find all user-created variables.
|
||||
* @param {!Blockly.Block|!Blockly.Workspace} root Root block or workspace.
|
||||
|
||||
@@ -443,25 +443,7 @@ export const procedures_defreturn = {
|
||||
this.appendValueInput('RETURN')
|
||||
.setAlign(Blockly.inputs.Align.RIGHT)
|
||||
.appendField(Blockly.Msg['PROCEDURES_DEFRETURN_RETURN'])
|
||||
.appendField(new Blockly.FieldDropdown([
|
||||
[Blockly.Msg.LANG_MATH_INT, 'int'],
|
||||
[Blockly.Msg.LANG_MATH_UNSIGNED_INT, 'unsigned int'],
|
||||
[Blockly.Msg.LANG_MATH_WORD, 'word'],
|
||||
[Blockly.Msg.LANG_MATH_LONG, 'long'],
|
||||
[Blockly.Msg.LANG_MATH_UNSIGNED_LONG, 'unsigned long'],
|
||||
[Blockly.Msg.LANG_MATH_FLOAT, 'float'],
|
||||
[Blockly.Msg.LANG_MATH_DOUBLE, 'double'],
|
||||
[Blockly.Msg.LANG_MATH_BOOLEAN, 'boolean'],
|
||||
[Blockly.Msg.LANG_MATH_BYTE, 'byte'],
|
||||
[Blockly.Msg.LANG_MATH_CHAR, 'char'],
|
||||
[Blockly.Msg.LANG_MATH_UNSIGNED_CHAR, 'unsigned char'],
|
||||
[Blockly.Msg.LANG_MATH_STRING, 'String'],
|
||||
["char*", "char*"],
|
||||
["uint8_t", "uint8_t"],
|
||||
["uint16_t", "uint16_t"],
|
||||
["uint32_t", "uint32_t"],
|
||||
["uint64_t", "uint64_t"]
|
||||
]), "TYPE");
|
||||
.appendField(new Blockly.FieldDropdown(Variables.DATA_TYPE), "TYPE");
|
||||
this.setMutator(new Blockly.icons.MutatorIcon(['procedures_mutatorarg'], this));
|
||||
if ((this.workspace.options.comments ||
|
||||
(this.workspace.options.parentWorkspace &&
|
||||
@@ -540,25 +522,7 @@ export const procedures_mutatorarg = {
|
||||
|
||||
this.appendDummyInput()
|
||||
.appendField(Blockly.Msg.PROCEDURES_BEFORE_PARAMS)
|
||||
.appendField(new Blockly.FieldDropdown([
|
||||
[Blockly.Msg.LANG_MATH_INT, 'int'],
|
||||
[Blockly.Msg.LANG_MATH_UNSIGNED_INT, 'unsigned int'],
|
||||
[Blockly.Msg.LANG_MATH_WORD, 'word'],
|
||||
[Blockly.Msg.LANG_MATH_LONG, 'long'],
|
||||
[Blockly.Msg.LANG_MATH_UNSIGNED_LONG, 'unsigned long'],
|
||||
[Blockly.Msg.LANG_MATH_FLOAT, 'float'],
|
||||
[Blockly.Msg.LANG_MATH_DOUBLE, 'double'],
|
||||
[Blockly.Msg.LANG_MATH_BOOLEAN, 'boolean'],
|
||||
[Blockly.Msg.LANG_MATH_BYTE, 'byte'],
|
||||
[Blockly.Msg.LANG_MATH_CHAR, 'char'],
|
||||
[Blockly.Msg.LANG_MATH_UNSIGNED_CHAR, 'unsigned char'],
|
||||
[Blockly.Msg.LANG_MATH_STRING, 'String'],
|
||||
["char*", "char*"],
|
||||
["uint8_t", "uint8_t"],
|
||||
["uint16_t", "uint16_t"],
|
||||
["uint32_t", "uint32_t"],
|
||||
["uint64_t", "uint64_t"]
|
||||
]), "TYPEVAR")
|
||||
.appendField(new Blockly.FieldDropdown(Variables.DATA_TYPE), "TYPEVAR")
|
||||
.appendField(field, 'NAME');
|
||||
this.setPreviousStatement(true);
|
||||
this.setNextStatement(true);
|
||||
|
||||
@@ -1,26 +1,9 @@
|
||||
import * as Blockly from 'blockly/core';
|
||||
import { Variables } from 'blockly/core';
|
||||
|
||||
|
||||
const VARIABLES_HUE = 330;
|
||||
|
||||
var DATATYPES = [
|
||||
[Blockly.Msg.LANG_MATH_INT, 'int'],
|
||||
[Blockly.Msg.LANG_MATH_UNSIGNED_INT, 'unsigned int'],
|
||||
[Blockly.Msg.LANG_MATH_WORD, 'word'],
|
||||
[Blockly.Msg.LANG_MATH_LONG, 'long'],
|
||||
[Blockly.Msg.LANG_MATH_UNSIGNED_LONG, 'unsigned long'],
|
||||
[Blockly.Msg.LANG_MATH_FLOAT, 'float'],
|
||||
[Blockly.Msg.LANG_MATH_DOUBLE, 'double'],
|
||||
[Blockly.Msg.LANG_MATH_BOOLEAN, 'boolean'],
|
||||
[Blockly.Msg.LANG_MATH_BYTE, 'byte'],
|
||||
[Blockly.Msg.LANG_MATH_CHAR, 'char'],
|
||||
[Blockly.Msg.LANG_MATH_UNSIGNED_CHAR, 'unsigned char'],
|
||||
[Blockly.Msg.LANG_MATH_STRING, 'String'],
|
||||
["char*", "char*"],
|
||||
["uint8_t", "uint8_t"],
|
||||
["uint16_t", "uint16_t"],
|
||||
["uint32_t", "uint32_t"],
|
||||
["uint64_t", "uint64_t"]
|
||||
];
|
||||
// ************************************************************************
|
||||
// THIS SECTION IS INSERTED INTO BLOCKLY BY BLOCKLYDUINO.
|
||||
export const variables_declare = {
|
||||
@@ -32,7 +15,7 @@ export const variables_declare = {
|
||||
.appendField(new Blockly.FieldDropdown([[Blockly.Msg.MIXLY_GLOBAL_VARIABLE, "global_variate"], [Blockly.Msg.MIXLY_LOCAL_VARIABLE, "local_variate"]]), "variables_type")
|
||||
.appendField(new Blockly.FieldTextInput('item'), 'VAR')
|
||||
.appendField(Blockly.Msg.MIXLY_AS)
|
||||
.appendField(new Blockly.FieldDropdown(DATATYPES), "TYPE")
|
||||
.appendField(new Blockly.FieldDropdown(Variables.DATA_TYPE), "TYPE")
|
||||
.appendField(Blockly.Msg.MIXLY_VALUE);
|
||||
this.setPreviousStatement(true);
|
||||
this.setNextStatement(true);
|
||||
@@ -101,22 +84,8 @@ export const variables_set = {
|
||||
export const variables_change = {
|
||||
init: function () {
|
||||
this.setColour(VARIABLES_HUE);
|
||||
var DATATYPES = [
|
||||
[Blockly.Msg.LANG_MATH_INT, 'int'],
|
||||
[Blockly.Msg.LANG_MATH_UNSIGNED_INT, 'unsigned int'],
|
||||
[Blockly.Msg.LANG_MATH_WORD, 'word'],
|
||||
[Blockly.Msg.LANG_MATH_LONG, 'long'],
|
||||
[Blockly.Msg.LANG_MATH_UNSIGNED_LONG, 'unsigned long'],
|
||||
[Blockly.Msg.LANG_MATH_FLOAT, 'float'],
|
||||
[Blockly.Msg.LANG_MATH_DOUBLE, 'double'],
|
||||
[Blockly.Msg.LANG_MATH_BOOLEAN, 'boolean'],
|
||||
[Blockly.Msg.LANG_MATH_BYTE, 'byte'],
|
||||
[Blockly.Msg.LANG_MATH_CHAR, 'char'],
|
||||
[Blockly.Msg.LANG_MATH_UNSIGNED_CHAR, 'unsigned char'],
|
||||
[Blockly.Msg.LANG_MATH_STRING, 'String']
|
||||
];
|
||||
this.appendValueInput('MYVALUE')
|
||||
.appendField(new Blockly.FieldDropdown(DATATYPES), 'OP');
|
||||
.appendField(new Blockly.FieldDropdown(Variables.DATA_TYPE), 'OP');
|
||||
// Assign 'this' to a variable for use in the tooltip closure below.
|
||||
this.setOutput(true);
|
||||
this.setTooltip(Blockly.Msg.MIXLY_TOOLTIP_VARIABLES_CHANGE);
|
||||
|
||||
@@ -1 +1 @@
|
||||
<xml version="Mixly 3.0 rc0" board="Python ESP32-C2@MixGo MINI" shown="block"><block type="analog_ble_keyboard_init" id="hM)c[?2Wi#$sU(iiU;gm" x="-8" y="-1"><value name="kname"><shadow type="text" id="6;f$gC6Iksb7B{C0)$Zh"><field name="TEXT">ble_keyboard</field></shadow></value><next><block type="controls_whileUntil" id="gr([W7tV{b[n-L8~Svc}"><field name="MODE">WHILE</field><value name="BOOL"><shadow type="logic_boolean" id="GYqZ(GytsnLz*p0f:.Dp"><field name="BOOL">TRUE</field></shadow></value><statement name="DO"><block type="system_print" id="+7pk-l-zaVsP~3E(mBmO"><value name="VAR"><shadow type="text" id="gT1S{,(SsSBq+D1eXAzk"><field name="TEXT">Mixly</field></shadow><block type="sensor_mixgo_pin_near_single" id="]*,VN]HkDOo:bsjbla8a"></block></value><next><block type="controls_if" id="X94+~x3lmk`EyStX28UL"><value name="IF0"><block type="logic_compare" id=")1h$w+;L7=GAohz{5kxt"><field name="OP">GT</field><value name="A"><block type="sensor_mixgo_pin_near_single" id="pYbpqoz1uIP2khKz!^Xo"></block></value><value name="B"><block type="math_number" id="S!YcLq/k-IInAOl;!#5M"><field name="NUM">100</field></block></value></block></value><statement name="DO0"><block type="analog_ble_keyboard_input" id="gkOVDjHZwy?n[CGH)4wT"><field name="release">True</field><value name="special"><block type="special_key" id="Wux*SK@=+t~73ze1;`nv"><field name="op">0x08</field></block></value><value name="general"><block type="general_key" id="L!S-,zf?X9dfHBPzv32v"><field name="op">0x07</field></block></value></block></statement><next><block type="controls_delay_new" id=".6:BN$LCGT9f5u*PToRx"><field name="Time">ms</field><value name="DELAY_TIME"><shadow type="math_number" id="FQ,**3YOtw_qwx,aBeIT"><field name="NUM">10</field></shadow></value></block></next></block></next></block></statement></block></next></block></xml><config>{}</config><code>ZnJvbSBibGVfaGlkX2tleWJvYXJkIGltcG9ydCBLZXlib2FyZAppbXBvcnQgbWFjaGluZQpmcm9tIG1peGdvX21pbmkgaW1wb3J0IG9uYm9hcmRfYWxzCmltcG9ydCB0aW1lCgoKYmxlX2tleWJvYXJkPUtleWJvYXJkKCdibGVfa2V5Ym9hcmQnKQp3aGlsZSBUcnVlOgogICAgcHJpbnQob25ib2FyZF9hbHMucHNfbmwoKSkKICAgIGlmIG9uYm9hcmRfYWxzLnBzX25sKCkgPiAxMDA6CiAgICAgICAgYmxlX2tleWJvYXJkLm5vdGlmeV9oaWQoMHgwOCwweDA3LFRydWUpCiAgICB0aW1lLnNsZWVwX21zKDEwKQo=</code>
|
||||
<xml version="Mixly 3.0 rc0" board="Python ESP32-C2@MixGo MINI" shown="block"><block type="analog_ble_keyboard_init" id="10#lkmIHoEH3G,WJtzbM" x="0" y="0"><value name="kname"><shadow type="text" id="_}d.~jsr]rwag}G~cOh;"><field name="TEXT">ble_keyboard</field></shadow></value><next><block type="do_while" id="T589~[/#u`Dx;eocy@5R"><field name="type">true</field><statement name="input_data"><block type="display_scroll_string" id="EYn..n?~x2BCVyRmZU,v"><value name="data"><shadow type="text" id="76Q?i*5#vUdn+bI6*Q5x"><field name="TEXT">waitting</field></shadow></value></block></statement><value name="select_data"><block type="ble_keyboard_connect" id="lHRh=`vjZoBj*U(Q.Uha"></block></value><next><block type="esp32_onboard_music_pitch_with_time" id="viAjjNQ[EX#N2T/qN3tM"><value name="pitch"><shadow type="pins_tone_notes" id="AsYY_JwX+/}b`izqal=2"><field name="PIN">698</field></shadow></value><value name="time"><shadow type="math_number" id="(FS[T-Zb^wR*GjAMhesu"><field name="NUM">150</field></shadow></value><next><block type="esp32_onboard_music_pitch_with_time" id="AK2VkI=[B@iAv1L5Ucnt"><value name="pitch"><shadow type="pins_tone_notes" id="bFNek2T9?[Lu;$fg^}fT"><field name="PIN">523</field></shadow></value><value name="time"><shadow type="math_number" id="1gij.8pY)1iKZ+pV]Kjd"><field name="NUM">150</field></shadow></value><next><block type="controls_whileUntil" id="kEPWM4fvkz:SSKWvv7~|"><field name="MODE">WHILE</field><value name="BOOL"><shadow type="logic_boolean" id="wt(Kz3a|T+Nm[J2`C_sr"><field name="BOOL">TRUE</field></shadow></value><statement name="DO"><block type="controls_if" id="hoF;u:`=ypocLVhn#}x2"><value name="IF0"><block type="logic_compare" id="d1z_ddGt!8fL.F~;~}6Y"><field name="OP">GT</field><value name="A"><block type="sensor_mixgo_pin_near_single" id="guN!PK4LmV/{Heu8gq:g"></block></value><value name="B"><block type="math_number" id="fn?So{65p.M*3PlAx=SI"><field name="NUM">100</field></block></value></block></value><statement name="DO0"><block type="analog_ble_keyboard_input" id="[mQ]yedR$-23N{B;lt-z"><field name="release">True</field><value name="special"><block type="special_key" id="qE$DAXH#j}hF.F?O=3tK"><field name="op">0x08</field></block></value><value name="general"><block type="general_key" id="~0xnO3RD[EM_l:C15vgQ"><field name="op">0x07</field></block></value><next><block type="controls_delay_new" id="zm,ft=_)0jM/@jHLp+,M"><field name="Time">ms</field><value name="DELAY_TIME"><shadow type="math_number" id="Kfx,[l^JV*S(aV!:ADnk"><field name="NUM">300</field></shadow></value></block></next></block></statement><next><block type="controls_delay_new" id=".@_rc=6`Cu#.UzIT=,v["><field name="Time">ms</field><value name="DELAY_TIME"><shadow type="math_number" id="mA|Bs0q_W{b}J4})hk(!"><field name="NUM">100</field></shadow></value></block></next></block></statement></block></next></block></next></block></next></block></next></block></xml><config>{}</config><code>ZnJvbSBibGVfaGlkX2tleWJvYXJkIGltcG9ydCBLZXlib2FyZApmcm9tIG1peGdvX21pbmkgaW1wb3J0IG9uYm9hcmRfbWF0cml4CmZyb20gbWl4Z29fbWluaSBpbXBvcnQgb25ib2FyZF9tdXNpYwpmcm9tIG1peGdvX21pbmkgaW1wb3J0IG9uYm9hcmRfYWxzCmltcG9ydCB0aW1lCgoKYmxlX2tleWJvYXJkPUtleWJvYXJkKCdibGVfa2V5Ym9hcmQnKQp3aGlsZSBUcnVlOgogICAgb25ib2FyZF9tYXRyaXguc2Nyb2xsKCd3YWl0dGluZycpCiAgICBpZiAoYmxlX2tleWJvYXJkLmlzX2Nvbm5lY3RlZCgpKToKICAgICAgICBicmVhawpvbmJvYXJkX211c2ljLnBpdGNoX3RpbWUoNjk4LCAxNTApCm9uYm9hcmRfbXVzaWMucGl0Y2hfdGltZSg1MjMsIDE1MCkKd2hpbGUgVHJ1ZToKICAgIGlmIG9uYm9hcmRfYWxzLnBzX25sKCkgPiAxMDA6CiAgICAgICAgYmxlX2tleWJvYXJkLm5vdGlmeV9oaWQoMHgwOCwweDA3LFRydWUpCiAgICAgICAgdGltZS5zbGVlcF9tcygzMDApCiAgICB0aW1lLnNsZWVwX21zKDEwMCkK</code>
|
||||
@@ -0,0 +1 @@
|
||||
<xml version="Mixly 3.0 rc0" board="Python ESP32-C2@MixGo MINI" shown="block"><block type="analog_ble_keyboard_init" id="$#{W*PmG{S5Yw_rQkz7O" x="-47" y="4"><value name="kname"><shadow type="text" id="B~9/2K|h/gTWPzrQR|=u"><field name="TEXT">ble_keyboard</field></shadow></value><next><block type="do_while" id="VurGE57MFqhek1G!t9-{"><field name="type">true</field><statement name="input_data"><block type="display_scroll_string" id="!~H8f|W#7.FCTx!gg==k"><value name="data"><shadow type="text" id="|N:r#{Jh$6!v(mr1g6qW"><field name="TEXT">waitting</field></shadow></value></block></statement><value name="select_data"><block type="ble_keyboard_connect" id="ncq4!etx)VI8Y]m?AQf_"></block></value><next><block type="esp32_onboard_music_pitch_with_time" id="[+y?[s7aF@Xa|s/}X9!b"><value name="pitch"><shadow type="pins_tone_notes" id="JjS(SgfTlN!eC]_tNKs8"><field name="PIN">784</field></shadow></value><value name="time"><shadow type="math_number" id="B9QV`At_kWI7?!y@g:.K"><field name="NUM">150</field></shadow></value><next><block type="esp32_onboard_music_pitch_with_time" id="J^qR9)7YCg?)$qBcgyw|"><value name="pitch"><shadow type="pins_tone_notes" id="XT@kR}wJ@y6VB_)!TNJx"><field name="PIN">659</field></shadow></value><value name="time"><shadow type="math_number" id="b`CH16Le|V!}6M^@ZAQ;"><field name="NUM">150</field></shadow></value><next><block type="controls_whileUntil" id="U};S2}RdC2um|_A,-(!{"><field name="MODE">WHILE</field><value name="BOOL"><shadow type="logic_boolean" id="#dWZkQBGY}TzVkg==s9r"><field name="BOOL">TRUE</field></shadow></value><statement name="DO"><block type="controls_if" id=")Zi(S,uU2q7SSYzVvl9C"><mutation elseif="1"></mutation><value name="IF0"><block type="sensor_mixgo_button_was_pressed" id="HUp9WD{$pP87S6]?Pct;"><value name="btn"><shadow type="pins_button" id="Kk*.,sS,!bbiRAnSZX90"><field name="PIN">A1key</field></shadow></value></block></value><statement name="DO0"><block type="analog_ble_keyboard_input" id="gXV=t/#tjCO0plT8fOT3"><field name="release">True</field><value name="special"><block type="special_key" id="Wk594}n]]ax|GwA$895."><field name="op">0x00</field></block></value><value name="general"><block type="general_key" id="B64|/5M3$R|vb5qPH_rh"><field name="op">0x52</field></block></value><next><block type="system_print" id="#hu?4Oktr1oe*lpuNMI4"><value name="VAR"><shadow type="text" id="bX$C3t[dK74D=Pd.v9oA"><field name="TEXT">Mixly</field></shadow></value></block></next></block></statement><value name="IF1"><block type="sensor_mixgo_button_was_pressed" id="o?gE2*xN-E)*1Q/d-#cm"><value name="btn"><shadow type="pins_button" id=",z{R3a?iJJT~8{asKk8("><field name="PIN">A3key</field></shadow></value></block></value><statement name="DO1"><block type="analog_ble_keyboard_input" id="*ZkPn^~f21@;Y(xA1PJ:"><field name="release">True</field><value name="special"><block type="special_key" id="Um.|*v1)OR57][w*j10d"><field name="op">0x00</field></block></value><value name="general"><block type="general_key" id="?~Py=~jz.zI!=H]IUVAx"><field name="op">0x51</field></block></value></block></statement><next><block type="controls_delay_new" id="3XNDj_Z=QFR$D6+wL0@:"><field name="Time">ms</field><value name="DELAY_TIME"><shadow type="math_number" id="LbVN^u/e`oaxP4(z+j~O"><field name="NUM">10</field></shadow></value></block></next></block></statement></block></next></block></next></block></next></block></next></block></xml><config>{}</config><code>ZnJvbSBibGVfaGlkX2tleWJvYXJkIGltcG9ydCBLZXlib2FyZApmcm9tIG1peGdvX21pbmkgaW1wb3J0IG9uYm9hcmRfbWF0cml4CmZyb20gbWl4Z29fbWluaSBpbXBvcnQgb25ib2FyZF9tdXNpYwppbXBvcnQgbWl4Z29fbWluaQppbXBvcnQgbWFjaGluZQppbXBvcnQgdGltZQoKCmJsZV9rZXlib2FyZD1LZXlib2FyZCgnYmxlX2tleWJvYXJkJykKd2hpbGUgVHJ1ZToKICAgIG9uYm9hcmRfbWF0cml4LnNjcm9sbCgnd2FpdHRpbmcnKQogICAgaWYgKGJsZV9rZXlib2FyZC5pc19jb25uZWN0ZWQoKSk6CiAgICAgICAgYnJlYWsKb25ib2FyZF9tdXNpYy5waXRjaF90aW1lKDc4NCwgMTUwKQpvbmJvYXJkX211c2ljLnBpdGNoX3RpbWUoNjU5LCAxNTApCndoaWxlIFRydWU6CiAgICBpZiBtaXhnb19taW5pLkExa2V5Lndhc19wcmVzc2VkKCk6CiAgICAgICAgYmxlX2tleWJvYXJkLm5vdGlmeV9oaWQoMHgwMCwweDUyLFRydWUpCiAgICAgICAgcHJpbnQoJ01peGx5JykKICAgIGVsaWYgbWl4Z29fbWluaS5BM2tleS53YXNfcHJlc3NlZCgpOgogICAgICAgIGJsZV9rZXlib2FyZC5ub3RpZnlfaGlkKDB4MDAsMHg1MSxUcnVlKQogICAgdGltZS5zbGVlcF9tcygxMCkK</code>
|
||||
@@ -216,6 +216,10 @@
|
||||
"__file__": true,
|
||||
"__name__": "23-2-蓝牙键鼠-无线键盘.mix"
|
||||
},
|
||||
"23-2-蓝牙键鼠-翻页笔.mix": {
|
||||
"__file__": true,
|
||||
"__name__": "23-2-蓝牙键鼠-翻页笔.mix"
|
||||
},
|
||||
"24-1-无线广播-通讯测试.mix": {
|
||||
"__file__": true,
|
||||
"__name__": "24-1-无线广播-通讯测试.mix"
|
||||
|
||||
@@ -217,6 +217,7 @@
|
||||
}
|
||||
|
||||
.blocklyMenu > .blocklyMenuItem {
|
||||
font-family: Lato, system-ui, -apple-system, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Helvetica Neue", Arial, "Noto Sans", "Liberation Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
|
||||
margin: 0px 5px;
|
||||
border-radius: 5px;
|
||||
box-sizing: content-box;
|
||||
|
||||
@@ -83,6 +83,7 @@ class Serial {
|
||||
newOption.setAttribute('disabled', true);
|
||||
$portSelector.append(newOption);
|
||||
}
|
||||
$portSelector.select2('close');
|
||||
$portSelector.trigger('change');
|
||||
let footerStatus = ports.length ? 'inline-flex' : 'none';
|
||||
$('#mixly-footer-port-div').css('display', footerStatus);
|
||||
|
||||
@@ -279,7 +279,7 @@ BU.burnWithEsptool = async (binFile, erase) => {
|
||||
});
|
||||
let chip = await esploader.main();
|
||||
} catch (error) {
|
||||
console.log(error);
|
||||
Debug.error(error);
|
||||
statusBarTerminal.addValue(`\n${error.toString()}\n`);
|
||||
await transport.disconnect();
|
||||
return;
|
||||
@@ -330,7 +330,7 @@ BU.burnWithEsptool = async (binFile, erase) => {
|
||||
await transport.disconnect();
|
||||
} catch (error) {
|
||||
layer.close(index);
|
||||
console.log(error);
|
||||
Debug.error(error);
|
||||
}
|
||||
});
|
||||
try {
|
||||
@@ -341,7 +341,7 @@ BU.burnWithEsptool = async (binFile, erase) => {
|
||||
layer.msg(Msg.Lang['shell.burnSucc'], { time: 1000 });
|
||||
statusBarTerminal.addValue(`==${Msg.Lang['shell.burnSucc']}==\n`);
|
||||
} catch (error) {
|
||||
console.log(error);
|
||||
Debug.error(error);
|
||||
statusBarTerminal.addValue(`==${Msg.Lang['shell.burnFailed']}==\n`);
|
||||
} finally {
|
||||
layer.close(index);
|
||||
@@ -396,7 +396,7 @@ BU.burnWithAdafruitEsptool = async (binFile, erase) => {
|
||||
await esploader.initialize();
|
||||
espStub = await esploader.runStub();
|
||||
} catch (error) {
|
||||
console.log(error);
|
||||
Debug.error(error);
|
||||
statusBarTerminal.addValue(`\n${error.toString()}\n`);
|
||||
await port.close();
|
||||
return;
|
||||
@@ -456,7 +456,7 @@ BU.burnWithAdafruitEsptool = async (binFile, erase) => {
|
||||
layer.msg(Msg.Lang['shell.burnSucc'], { time: 1000 });
|
||||
statusBarTerminal.addValue(`==${Msg.Lang['shell.burnSucc']}==\n`);
|
||||
} catch (error) {
|
||||
console.log(error);
|
||||
Debug.error(error);
|
||||
statusBarTerminal.addValue(`==${Msg.Lang['shell.burnFailed']}==\n`);
|
||||
} finally {
|
||||
layer.close(index);
|
||||
@@ -724,7 +724,7 @@ BU.uploadWithAmpy = (portName) => {
|
||||
} catch (error) {
|
||||
ampy.dispose();
|
||||
layer.close(index);
|
||||
console.error(error);
|
||||
Debug.error(error);
|
||||
statusBarTerminal.addValue(`${error}\n`);
|
||||
statusBarTerminal.addValue(`==${Msg.Lang['shell.uploadFailed']}==\n`);
|
||||
}
|
||||
@@ -794,7 +794,7 @@ BU.uploadWithEsptool = async (endType, obj, layerType) => {
|
||||
Serial.reset(portName, 'upload');
|
||||
mainStatusBarTabs.changeTo(portName);
|
||||
} catch (error) {
|
||||
console.log(error);
|
||||
Debug.error(error);
|
||||
layer.close(layerType);
|
||||
statusBarTerminal.addValue(`==${Msg.Lang['shell.uploadFailed']}==\n`);
|
||||
} finally {
|
||||
|
||||
Reference in New Issue
Block a user