chao 6 miesięcy temu
rodzic
commit
4f7f2d7fee

+ 6 - 6
src/blockly/blocklyXml.js

@@ -252,16 +252,16 @@ export default {
             </block>
           </value>
         </block>
+        <block type="CocoRobo_text_ESC"></block>
+        <block type="text_append_text">
+          <value name="text_abc"><shadow type="text"><field name="TEXT">abc</field></shadow></value>
+          <value name="append_text"><shadow type="text"><field name="TEXT">def</field></shadow></value>
+        </block>
       </category>
  </xml>`
 }
 
-{/* <block type="CocoRobo_text_ESC">
-        </block>
-        <block type="text_append_text">
-        <value name="text_abc"><shadow type="text"><field name="TEXT">abc</field></shadow></value>
-        <value name="append_text"><shadow type="text"><field name="TEXT">def</field></shadow></value>
-        </block>
+{/* 
         <block type="text_is_number">
         <value name="TEXT">
          <shadow type="text">

+ 47 - 21
src/blockly/blocks/text.js

@@ -236,7 +236,7 @@ Blockly.Blocks.tuple_create_with_items_insert = {
         this.itemCount_ = 3;
         this.updateShape_();
         this.setOutput(!0);
-        this.setMutator(new Blockly.icons.MutatorIcon(["tuple_create_with_item"],this));
+        this.setMutator(new Blockly.icons.MutatorIcon(["tuple_create_with_item"], this));
         this.setTooltip(Blockly.Msg.TUPLE_CREATE_WITH_ITEMS_INSERT_TOOLTIP)
     },
     mutationToDom: function () {
@@ -313,24 +313,50 @@ Blockly.Blocks.tuple_create_with_container = {
         this.contextMenu = !1
     }
 };
-// Blockly.Blocks.tuple_create_with = {
-//     init: function () {
-//         this.jsonInit({
-//             colour: Blockly.texts.HUE,
-//             args0: [{
-//                 type: "input_value",
-//                 name: "tuple_name"
-//             }, {
-//                 type: "input_value",
-//                 name: "tuple_items"
-//             }],
-//             inputsInline: !0,
-//             nextStatement: null,
-//             previousStatement: null,
-//             helpUrl: Blockly.Msg.tuple_create_with_HELPURL,
-//             tooltip: Blockly.Msg.tuple_create_with_TOOLTIP,
-//             message0: Blockly.Msg.tuple_create_with_MESSAGE0
-//         })
-//     }
-// };
+Blockly.Blocks.tuple_create_with = {
+    init: function () {
+        this.jsonInit({
+            colour: Blockly.texts.HUE,
+            args0: [{
+                type: "input_value",
+                name: "tuple_name"
+            }, {
+                type: "input_value",
+                name: "tuple_items"
+            }],
+            inputsInline: !0,
+            nextStatement: null,
+            previousStatement: null,
+            helpUrl: Blockly.Msg.tuple_create_with_HELPURL,
+            tooltip: Blockly.Msg.tuple_create_with_TOOLTIP,
+            message0: Blockly.Msg.tuple_create_with_MESSAGE0
+        })
+    }
+};
+Blockly.Blocks.CocoRobo_text_ESC = {
+    init: function () {
+        this.jsonInit({
+            inputsInline: !0,
+            output: null,
+            colour: Blockly.Blocks.texts.HUE,
+            helpUrl: Blockly.Msg.CocoRobo_TEXT_ESC_HELPURL,
+            tooltip: Blockly.Msg.CocoRobo_TEXT_ESC_TOOLTIP,
+            message0: Blockly.Msg.CocoRobo_TEXT_ESC_MESSAGE0,
+            args0: [{
+                options: [
+                    ["\\n", "\\n"],
+                    ["\\n\\n", "\\n\\n"],
+                    ["\\r", "\\r"],
+                    ["\\r\\n", "\\r\\n"],
+                    ["\\b", "\\b"],
+                    ["\\other", "\\other"],
+                    ["\\", "\\"],
+                    ["\\\\", "\\\\"]
+                ],
+                type: "field_dropdown",
+                name: "mode"
+            }]
+        })
+    }
+};
 export default Blockly;

+ 8 - 0
src/blockly/msg/en.js

@@ -517,6 +517,14 @@ Blockly.Msg.CocoRobo_START_NEW_THREAD_HELPURL = '';
 Blockly.Msg.CocoRobo_START_NEW_THREAD_MESSAGE0 = "Thread %1";
 Blockly.Msg.CocoRobo_START_NEW_THREAD_TOOLTIP = '';
 
+// text
+Blockly.Msg.text_additional_delimiter_string = "Split string to a list";
+Blockly.Msg.text_additional_delimiter_deli = "by delimiter:";
+Blockly.Msg.text_additional_delimiter_end = "Split and generate a list";
+Blockly.Msg.TUPLE_CREATE_WITH_ITEMS_INSERT_HELPURL = 'https://CocoRobox.readthedocs.io/zh_CN/latest/CocoRoboX.html';
+Blockly.Msg.TUPLE_CREATE_WITH_ITEMS_INSERT_TOOLTIP = 'The sequence count starts from 0, and the reverse count starts from 1.';
+
+
 
 
 

+ 6 - 1
src/blockly/msg/zh-hans.js

@@ -997,10 +997,15 @@ Blockly.Msg.CocoRobo_BYTES_DECODE_MESSAGE0 = '字节 %1 转 字符串';
 Blockly.Msg.CocoRobo_BYTES_DECODE_TOOLTIP = "返回指定字节转字符串的结果";
 
 
-// 非文本转字节
+// text
 Blockly.Msg.OTHER_TO_BYTE_MESSAGE0 ='非文本转字节 %1';
 Blockly.Msg.OTHER_TO_BYTE_TOOLTIP = '';
 Blockly.Msg.OTHER_TO_BYTE_HELPURL = '';
+Blockly.Msg.text_additional_delimiter_string = "将字符串";
+Blockly.Msg.text_additional_delimiter_deli = "使用分隔符:";
+Blockly.Msg.text_additional_delimiter_end = "进行拆分并生成列表";
+Blockly.Msg.TUPLE_CREATE_WITH_ITEMS_INSERT_HELPURL ='https://CocoRobox.readthedocs.io/zh_CN/latest/CocoRoboX.html';
+Blockly.Msg.TUPLE_CREATE_WITH_ITEMS_INSERT_TOOLTIP = '正序计数从0开始,倒序计数从1开始';
 
 
 export default Blockly.Msg

+ 6 - 1
src/blockly/msg/zh-hant.js

@@ -975,10 +975,15 @@ Blockly.Msg.TEXT_FORMAT_MESSAGE0 ='格式化字串 %1 % %2';
 Blockly.Msg.TEXT_FORMAT_TOOLTIP = '使用"%"的方式格式化字元串,並返回結果';
 Blockly.Msg.TEXT_FORMAT_HELPURL = '';
 
-// 格式化字串 format 方式
+// 
 Blockly.Msg.TEXT_FORMAT2_MESSAGE0 ='格式化字串 %1 format %2';
 Blockly.Msg.TEXT_FORMAT2_TOOLTIP = '使用"format"的方式格式化字元串,並返回結果';
 Blockly.Msg.TEXT_FORMAT2_HELPURL = '';
+Blockly.Msg.text_additional_delimiter_string = "將字串";
+Blockly.Msg.text_additional_delimiter_deli = "使用分隔符:";
+Blockly.Msg.text_additional_delimiter_end = "進行拆分並生成陣列";
+Blockly.Msg.TUPLE_CREATE_WITH_ITEMS_INSERT_HELPURL ='https://CocoRobox.readthedocs.io/zh_CN/latest/CocoRoboX.html';
+Blockly.Msg.TUPLE_CREATE_WITH_ITEMS_INSERT_TOOLTIP = '正序計數從0開始,倒序計數從1開始';
 
 
 export default Blockly.Msg;

+ 2 - 1
src/blockly/pythonCode/index.js

@@ -1,8 +1,9 @@
 import basicCode from './basicCode'
 import logic from './logic'
+import text from './text'
 
 const python = {
-    ...basicCode,...logic
+    ...basicCode,...logic,...text
 }
 
 export default python

+ 57 - 0
src/blockly/pythonCode/text.js

@@ -0,0 +1,57 @@
+import { pythonGenerator } from "blockly/python";
+
+const Blockly = {
+    Python: pythonGenerator || { Msg: Object.create(null) }
+};
+Blockly.Python.text_join = function (block) {
+    // Create a string made up of any number of elements of any type.
+    var code;
+    if (block.itemCount_ == 0) {
+        return ['\'\'', Blockly.Dart.ORDER_ATOMIC];
+    } else if (block.itemCount_ == 1) {
+        var argument0 = Blockly.Dart.valueToCode(block, 'ADD0',
+            Blockly.Dart.ORDER_UNARY_POSTFIX) || '\'\'';
+        code = argument0 + '.toString()';
+        return [code, Blockly.Dart.ORDER_UNARY_POSTFIX];
+    } else {
+        code = new Array(block.itemCount_);
+        for (var n = 0; n < block.itemCount_; n++) {
+            code[n] = Blockly.Dart.valueToCode(block, 'ADD' + n,
+                Blockly.Dart.ORDER_NONE) || '\'\'';
+        }
+        code = '[' + code.join(',') + '].join()';
+        return [code, Blockly.Dart.ORDER_UNARY_POSTFIX];
+    }
+};
+
+Blockly.Python['text_split_string_by_delimiter'] = function (block) {
+    var value_string_input = Blockly.Python.valueToCode(block, 'string_input', Blockly.Python.ORDER_ATOMIC);
+    var text_delimiter = block.getFieldValue('delimiter');
+    // TODO: Assemble Python into code variable.
+    var code = value_string_input + '.split("' + text_delimiter + '")';
+    // TODO: Change ORDER_NONE to the correct strength.
+    return [code, Blockly.Python.ORDER_NONE];
+};
+Blockly.Python.text_format = function (a) {
+    var b = Blockly.Python.valueToCode(a, "FORMAT", Blockly.Python.ORDER_ATOMIC);
+    console.log(Blockly.Python.valueToCode);
+    let c = Blockly.Python.valueToCode(a, "CONTENT", Blockly.Python.ORDER_ATOMIC);
+    return [b + " % " + c, Blockly.Python.ORDER_ATOMIC]
+};
+Blockly.Python.tuple_create_with_items_insert = function(a) {
+    for (var b = Array(a.itemCount_), c = 0; c < a.itemCount_; c++)
+        b[c] = Blockly.Python.valueToCode(a, "ADD" + c, Blockly.Python.ORDER_NONE) || "None";
+    return [1 == a.itemCount_ ? "(" + b[0] + ",)" : "(" + b.join(", ") + ")", Blockly.Python.ORDER_ATOMIC]
+};
+
+Blockly.Python.text_format2 = function (a) {
+    var b = Blockly.Python.valueToCode(a, "FORMAT", Blockly.Python.ORDER_ATOMIC);
+    a = Blockly.Python.valueToCode(a, "CONTENT", Blockly.Python.ORDER_ATOMIC);
+    return [b + ".format" + a, Blockly.Python.ORDER_ATOMIC]
+};
+Blockly.Python.CocoRobo_text_ESC = function(a) {
+    // Blockly.Python.definitions_.import_usocket = "import usocket";
+    return ['"' + a.getFieldValue("mode") + '"', Blockly.Python.ORDER_ATOMIC]
+};
+
+export default Blockly;

+ 1 - 1
src/components/BlocklyComponent.vue

@@ -110,7 +110,7 @@ const initBlockly = (xml) => {
   });
   // 添加事件监听器
   workspace.value.addChangeListener(addBlocklyEventListeners)
-  console.log('blockly init success', workspace.value);
+  // console.log('blockly init success', workspace.value);
   window.blockly = workspace.value
   window.Blockly = Blockly
 }

+ 1 - 1
src/components/device/device.vue

@@ -59,7 +59,7 @@ const source = cancelToken.source();
 const code = Blocklys.useyPythonCodeStore()
 
 onMounted(() => {
-    wsconect()
+    // wsconect()
     deviceType.value = localStorage.getItem('deviceType')
 })
 const wsconect = () => {

+ 2 - 3
src/components/device/deviceHeader.vue

@@ -90,7 +90,6 @@ const verBool = ref(false)
 const verStr = ref('')
 const downloadLink = ref('')
 onMounted(() => {
-    console.log("navigator.userAgent")
     osSupportDetect(platform.os.family, platform.os.version)
     browserDetect(platform.name, platform.version)
     downloadLink.value = platform.os.toString().indexOf("64-bit") != -1 ?
@@ -153,7 +152,7 @@ const browserDetect = (name, version) => {
 }
 
 const uploaderVersion = () => {
-    console.log(uploader.uploaders.version, server.uploader)
+    // console.log(uploader.uploaders.version, server.uploader)
     let ver = uploader.uploaders.version
     if (!ver) {
         version.value = ""
@@ -183,7 +182,7 @@ const compareVersions = (v1, v2) => {
     return 0;
 };
 watchEffect(() => {
-    console.log(uploader.uploaders.status)
+    // console.log(uploader.uploaders.status)
     version.value = uploader.uploaders.version
 })
 </script>