Update: 调整Arduino下变量类型定义
This commit is contained in:
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user