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