131 lines
4.2 KiB
JavaScript
131 lines
4.2 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);
|
|
}
|
|
};
|