143 lines
4.6 KiB
JavaScript
143 lines
4.6 KiB
JavaScript
/**
|
|
* @license Licensed under the Apache License, Version 2.0 (the "License"):
|
|
* http://www.apache.org/licenses/LICENSE-2.0
|
|
*/
|
|
|
|
/**
|
|
* @fileoverview Blocks for Arduino Time functions.
|
|
* The arduino built in functions syntax can be found in
|
|
* http://arduino.cc/en/Reference/HomePage
|
|
*/
|
|
import Blockly from "blockly";
|
|
import { getColour } from "../helpers/colour";
|
|
import * as Types from "../helpers/types";
|
|
|
|
Blockly.Blocks["time_delay"] = {
|
|
/**
|
|
* Delay block definition
|
|
* @this Blockly.Block
|
|
*/
|
|
init: function () {
|
|
this.setHelpUrl("http://arduino.cc/en/Reference/Delay");
|
|
this.setColour(getColour().time);
|
|
this.appendValueInput("DELAY_TIME_MILI")
|
|
.setCheck(Types.NUMBER.checkList)
|
|
.appendField(Blockly.Msg.ARD_TIME_DELAY);
|
|
this.appendDummyInput().appendField(Blockly.Msg.ARD_TIME_MS);
|
|
this.setInputsInline(true);
|
|
this.setPreviousStatement(true, null);
|
|
this.setNextStatement(true, null);
|
|
this.setTooltip(Blockly.Msg.ARD_TIME_DELAY_TIP);
|
|
},
|
|
};
|
|
|
|
Blockly.Blocks["time_delaymicros"] = {
|
|
/**
|
|
* delayMicroseconds block definition
|
|
* @this Blockly.Block
|
|
*/
|
|
init: function () {
|
|
this.setHelpUrl("http://arduino.cc/en/Reference/DelayMicroseconds");
|
|
this.setColour(getColour().time);
|
|
this.appendValueInput("DELAY_TIME_MICRO")
|
|
.setCheck(Types.NUMBER.checkList)
|
|
.appendField(Blockly.Msg.ARD_TIME_DELAY);
|
|
this.appendDummyInput().appendField(Blockly.Msg.ARD_TIME_DELAY_MICROS);
|
|
this.setInputsInline(true);
|
|
this.setPreviousStatement(true, null);
|
|
this.setNextStatement(true, null);
|
|
this.setTooltip(Blockly.Msg.ARD_TIME_DELAY_MICRO_TIP);
|
|
},
|
|
};
|
|
|
|
Blockly.Blocks["time_millis"] = {
|
|
/**
|
|
* Elapsed time in milliseconds block definition
|
|
* @this Blockly.Block
|
|
*/
|
|
init: function () {
|
|
this.setHelpUrl("http://arduino.cc/en/Reference/Millis");
|
|
this.setColour(getColour().time);
|
|
this.appendDummyInput().appendField(Blockly.Msg.ARD_TIME_MILLIS);
|
|
this.setOutput(true, Types.LARGE_NUMBER.typeId);
|
|
this.setTooltip(Blockly.Msg.ARD_TIME_MILLIS_TIP);
|
|
},
|
|
/** @return {string} The type of return value for the block, an integer. */
|
|
getBlockType: function () {
|
|
return Blockly.Types.LARGE_NUMBER;
|
|
},
|
|
};
|
|
|
|
Blockly.Blocks["time_micros"] = {
|
|
/**
|
|
* Elapsed time in microseconds block definition
|
|
* @this Blockly.Block
|
|
*/
|
|
init: function () {
|
|
this.setHelpUrl("http://arduino.cc/en/Reference/Micros");
|
|
this.setColour(getColour().time);
|
|
this.appendDummyInput().appendField(Blockly.Msg.ARD_TIME_MICROS);
|
|
this.setOutput(true, Types.LARGE_NUMBER.typeId);
|
|
this.setTooltip(Blockly.Msg.ARD_TIME_MICROS_TIP);
|
|
},
|
|
/**
|
|
* Should be a long (32bit), but for for now an int.
|
|
* @return {string} The type of return value for the block, an integer.
|
|
*/
|
|
getBlockType: function () {
|
|
return Types.LARGE_NUMBER;
|
|
},
|
|
};
|
|
|
|
Blockly.Blocks["infinite_loop"] = {
|
|
/**
|
|
* Waits forever, end of program.
|
|
* @this Blockly.Block
|
|
*/
|
|
init: function () {
|
|
this.setHelpUrl("");
|
|
this.setColour(getColour().time);
|
|
this.appendDummyInput().appendField(Blockly.Msg.ARD_TIME_INF);
|
|
this.setInputsInline(true);
|
|
this.setPreviousStatement(true);
|
|
this.setTooltip(Blockly.Msg.ARD_TIME_INF_TIP);
|
|
},
|
|
};
|
|
|
|
// Blockly.Blocks["sensebox_interval_timer"] = {
|
|
// init: function () {
|
|
// this.setTooltip(Blockly.Msg.senseBox_interval_timer_tip);
|
|
// this.setInputsInline(true);
|
|
// this.setHelpUrl("");
|
|
// this.setColour(getColour().time);
|
|
// this.appendDummyInput().appendField(Blockly.Msg.senseBox_interval_timer);
|
|
// this.appendDummyInput()
|
|
// .setAlign(Blockly.ALIGN_LEFT)
|
|
// .appendField(new Blockly.FieldTextInput("10000"), "interval")
|
|
// .appendField(Blockly.Msg.senseBox_interval);
|
|
// this.appendStatementInput("DO").setCheck(null);
|
|
// this.setPreviousStatement(true, null);
|
|
// this.setNextStatement(true, null);
|
|
// },
|
|
// };
|
|
|
|
Blockly.Blocks["sensebox_interval_timer"] = {
|
|
init: function () {
|
|
this.setTooltip(Blockly.Msg.senseBox_interval_timer_tip);
|
|
this.setInputsInline(true);
|
|
this.setHelpUrl("");
|
|
this.setColour(getColour().time);
|
|
this.appendDummyInput()
|
|
.appendField(Blockly.Msg.senseBox_interval_timer)
|
|
.appendField(new Blockly.FieldTextInput("Interval"), "name");
|
|
this.appendDummyInput()
|
|
.appendField(Blockly.Msg.senseBox_interval_time)
|
|
.setAlign(Blockly.ALIGN_LEFT)
|
|
.appendField(new Blockly.FieldTextInput("10000"), "interval")
|
|
.appendField(Blockly.Msg.senseBox_interval);
|
|
this.appendStatementInput("DO").setCheck(null);
|
|
this.setPreviousStatement(true, null);
|
|
this.setNextStatement(true, null);
|
|
},
|
|
};
|