155 lines
5.1 KiB
JavaScript
155 lines
5.1 KiB
JavaScript
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_init = {
|
||
init: function () {
|
||
this.setColour(BASE_HUE);
|
||
this.appendDummyInput()
|
||
.appendField("初始化 ");
|
||
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, "GPIO.OUT"],
|
||
[Blockly.Msg.MIXLY_Digital_PINMODEIN, "GPIO.IN"],
|
||
[Blockly.Msg.MIXLY_PINMODEPULLUP, "GPIO.IN, board.GPIO.PULL_UP"],
|
||
[Blockly.Msg.MIXLY_PINMODEPULLDOWN, "GPIO.IN, board.GPIO.PULL_DOWN"]
|
||
]), "MODE")
|
||
this.appendValueInput("PIN", Number)
|
||
.appendField("管脚")
|
||
.setCheck(Number);
|
||
this.setPreviousStatement(true, null);
|
||
this.setNextStatement(true, null);
|
||
this.setInputsInline(true);
|
||
this.setTooltip(Blockly.Msg.MIXLY_ESP32_INOUT_DIGITAL_INIT_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("值");
|
||
this.setInputsInline(true);
|
||
this.setOutput(true, [Boolean, Number]);
|
||
this.setTooltip(Blockly.Msg.MIXLY_ESP32_INOUT_DIGITAL_READ_TOOLTIP);
|
||
}
|
||
};
|
||
|
||
|
||
export const inout_pwm_init = {
|
||
init: function () {
|
||
this.setColour(BASE_HUE);
|
||
this.appendDummyInput()
|
||
.appendField("初始化 PWM输出");
|
||
this.appendValueInput("PIN", Number)
|
||
.appendField("管脚")
|
||
.setCheck(Number);
|
||
this.appendValueInput('freq')
|
||
.appendField("频率")
|
||
.setCheck(Number);
|
||
this.appendValueInput('VAR')
|
||
.appendField("定时器")
|
||
.setCheck("var");
|
||
this.setPreviousStatement(true, null);
|
||
this.setNextStatement(true, null);
|
||
this.setInputsInline(true);
|
||
this.setTooltip("初始化PWM输出设置,需要调用定时器");
|
||
}
|
||
};
|
||
|
||
export const inout_pwm_write = {
|
||
init: function () {
|
||
this.setColour(BASE_HUE);
|
||
this.appendValueInput("PIN", Number)
|
||
.appendField("PWM输出")
|
||
.setCheck(Number);
|
||
this.appendValueInput('pwm')
|
||
.appendField("占空比")
|
||
.setCheck(Number);
|
||
this.appendDummyInput()
|
||
.appendField("%");
|
||
this.setPreviousStatement(true, null);
|
||
this.setNextStatement(true, null);
|
||
this.setInputsInline(true);
|
||
this.setTooltip("PWM输出,值范围为0-100%,可以为小数");
|
||
}
|
||
};
|
||
|
||
|
||
export const inout_pin_attachInterrupt = {
|
||
init: function () {
|
||
this.setColour(BASE_HUE);
|
||
this.appendDummyInput()
|
||
.appendField("硬件中断");
|
||
this.appendValueInput("PIN", Number)
|
||
.appendField("管键")
|
||
.setCheck(Number);
|
||
this.appendDummyInput("")
|
||
.appendField(Blockly.Msg.MIXLY_MODE)
|
||
.appendField(new Blockly.FieldDropdown([[Blockly.Msg.MIXLY_RISING, "GPIO.IRQ_RISING"], [Blockly.Msg.MIXLY_FALLING, "GPIO.IRQ_FALLING"], [Blockly.Msg.MIXLY_CHANGE, "GPIO.IRQ_BOTH"]]), "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_pin_disirq = {
|
||
init: function () {
|
||
this.setColour(BASE_HUE);
|
||
this.appendDummyInput()
|
||
.appendField("取消中断");
|
||
this.appendValueInput("PIN", Number)
|
||
.appendField("管键")
|
||
.setCheck(Number);
|
||
this.setPreviousStatement(true, null);
|
||
this.setNextStatement(true, null);
|
||
this.setInputsInline(true);
|
||
this.setTooltip("取消中断");
|
||
}
|
||
};
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|