Update: 调整Arduino下变量类型定义

This commit is contained in:
王立帮
2024-12-17 17:14:06 +08:00
parent 8f10705d15
commit 4c4cee635a
7 changed files with 45 additions and 76 deletions

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

View File

@@ -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.

View File

@@ -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);

View File

@@ -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);

View File

@@ -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;