123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291 |
- /**
- * @license Licensed under the Apache License, Version 2.0 (the "License"):
- * http://www.apache.org/licenses/LICENSE-2.0
- */
- /**
- * @fileoverview Ardublockly JavaScript for the Blockly resources and bindings.
- */
- 'use strict';
- goog.provide('Blockly.Blocks.env');
- goog.require('Blockly.Blocks');
- Blockly.Blocks.env.HUE = 200;
- var colorENV = 200;
- Blockly.Blocks['env_init'] = {
- init: function() {
- this.appendDummyInput()
- // .appendField(new Blockly.FieldImage("http://cocorobo.cn/cocoblockly/dev/img/blocks/cocomod_blockly_envSensor.png", 140, 40, "15"));
- .appendField(new Blockly.FieldImage("./../blockly/media/main-env.png", 50, 40, "15"));
- this.appendDummyInput()
- .appendField(Blockly.Msg.ENV_SETUP);
- // this.appendDummyInput()
- // .appendField(Blockly.Msg.ENV_RED_PIN)
- // .appendField(new Blockly.FieldNumber(9),"env_red_pin")
- // .appendField(Blockly.Msg.ENV_GREEN_PIN)
- // .appendField(new Blockly.FieldNumber(10),"env_green_pin")
- // .appendField(Blockly.Msg.ENV_BLUE_PIN)
- // .appendField(new Blockly.FieldNumber(11),"env_blue_pin")
- this.setColour(Blockly.Blocks.env.HUE);
- this.setTooltip('');
- this.setHelpUrl('');
- }
- };
- // Blockly.Blocks['iot_temp_unit'] = {
- // init: function() {
- // this.appendDummyInput()
- // .appendField("Set temperature unit as ")
- // .appendField(new Blockly.FieldDropdown([["Fahrenheit","f"], ["Celsius","c"]]), "temp_unit");
- // this.setPreviousStatement(true, null);
- // this.setNextStatement(true, null);
- // this.setColour(230);
- // this.setTooltip("");
- // this.setHelpUrl("");
- // }
- // };
- Blockly.Blocks['iot_read_temp'] = {
- init: function() {
- this.appendDummyInput()
- .appendField(Blockly.Msg.ENV_SENSOR_READTEMP)
- //.appendField(new Blockly.FieldTextInput("4"),"env_sensor_temp");
- .appendField(new Blockly.FieldDropdown(
- Blockly.Python.Boards.selected.digitalPins), "env_sensor_temp");
- this.appendDummyInput()
- .appendField(Blockly.Msg.ENV_SENSOR_TEMPUNIT)
- .appendField(new Blockly.FieldDropdown([
- [Blockly.Msg.ENV_SENSOR_UNITC, "c"],
- [Blockly.Msg.ENV_SENSOR_UNITF, "f"]
- ]), "temp_unit");
- this.setOutput(true, "Number");
- this.setColour(Blockly.Blocks.env.HUE);
- this.setTooltip("");
- this.setHelpUrl("");
- },
- getBlockType: function() {
- return Blockly.Types.identifyNumber('1.1');
- }
- };
- // Blockly.Blocks['iot_buzzer_alarm'] = {
- // init: function() {
- // this.appendDummyInput()
- // .appendField("Buzzer Alarm -")
- // .appendField(new Blockly.FieldNumber(1000, 0, Infinity, 1), "alarm_time")
- // .appendField("millisecond");
- // this.setPreviousStatement(true, null);
- // this.setNextStatement(true, null);
- // this.setColour(135);
- // this.setTooltip("");
- // this.setHelpUrl("");
- // }
- // };
- Blockly.Blocks['iot_read_val'] = {
- init: function() {
- this.appendDummyInput()
- .appendField(Blockly.Msg.ENV_SENSOR_READ)
- .appendField(new Blockly.FieldDropdown([
- [Blockly.Msg.ENV_SENSOR_SOUND, "mic"],
- [Blockly.Msg.ENV_SENSOR_LIGHT, "light"],
- [Blockly.Msg.ENV_SENSOR_HUMIDITY, "humid"]
- ]), "val_type");
- this.setOutput(true, "Number");
- this.setColour(Blockly.Blocks.env.HUE);
- this.setTooltip("");
- this.setHelpUrl("");
- },
- getBlockType: function() {
- var numString;
- if (this.getFieldValue('val_type') === "humid") {
- numString = '1.1';
- } else {
- numString = '1';
- }
- return Blockly.Types.identifyNumber(numString);
- }
- };
- Blockly.Blocks['iot_read_mic'] = {
- init: function() {
- this.appendDummyInput()
- .appendField(Blockly.Msg.ENV_SENSOR_MIC)
- //.appendField(new Blockly.FieldTextInput("A2"),"env_sensor_mic");
- .appendField(new Blockly.FieldDropdown(
- Blockly.Python.Boards.selected.analogPins), 'env_sensor_mic');
- this.setOutput(true, "Number");
- this.setColour(Blockly.Blocks.env.HUE);
- this.setTooltip("");
- this.setHelpUrl("");
- },
- updateFields: function() {
- Blockly.Python.Boards.refreshBlockFieldDropdown(this, 'env_sensor_mic', 'pwmPins');
- },
- getBlockType: function() {
- var numString = '1';
- return Blockly.Types.identifyNumber(numString);
- }
- };
- Blockly.Blocks['iot_read_light'] = {
- init: function() {
- this.appendDummyInput()
- .appendField(Blockly.Msg.ENV_SENSOR_LIGHT)
- // .appendField(new Blockly.FieldTextInput("A1"),"env_sensor_light");
- .appendField(new Blockly.FieldDropdown(
- Blockly.Python.Boards.selected.analogPins), "env_sensor_light");
- this.setOutput(true, "Number");
- this.setColour(Blockly.Blocks.env.HUE);
- this.setTooltip("");
- this.setHelpUrl("");
- },
- updateFields: function() {
- Blockly.Python.Boards.refreshBlockFieldDropdown(this, 'env_sensor_light', 'pwmPins');
- },
- getBlockType: function() {
- var numString = '1';
- return Blockly.Types.identifyNumber(numString);
- }
- };
- Blockly.Blocks['iot_read_humid'] = {
- init: function() {
- this.appendDummyInput()
- .appendField(Blockly.Msg.ENV_SENSOR_HUMID)
- //.appendField(new Blockly.FieldTextInput("4"),"env_sensor_humid");
- .appendField(new Blockly.FieldDropdown(
- Blockly.Python.Boards.selected.digitalPins), "env_sensor_humid");
- this.setOutput(true, "Number");
- this.setColour(Blockly.Blocks.env.HUE);
- this.setTooltip("");
- this.setHelpUrl("");
- },
- updateFields: function() {
- Blockly.Python.Boards.refreshBlockFieldDropdown(this, 'env_sensor_humid', 'pwmPins');
- },
- getBlockType: function() {
- var numString = '1.1';
- return Blockly.Types.identifyNumber(numString);
- }
- };
- // Blockly.Blocks['iot_threshold_controller'] = {
- // init: function() {
- // this.appendDummyInput()
- // .appendField("When the critical value of ")
- // .appendField(new Blockly.FieldDropdown([["UV","uv"], ["Light","light"], ["Temperature","temp"], ["Humidity","humid"]]), "threshold_types")
- // .appendField("reaches")
- // .appendField(new Blockly.FieldTextInput("60"), "threshold_val");
- // this.appendStatementInput("Do")
- // .setCheck(null)
- // .appendField("Do");
- // this.setPreviousStatement(true, null);
- // this.setNextStatement(true, null);
- // this.setColour(135);
- // this.setTooltip("");
- // this.setHelpUrl("");
- // }
- // };
- Blockly.Blocks['iot_buzzer'] = {
- init: function() {
- this.interpolate_(Blockly.Msg.BASIC_SETTONE, [{
- "type": "field_dropdown",
- "name": "PINSNUM",
- "options": [
- ["7", "7"]
- ]
- },
- {
- "type": "input_value",
- "name": "FREQUENCY",
- "check": Blockly.Types.NUMBER.checkList
- }
- ]);
- this.setInputsInline(true);
- this.setPreviousStatement(true);
- this.setNextStatement(true);
- this.setColour(Blockly.Blocks.env.HUE);
- this.setTooltip(Blockly.Msg.BASIC_TONE_TIP);
- this.setHelpUrl('https://www.arduino.cc/en/Reference/tone');
- },
- onchange: function() {
- var freq = Blockly.Python.valueToCode(this, "FREQUENCY", Blockly.Python.ORDER_ATOMIC)
- if (freq < 31 || freq > 65535) {
- this.setWarningText(Blockly.Msg.BASIC_TONE_WARNING, 'io_tone');
- } else {
- this.setWarningText(null, 'io_tone');
- }
- }
- };
- Blockly.Blocks['iot_nobuzzer'] = {
- init: function() {
- this.interpolate_(Blockly.Msg.BASIC_NOTONE, [{
- "type": "field_dropdown",
- "name": "PINSNUM",
- "options": [
- ["7", "7"]
- ]
- }]);
- this.setInputsInline(true);
- this.setPreviousStatement(true);
- this.setNextStatement(true);
- this.setColour(Blockly.Blocks.env.HUE);
- this.setTooltip(Blockly.Msg.BASIC_NOTONE_TIP);
- this.setHelpUrl('https://www.arduino.cc/en/Reference/noTone');
- }
- };
- // Blockly.Blocks['iot_setup_rgb'] = {
- // init: function() {
- // this.appendValueInput('RED')
- // .setCheck(Blockly.Types.NUMBER.checkList)
- // .setAlign(Blockly.ALIGN_RIGHT)
- // .appendField(Blockly.Msg.COLOUR_RGB_TITLE)
- // .appendField(Blockly.Msg.COLOUR_RGB_RED);
- // this.appendValueInput('GREEN')
- // .setCheck(Blockly.Types.NUMBER.checkList)
- // .setAlign(Blockly.ALIGN_RIGHT)
- // .appendField(Blockly.Msg.COLOUR_RGB_GREEN);
- // this.appendValueInput('BLUE')
- // .setCheck(Blockly.Types.NUMBER.checkList)
- // .setAlign(Blockly.ALIGN_RIGHT)
- // .appendField(Blockly.Msg.COLOUR_RGB_BLUE);
- // this.setOutput(true, 'Colour');
- // this.setTooltip(Blockly.Msg.COLOUR_RGB_TOOLTIP);
- // this.setHelpUrl(Blockly.Msg.COLOUR_RGB_HELPURL);
- // this.setColour(135);
- // }
- // };
- Blockly.Blocks['iot_set_rgb'] = {
- init: function() {
- this.appendDummyInput()
- .appendField(Blockly.Msg.ENV_SENSOR_SET_RGB);
- this.appendValueInput("RED_VAL")
- .setCheck(null)
- .appendField(Blockly.Msg.ENV_SETRGB_R)
- .appendField(new Blockly.FieldDropdown(
- Blockly.Python.Boards.selected.digitalPins), 'env_sensor_rgbPin_r');
- this.appendValueInput("GREEN_VAL")
- .setCheck(null)
- .appendField(Blockly.Msg.ENV_SETRGB_G)
- .appendField(new Blockly.FieldDropdown(
- Blockly.Python.Boards.selected.digitalPins), 'env_sensor_rgbPin_g');
- this.appendValueInput("BLUE_VAL")
- .setCheck(null)
- .appendField(Blockly.Msg.ENV_SETRGB_B)
- .appendField(new Blockly.FieldDropdown(
- Blockly.Python.Boards.selected.digitalPins), 'env_sensor_rgbPin_b');
- this.setInputsInline(false);
- this.setPreviousStatement(true);
- this.setNextStatement(true);
- this.setColour(Blockly.Blocks.env.HUE);
- this.setTooltip("");
- this.setHelpUrl("");
- }
- };
|