Files
mixly3/boards/default_src/micropython/blocks/sensor_extern.js
2025-09-06 15:45:45 +08:00

2418 lines
92 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
import * as Blockly from 'blockly/core';
import { Profile } from 'mixly';
const SENSOR_EXTERN_HUE = '#A58C5B'; //'#9e77c9'//40;
export const sensor_mixgo_extern_button_is_pressed = {
init: function () {
this.setColour(SENSOR_EXTERN_HUE);
this.appendValueInput("PIN", Number)
.appendField(Blockly.Msg.MIXLY_BUTTON)
.appendField(Blockly.Msg.MIXLY_PIN)
.setCheck(Number);
this.appendDummyInput()
.appendField(Blockly.Msg.MIXLY_IS_PRESSED);
this.appendValueInput("STAT")
.appendField(Blockly.Msg.MIXLY_ELECLEVEL);
this.setOutput(true, Boolean);
this.setInputsInline(true);
this.setTooltip(Blockly.Msg.MIXLY_SENOR_IS_PRESSED);
}
};
export const sensor_mixgo_extern_button_was_pressed = {
init: function () {
this.setColour(SENSOR_EXTERN_HUE);
this.appendValueInput("PIN", Number)
.appendField(Blockly.Msg.MIXLY_BUTTON)
.appendField(Blockly.Msg.MIXLY_PIN)
.setCheck(Number);
this.appendDummyInput()
.appendField(Blockly.Msg.MIXLY_WAS_PRESSED);
this.appendValueInput("STAT")
.appendField(Blockly.Msg.MIXLY_ELECLEVEL);
this.setOutput(true, Boolean);
this.setInputsInline(true);
this.setTooltip(Blockly.Msg.MIXLY_SENOR_WAS_PRESSED);
}
};
export const sensor_mixgo_extern_button_get_presses = {
init: function () {
this.setColour(SENSOR_EXTERN_HUE);
this.appendValueInput("PIN", Number)
.appendField(Blockly.Msg.MIXLY_BUTTON)
.appendField(Blockly.Msg.MIXLY_PIN)
.setCheck(Number);
this.appendDummyInput()
.appendField(Blockly.Msg.MIXLY_GET_PRESSES);
this.appendValueInput('VAR')
.setCheck(Number)
.appendField(Blockly.Msg.MIXLY_GET_PRESSES_TIME);
this.setOutput(true, Number);
this.setInputsInline(true);
this.setTooltip(Blockly.Msg.PROCEDURES_DEFRETURN_RETURN + Blockly.Msg.MIXLY_BUTTON + Blockly.Msg.MIXLY_GET_PRESSES);
}
};
export const sensor_mixgo_extern_button_attachInterrupt = {
init: function () {
this.setColour(SENSOR_EXTERN_HUE);
this.appendValueInput("PIN", Number)
.appendField(Blockly.Msg.MIXLY_BUTTON)
.appendField(Blockly.Msg.MIXLY_PIN)
.setCheck(Number);
this.appendDummyInput("")
.appendField(Blockly.Msg.MIXLY_MODE)
.appendField(new Blockly.FieldDropdown([
[Blockly.Msg.MIXLY_RISING, "machine.Pin.IRQ_RISING"],
[Blockly.Msg.MIXLY_FALLING, "machine.Pin.IRQ_FALLING"],
[Blockly.Msg.MIXLY_CHANGE, "(machine.Pin.IRQ_RISING | machine.Pin.IRQ_FALLING)"]
]), "mode");
this.appendValueInput('DO')
.appendField(Blockly.Msg.MIXLY_DO)
this.setPreviousStatement(true);
this.setNextStatement(true);
this.setTooltip(Blockly.Msg.MIXLY_TOOLTIP_INOUT_ATTACHINTERRUPT);
}
};
export const sensor_mpu9250_attachGestureInterrupt = {
init: function () {
this.setColour(SENSOR_EXTERN_HUE);
this.appendValueInput('SUB')
.appendField("MPU9250")
.setCheck("var");
this.appendDummyInput("")
.appendField(Blockly.Msg.MIXLY_MICROBIT_JS_CURRENT_GESTURE)
.appendField(new Blockly.FieldDropdown([
[Blockly.Msg.MIXLY_MICROBIT_shake, "shake"],
[Blockly.Msg.MIXLY_UP, "up"],
[Blockly.Msg.MIXLY_DOWN, "down"],
[Blockly.Msg.MIXLY_LEFT, "left"],
[Blockly.Msg.MIXLY_RIGHT, "right"],
[Blockly.Msg.MIXLY_MICROBIT_face_up, "face up"],
[Blockly.Msg.MIXLY_MICROBIT_face_down, "face down"],
[Blockly.Msg.MIXLY_MICROBIT_freefall, "freefall"],
["3g", "3g"], ["6g", "6g"], ["8g", "8g"]
]), "gesture");
this.appendStatementInput('DO')
.appendField(Blockly.Msg.MIXLY_DO);
this.setPreviousStatement(true);
this.setNextStatement(true);
var thisBlock = this;
this.setTooltip(function () {
var mode = thisBlock.getFieldValue('gesture');
var mode0 = Blockly.Msg.MIXLY_MICROBIT_JS_CURRENT;
var mode1 = Blockly.Msg.MSG.catSensor;
var mode2 = Blockly.Msg.MIXLY_MICROBIT_JS_STATE;
var mode3 = Blockly.Msg.MIXLY_MICROBIT_PERFORMANCE
var TOOLTIPS = {
'shake': Blockly.Msg.MIXLY_MICROBIT_shake,
'up': Blockly.Msg.MIXLY_UP,
'down': Blockly.Msg.MIXLY_DOWN,
'left': Blockly.Msg.MIXLY_LEFT,
'right': Blockly.Msg.MIXLY_RIGHT,
'face up': Blockly.Msg.MIXLY_MICROBIT_face_up,
'face down': Blockly.Msg.MIXLY_MICROBIT_face_down,
'freefall': Blockly.Msg.MIXLY_MICROBIT_freefall,
'3g': '3g',
'6g': '6g',
'8g': '8g'
};
return mode0 + mode1 + mode2 + TOOLTIPS[mode] + mode3;
});
}
};
export const sensor_adxl345_get_acceleration = {
init: function () {
this.setColour(SENSOR_EXTERN_HUE);
this.appendValueInput('SUB')
.appendField(Blockly.Msg.MIXLY_ADXL345)
.setCheck("var");
this.appendDummyInput()
.appendField(Blockly.Msg.MIXLY_MICROBIT_JS_ACCELERATION)
.appendField(new Blockly.FieldDropdown([
["x", "x"],
["y", "y"],
["z", "z"],
["(x,y,z)", "values"]
]), "key");
this.setOutput(true, Number);
this.setInputsInline(true);
this.setTooltip(Blockly.Msg.MIXLY_MICROBIT_JS_ACCELERATION);
var thisBlock = this;
this.setTooltip(function () {
var mode = thisBlock.getFieldValue('key');
var mode0 = Blockly.Msg.MIXLY_MICROBIT_PY_STORAGE_GET;
var mode1 = Blockly.Msg.MIXLY_MICROBIT_Direction;
var mode2 = Blockly.Msg.MIXLY_MICROBIT_JS_ACCELERATION1;
var TOOLTIPS = {
'x': 'x',
'y': 'y',
'z': 'z',
'(x,y,z)': Blockly.Msg.MIXLY_MICROBIT_Shiliang_Direction,
};
return mode0 + TOOLTIPS[mode] + mode1 + mode2;
});
}
};
export const sensor_light_level = {
init: function () {
this.setColour(SENSOR_EXTERN_HUE);
this.appendDummyInput()
.appendField(Blockly.Msg.MIXLY_MICROBIT_JS_LIGHT_LEVEL)
this.setOutput(true, Number);
this.setInputsInline(true);
this.setTooltip(Blockly.Msg.MIXLY_ESP32_SENSOR_LIGHT_LEVEL_TOOLTIP);
}
};
export const sensor_dht11 = {
init: function () {
this.setColour(SENSOR_EXTERN_HUE);
this.appendValueInput("PIN", Number)
.appendField(new Blockly.FieldDropdown([
['DHT11', 'DHT11'],
['DHT22', 'DHT22']//, ['DHT21', '21'], ['DHT33', '33'], ['DHT44', '44']
]), 'TYPE')
.appendField(Blockly.Msg.MIXLY_PIN)
.setCheck(Number);
this.appendDummyInput("")
.appendField(new Blockly.FieldDropdown(sensor_dht11.METHOD), "WHAT");
this.setOutput(true, Number);
var thisBlock = this;
this.setTooltip(function () {
var op = thisBlock.getFieldValue('WHAT');
var TOOLTIPS = {
'temperature': Blockly.Msg.MIXLY_TOOLTIP_BLOCKGROUP_GET_TEM,
'relative_humidity': Blockly.Msg.MIXLY_TOOLTIP_BLOCKGROUP_GET_HUM,
'tempandhum': Blockly.Msg.MIXLY_TOOLTIP_BLOCKGROUP_GET_TEM_HUM
};
return TOOLTIPS[op];
});
},
METHOD: [
[Blockly.Msg.MIXLY_GETTEMPERATUE, 'temperature'],
[Blockly.Msg.MIXLY_GETHUMIDITY, 'humidity']
]
};
export const sensor_mixgo_extern_light = {
init: function () {
this.setColour(SENSOR_EXTERN_HUE);
this.appendDummyInput()
.appendField(Blockly.Msg.MIXLY_ESP32_EXTERN_LIGHT);
this.appendValueInput("PIN", Number)
.appendField(Blockly.Msg.MIXLY_PIN)
.setCheck(Number);
this.appendDummyInput()
.appendField(Blockly.Msg.MIXLY_ESP32_EXTERN_VALUE);
this.setOutput(true, Number);
this.setInputsInline(true);
this.setTooltip(Blockly.Msg.ESP32_SENSOR_NIXGO_LIGHT_TOOLTIP);
}
};
export const sensor_mixgo_extern_sound = {
init: function () {
this.setColour(SENSOR_EXTERN_HUE);
this.appendDummyInput()
.appendField(Blockly.Msg.MIXLY_ESP32_EXTERN_SOUND);
this.appendValueInput("PIN", Number)
.appendField(Blockly.Msg.MIXLY_PIN)
.setCheck(Number);
this.appendDummyInput()
.appendField(Blockly.Msg.MIXLY_ESP32_EXTERN_VALUE);
this.setOutput(true, Number);
this.setInputsInline(true);
this.setTooltip(Blockly.Msg.ESP32_SENSOR_NIXGO_SOUND_TOOLTIP);
}
};
export const sensor_mixgo_extern_pin_near = {
init: function () {
this.setColour(SENSOR_EXTERN_HUE);
this.appendDummyInput()
.appendField(Blockly.Msg.MIXLY_MICROBIT_PY_STORAGE_GET)
.appendField(new Blockly.FieldDropdown([
[Blockly.Msg.TEXT_TRIM_LEFT, "left"],
[Blockly.Msg.TEXT_TRIM_RIGHT, "right"]
]), "direction")
.appendField(Blockly.Msg.MIXLY_ESP32_NEAR);
this.setOutput(true, Number);
this.setInputsInline(true);
var thisBlock = this;
this.setTooltip(function () {
var mode = thisBlock.getFieldValue('direction');
var mode0 = Blockly.Msg.MIXLY_ESP32_SENSOR_MIXGO_PIN_NEAR_TOOLTIP;
var mode1 = Blockly.Msg.MIXLY_ESP32_NEAR;
var TOOLTIPS = {
'left': Blockly.Msg.TEXT_TRIM_LEFT,
'right': Blockly.Msg.TEXT_TRIM_RIGHT,
};
return mode0 + TOOLTIPS[mode] + mode1
});
}
};
export const sensor_bmp = {
init: function () {
this.setColour(SENSOR_EXTERN_HUE);
this.appendValueInput('SUB')
.appendField(Blockly.Msg.MIXLY_ALTITUDE_SENSOR + " BMP280")
.setCheck("var");
this.appendDummyInput("")
.appendField(new Blockly.FieldDropdown([
[Blockly.Msg.MIXLY_GETTEMPERATUE, "get_BMP_temperature()"],
[Blockly.Msg.MIXLY_GETPRESSURE, "get_BMP_pressure()"]
]), "key");
this.setOutput(true, Number);
this.setInputsInline(true);
var thisBlock = this;
this.setTooltip(function () {
var mode = thisBlock.getFieldValue('key');
var TOOLTIPS = {
"get_BMP_temperature()": Blockly.Msg.MIXLY_MICROBIT_SENSOR_BMP_temperature_TOOLTIP,
"get_BMP_pressure()": Blockly.Msg.MIXLY_MICROBIT_SENSOR_BMP_press_TOOLTIP,
};
return TOOLTIPS[mode]
});
}
};
export const sensor_sht = {
init: function () {
this.setColour(SENSOR_EXTERN_HUE);
this.appendValueInput('SUB')
.appendField(Blockly.Msg.MIXLY_TEMP_AND_HUMIDITY_SENSOR + " SHT20")
.setCheck("var");
this.appendDummyInput("")
.appendField(new Blockly.FieldDropdown([
[Blockly.Msg.MIXLY_GETTEMPERATUE, "get_SHT_temperature()"],
[Blockly.Msg.MIXLY_GETHUMIDITY, "get_SHT_relative_humidity()"]
]), "key");
this.setOutput(true, Number);
this.setInputsInline(true);
var thisBlock = this;
this.setTooltip(function () {
var mode = thisBlock.getFieldValue('key');
var TOOLTIPS = {
"get_SHT_temperature()": Blockly.Msg.MIXLY_MICROBIT_SENSOR_SHT_temperature_TOOLTIP,
"get_SHT_relative_humidity()": Blockly.Msg.MIXLY_MICROBIT_SENSOR_SHT_HUM_TOOLTIP,
};
return TOOLTIPS[mode]
});
}
};
export const sensor_DS18X20 = {
init: function () {
this.setColour(SENSOR_EXTERN_HUE);
this.appendValueInput("PIN", Number)
.appendField("DS18X20 " + Blockly.Msg.MIXLY_PIN)
.setCheck(Number);
this.appendDummyInput("")
.appendField(Blockly.Msg.MIXLY_GETTEMPERATUE);
this.setInputsInline(true);
this.setOutput(true, Number);
this.setTooltip(Blockly.Msg.MIXLY_MICROBIT_SENSOR_DS18X20_TOOLTIP);
}
};
export const sensor_lm35 = {
init: function () {
this.setColour(SENSOR_EXTERN_HUE);
this.appendDummyInput("")
.appendField("LM35" + Blockly.Msg.MIXLY_TEMP);
this.appendValueInput("PIN", Number)
.appendField(Blockly.Msg.MIXLY_PIN)
.setCheck(Number);
this.appendDummyInput("")
.appendField(Blockly.Msg.MIXLY_GETTEMPERATUE);
this.setInputsInline(true);
this.setOutput(true, Number);
this.setTooltip(Blockly.Msg.MIXLY_TOOLTIP_LM35);
}
};
//pe
export const sensor_use_i2c_init = {
init: function () {
this.setColour(SENSOR_EXTERN_HUE);
this.appendValueInput('I2CSUB')
.appendField(Blockly.Msg.CONTROLS_FOR_INPUT_WITH + "I2C")
.setCheck("var");
this.appendValueInput('SUB')
.appendField(Blockly.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE)
.setCheck("var");
this.appendDummyInput("")
.appendField(Blockly.Msg.MIXLY_SETUP + Blockly.Msg.LISTS_SET_INDEX_INPUT_TO)
.appendField(new Blockly.FieldDropdown([
[Blockly.Msg.MIXLY_ESP32_EXTERN_LIGHT + "(LTR308ALS)", "LTR308"],
[Blockly.Msg.MIXLY_COLOR_SENSOR + "(LTR381RGB)", "LTR381RGB"],
[Blockly.Msg.MIXLY_COLOR_SENSOR + "(UCS12071)", "UCS12071"],
[Blockly.Msg.MIXLY_EXTERN_LIGHTUV + "(LTR390UV)", "LTR390UV"],
[Blockly.Msg.MIXLY_ALTITUDE_SENSOR + "(HP203X)", "HP203X"],
[Blockly.Msg.MIXLY_ALTITUDE_SENSOR + "(SPL06_001)", "SPL06_001"],
[Blockly.Msg.MIXLY_ALTITUDE_SENSOR + "(MS5611)", "MS5611"],
[Blockly.Msg.MIXLY_ALTITUDE_SENSOR + "(BMP280)", "BMP280"],
[Blockly.Msg.MIXLY_TEMP_AND_HUMIDITY_SENSOR + "(SHTC3)", "SHTC3"],
[Blockly.Msg.MIXLY_TEMP_AND_HUMIDITY_SENSOR + "(AHT21)", "AHT21"],
[Blockly.Msg.MIXLY_TEMP_AND_HUMIDITY_SENSOR + "(SHT20)", "SHT20"],
[Blockly.Msg.MIXLY_LASER_RANGE_SENSOR + "(VL53L0X)", "VL53L0X"],
[Blockly.Msg.MIXLY_GEOMAGNETIC_SENSOR + "(QMC5883L)", "QMC5883L"],
[Blockly.Msg.MIXLY_ESP32_MAX30102 + "(MAX30102)", "MAX30102"],
[Blockly.Msg.HTML_COLOUR + "、" + Blockly.Msg.MIXLY_ENVIRONMENT_LIGHT + "、" + Blockly.Msg.MIXLY_NEXT + "、" + Blockly.Msg.MIXLY_ESP32_APDS9960 + "(APDS9960)", "APDS9960"],
[Blockly.Msg.MIXLY_NINE_AXIS_SENSOR + "(MPU9250)", "MPU9250"],
[Blockly.Msg.MixGo_MPU9250 + "(ADXL345)", "ADXL345"],
["RFID", "RFID"],
[Blockly.Msg.MIXLY_RADAR_SENSOR + "(CBR817)", "CBR817"],
[Blockly.Msg.MIXLY_AipSpeech_asr + "(CI130X)", "CI130X"],
[Blockly.Msg.MIXLY_TVOC_CO2_SENSOR + "(AGS10)","AGS10" ]
]), "key");
this.setInputsInline(true);
this.setPreviousStatement(true, null);
this.setNextStatement(true, null);
}
};
export const radar_set_DETECTION_THRESHOLD = {
init: function () {
this.setColour(SENSOR_EXTERN_HUE);
this.appendValueInput('SUB')
.appendField(Blockly.Msg.MIXLY_RADAR + 'CBR817')
.setCheck("var");
this.appendDummyInput("")
.appendField(Blockly.Msg.LISTS_SET_INDEX_SET + Blockly.Msg.MIXlY_INTERACTION)
this.appendValueInput('VAR')
.appendField(Blockly.Msg.MIXLY_DETECTION_THRESHOLD);
this.appendValueInput('VAR2')
.appendField(Blockly.Msg.MIXLY_DELAY_TIME);
this.appendDummyInput()
.appendField('ms');
this.setPreviousStatement(true);
this.setNextStatement(true);
this.setInputsInline(true);
this.setTooltip(Blockly.Msg.MIXLY_THRESHOLD_TOOLTIP + ' ; ' + Blockly.Msg.MIXLY_DELAY_TIME_RANGE)
}
};
export const radar_set_DETECTION_THRESHOLD_SANT = {
init: function () {
this.setColour(SENSOR_EXTERN_HUE);
this.appendDummyInput("")
.appendField(Blockly.Msg.MIXLY_RADAR)
.appendField(Blockly.Msg.LISTS_SET_INDEX_SET + Blockly.Msg.MIXlY_INTERACTION)
this.appendValueInput('VAR')
.appendField(Blockly.Msg.MIXLY_DETECTION_THRESHOLD);
this.appendValueInput('VAR2')
.appendField(Blockly.Msg.MIXLY_DELAY_TIME);
this.appendDummyInput()
.appendField('ms');
this.setPreviousStatement(true);
this.setNextStatement(true);
this.setInputsInline(true);
this.setTooltip(Blockly.Msg.MIXLY_THRESHOLD_TOOLTIP + ' ; ' + Blockly.Msg.MIXLY_DELAY_TIME_RANGE)
}
};
export const interaction_whether_to_interaction = {
init: function () {
this.setColour(SENSOR_EXTERN_HUE);
this.appendValueInput('SUB')
.appendField(Blockly.Msg.MIXLY_RADAR + 'CBR817')
.setCheck("var");
this.appendDummyInput("")
.appendField(Blockly.Msg.MIXLY_GET_TO_INTERACTION)
this.setOutput(true);
this.setInputsInline(true);
}
};
export const interaction_whether_to_interaction_SANT = {
init: function () {
this.setColour(SENSOR_EXTERN_HUE);
this.appendDummyInput("")
.appendField(Blockly.Msg.MIXLY_RADAR)
.appendField(Blockly.Msg.MIXLY_GET_TO_INTERACTION)
this.setOutput(true);
this.setInputsInline(true);
}
};
export const CI130X_IDENTIFY_AND_SAVE = {
init: function () {
this.setColour(SENSOR_EXTERN_HUE);
this.appendValueInput('SUB')
.appendField(Blockly.Msg.MIXLY_AipSpeech_asr + 'CI130X')
.setCheck("var");
this.appendDummyInput("")
.appendField(Blockly.Msg.MIXLY_IDENTIFY_ONCE_AND_SAVE)
this.setPreviousStatement(true);
this.setNextStatement(true);
this.setInputsInline(true);
}
};
export const CI130X_GET_WHETHER_IDENTIFY = {
init: function () {
this.setColour(SENSOR_EXTERN_HUE);
this.appendValueInput('SUB')
.appendField(Blockly.Msg.MIXLY_AipSpeech_asr + 'CI130X')
.setCheck("var");
this.appendDummyInput("")
.appendField(Blockly.Msg.MIXLY_GET)
.appendField(new Blockly.FieldDropdown([
[Blockly.Msg.MIXLY_HELLO_XIAOZHI, "1"],
[Blockly.Msg.MIXLY_XIAOZHIXIAOZHI, "2"],
[Blockly.Msg.MIXLY_THE_FIRST, "3"],
[Blockly.Msg.MIXLY_THE_SECOND, "4"],
[Blockly.Msg.MIXLY_THE_THIRD, "5"],
[Blockly.Msg.MIXLY_THE_FOURTH, "6"],
[Blockly.Msg.MIXLY_THE_FIFTH, "7"],
[Blockly.Msg.MIXLY_THE_SIXTH, "8"],
[Blockly.Msg.MIXLY_THE_SEVENTH, "9"],
[Blockly.Msg.MIXLY_THE_EIGHTH, "10"],
[Blockly.Msg.MIXLY_THE_NINTH, "11"],
[Blockly.Msg.MIXLY_THE_TENTH, "12"],
[Blockly.Msg.MIXLY_THE_ELEVENTH, "13"],
[Blockly.Msg.MIXLY_THE_TWELFTH, "14"],
[Blockly.Msg.MIXLY_THE_13TH, "15"],
[Blockly.Msg.MIXLY_THE_14TH, "16"],
[Blockly.Msg.MIXLY_THE_15TH, "17"],
[Blockly.Msg.MIXLY_THE_16TH, "18"],
[Blockly.Msg.MIXLY_THE_17TH, "19"],
[Blockly.Msg.MIXLY_THE_18TH, "20"],
[Blockly.Msg.MIXLY_THE_19TH, "21"],
[Blockly.Msg.MIXLY_THE_20TH, "22"],
[Blockly.Msg.MIXLY_Turn_on_the_lights, "23"],
[Blockly.Msg.MIXLY_Turn_off_the_lights, "24"],
[Blockly.Msg.MIXLY_Turn_up_the_brightness, "25"],
[Blockly.Msg.MIXLY_Turn_down_the_brightness, "26"],
[Blockly.Msg.MIXLY_Set_it_to_red, "27"],
[Blockly.Msg.MIXLY_Set_it_to_orange, "28"],
[Blockly.Msg.MIXLY_Set_it_to_yellow, "29"],
[Blockly.Msg.MIXLY_Set_it_to_green, "30"],
[Blockly.Msg.MIXLY_Set_it_to_cyan, "31"],
[Blockly.Msg.MIXLY_Set_it_to_blue, "32"],
[Blockly.Msg.MIXLY_Set_it_to_purple, "33"],
[Blockly.Msg.MIXLY_Set_it_to_white, "34"],
[Blockly.Msg.MIXLY_Turn_on_the_fan, "35"],
[Blockly.Msg.MIXLY_Turn_off_the_fan, "36"],
[Blockly.Msg.MIXLY_First_gear, "37"],
[Blockly.Msg.MIXLY_Wind_speed_second, "38"],
[Blockly.Msg.MIXLY_Third_gear, "39"],
[Blockly.Msg.MIXLY_Previous, "40"],
[Blockly.Msg.MIXLY_Next_page, "41"],
[Blockly.Msg.MIXLY_Show_smiley_face, "42"],
[Blockly.Msg.MIXLY_Show_crying_face, "43"],
[Blockly.Msg.MIXLY_Show_love, "44"],
[Blockly.Msg.MIXLY_Close_display, "45"],
[Blockly.Msg.MIXLY_Start_execution, "46"],
[Blockly.Msg.MIXLY_FORWARD, "47"],
[Blockly.Msg.MIXLY_BACKWARD, "48"],
[Blockly.Msg.MIXLY_TURNLEFT, "49"],
[Blockly.Msg.MIXLY_TURNRIGHT, "50"],
[Blockly.Msg.MIXLY_STOP, "51"],
[Blockly.Msg.MIXLY_Accelerate, "52"],
[Blockly.Msg.MIXLY_retard, "53"],
[Blockly.Msg.ROTATION_FORWARD, "54"],
[Blockly.Msg.ROTATION_BACKWARD, "55"],
[Blockly.Msg.MIXLY_Query_temperature, "56"],
[Blockly.Msg.MIXLY_Query_humidity, "57"],
[Blockly.Msg.MIXLY_Query_brightness, "58"],
[Blockly.Msg.MIXLY_Query_sound, "59"],
[Blockly.Msg.MIXLY_Query_time, "60"],
[Blockly.Msg.MIXLY_Query_distance, "61"],
[Blockly.Msg.MIXLY_Query_pressure, "62"],
[Blockly.Msg.MIXLY_Query_key, "63"],
[Blockly.Msg.MIXLY_Query_touch, "64"],
[Blockly.Msg.MIXLY_Query_color, "65"]
]), "cmd")
.appendField(Blockly.Msg.MIXLY_WHETHER + Blockly.Msg.MIXLY_BE_IDENTIFIED);
this.setOutput(true);
this.setInputsInline(true);
}
};
export const CI130X_GET_THE_RECOGNIZED_CMD = {
init: function () {
this.setColour(SENSOR_EXTERN_HUE);
this.appendValueInput('SUB')
.appendField(Blockly.Msg.MIXLY_AipSpeech_asr + 'CI130X')
.setCheck("var");
this.appendDummyInput("")
.appendField(Blockly.Msg.MIXLY_GET)
.appendField(new Blockly.FieldDropdown([
[Blockly.Msg.MIXLY_RECOGNIZED_STATE, "status1"],
[Blockly.Msg.MIXLY_WHETHER_BROADCAST, "status2"],
[Blockly.Msg.MIXLY_THE_RECOGNIZED_CMD, "result"]
]), "key")
this.setOutput(true);
this.setInputsInline(true);
this.setTooltip(Blockly.Msg.MIXLY_CI130X_GET_THE_RECOGNIZED_STATE_TOOLTIP);
}
};
export const CI130X_BROADCAST = {
init: function () {
this.setColour(SENSOR_EXTERN_HUE);
this.appendValueInput('SUB')
.appendField(Blockly.Msg.MIXLY_AipSpeech_asr + 'CI130X')
.setCheck("var");
this.appendDummyInput("")
.appendField(Blockly.Msg.MIXLY_MP3_PLAY)
.appendField(new Blockly.FieldDropdown([
[Blockly.Msg.MIXLY_MICROBIT_JS_INOUT_PULL_NONE, "None"],
[Blockly.Msg.MIXLY_WIND_SPEED, "154"],
[Blockly.Msg.MIXLY_HYETAL, "155"],
[Blockly.Msg.MIXLY_TEMPERATURE, "156"],
[Blockly.Msg.MIXLY_Humidity, "157"],
[Blockly.Msg.MIXLY_Altitude, "158"],
[Blockly.Msg.MIXLY_SOUND, "159"],
[Blockly.Msg.MIXLY_BRIGHTNESS, "160"],
[Blockly.Msg.ME_GO_HALL_SENSOR_DISTANCE, "161"],
[Blockly.Msg.MIXLY_SERVO, "162"],
[Blockly.Msg.MIXLY_MICROBIT_JS_BY_ANGLE, "163"],
[Blockly.Msg.MIXLY_BUTTON2, "164"],
[Blockly.Msg.MIXLY_ESP32_TOUCH, "165"],
[Blockly.Msg.MIXLY_PAY, "166"],
[Blockly.Msg.MIXLY_CARSH_CHANGE, "167"],
[Blockly.Msg.MIXLY_COUNTDOWN, "168"],
[Blockly.Msg.MIXLY_TIMING, "169"],
[Blockly.Msg.MIXLY_AT_THE_MOMENT, "170"],
[Blockly.Msg.MIXLY_MICROBIT_JS_CURRENT_GESTURE, "171"],
[Blockly.Msg.MIXLY_FORWARD, "172"],
[Blockly.Msg.MIXLY_BACKWARD, "173"],
[Blockly.Msg.MIXLY_TURNLEFT, "174"],
[Blockly.Msg.MIXLY_TURNRIGHT, "175"],
[Blockly.Msg.MIXLY_STOP, "176"],
[Blockly.Msg.MIXLY_Accelerate, "177"],
[Blockly.Msg.MIXLY_retard, "178"],
[Blockly.Msg.ROTATION_FORWARD, "179"],
[Blockly.Msg.ROTATION_BACKWARD, "180"],
[Blockly.Msg.TUPLE_JOIN, "181"],
[Blockly.Msg.MIXLY_SHOW, "182"],
[Blockly.Msg.MIXLY_LAMPLIGHT, "183"],
[Blockly.Msg.MIXLY_ACCELERATION, "184"]
]), "star");
this.appendValueInput('NUM')
.appendField(Blockly.Msg.MIXLY_NUMBER);
this.appendDummyInput("")
.appendField(Blockly.Msg.MIXLY_UNIT)
.appendField(new Blockly.FieldDropdown([
[Blockly.Msg.MIXLY_MICROBIT_JS_INOUT_PULL_NONE, "None"],
[Blockly.Msg.MIXLY_YEAR, "117"],
[Blockly.Msg.MIXLY_MONTH, "118"],
[Blockly.Msg.MIXLY_DAY, "119"],
[Blockly.Msg.MIXLY_HOUR, "120"],
[Blockly.Msg.MIXLY_MINUTE, "121"],
[Blockly.Msg.MIXLY_SECOND, "122"],
[Blockly.Msg.MIXLY_WEEK2, "123"],
[Blockly.Msg.MIXLY_RMB_UNIT, "124"],
[Blockly.Msg.blockpy_setheading_degree, "125"],
[Blockly.Msg.MIXLY_GEAR, "126"],
[Blockly.Msg.MIXLY_LAYER, "127"],
[Blockly.Msg.MIXLY_GRAM, "128"],
[Blockly.Msg.MIXLY_METER, "129"],
[Blockly.Msg.MIXLY_CENTIMETER, "130"],
[Blockly.Msg.MIXLY_MILLIMETER, "131"],
[Blockly.Msg.MIXLY_LUMEN, "132"],
[Blockly.Msg.MIXLY_DECIBEL, "133"],
[Blockly.Msg.MIXLY_hectopascal, "134"],
[Blockly.Msg.MIXLY_PERCENT, "135"],
[Blockly.Msg.MIXLY_CELSIUS, "136"],
[Blockly.Msg.MIXLY_METER_PER_SEC, "137"],
[Blockly.Msg.MIXLY_MICROBIT_Turn_on_display, "138"],
[Blockly.Msg.MIXLY_MICROBIT_Turn_off_display, "139"],
[Blockly.Msg.MIXLY_SUCCESS, "140"],
[Blockly.Msg.MIXLY_FAILED, "141"],
[Blockly.Msg.MIXLY_WRONG, "142"],
[Blockly.Msg.MIXLY_GOOD, "143"],
[Blockly.Msg.MIXLY_blockpy_set_add, "144"],
[Blockly.Msg.MIXLY_DECREASE, "145"],
[Blockly.Msg.COLOUR_RGB_RED, "146"],
[Blockly.Msg.COLOUR_RGB_ORANGE, "147"],
[Blockly.Msg.COLOUR_YELLOW, "148"],
[Blockly.Msg.COLOUR_RGB_GREEN, "149"],
[Blockly.Msg.COLOUR_CYAN, "150"],
[Blockly.Msg.COLOUR_RGB_BLUE, "151"],
[Blockly.Msg.COLOUR_RGB_PURPLE, "152"],
[Blockly.Msg.COLOUR_RGB_WHITE, "153"]
]), "end");
this.setPreviousStatement(true);
this.setNextStatement(true);
this.setInputsInline(true);
}
};
export const CI130X_SET_SYSTEM_CMD = {
init: function () {
this.setColour(SENSOR_EXTERN_HUE);
this.appendValueInput('SUB')
.appendField(Blockly.Msg.MIXLY_AipSpeech_asr + 'CI130X')
.setCheck("var");
this.appendDummyInput("")
.appendField(Blockly.Msg.LISTS_SET_INDEX_SET + Blockly.Msg.MIXLY_SYSTEM + Blockly.Msg.MIXLY_CMD)
.appendField(new Blockly.FieldDropdown([
[Blockly.Msg.MILXY_ENTER_WAKE_UP, "1"],
[Blockly.Msg.MIXLY_INCREASE_VOLUME, "202"],
[Blockly.Msg.MIXLY_REDUCE_VOLUME, "203"],
[Blockly.Msg.MIXLY_MAX_VOLUME, "204"],
[Blockly.Msg.MIXLY_MINIMUM, "205"],
[Blockly.Msg.MIXLY_OPEN_RESPONSE, "206"],
[Blockly.Msg.MIXLY_CLOSE_RESPONSE, "207"],
[Blockly.Msg.MIXLY_QUIT_WAKE_UP, "208"]
]), "cmd")
this.setPreviousStatement(true);
this.setNextStatement(true);
this.setInputsInline(true);
}
};
export const sensor_MAX30102_extern = {
init: function () {
this.setColour(SENSOR_EXTERN_HUE);
this.appendDummyInput()
.appendField(Blockly.Msg.MIXLY_ESP32_MAX30102 + " MAX30102");
this.appendValueInput('SUB')
//.appendField("BMP280")
.setCheck("var");
this.appendDummyInput()
.appendField(Blockly.Msg.MIXLY_GET)
.appendField(new Blockly.FieldDropdown([
[Blockly.Msg.MIXLY_ESP32_MAX30102_IR, "[0]"],
[Blockly.Msg.MIXLY_ESP32_MAX30102_RED, "[1]"],
[Blockly.Msg.MIXLY_ESP32_MAX30102_IR + ',' + Blockly.Msg.MIXLY_ESP32_MAX30102_RED, ""],
]), "key")
this.setOutput(true, Number);
this.setInputsInline(true);
}
};
export const sensor_APDS9960_extern = {
init: function () {
this.setColour(SENSOR_EXTERN_HUE);
this.appendDummyInput()
.appendField(Blockly.Msg.MIXLY_ESP32_APDS9960 + " APDS9960");
this.appendValueInput('SUB')
//.appendField("BMP280")
.setCheck("var");
this.appendDummyInput()
.appendField(Blockly.Msg.MIXLY_GET)
.appendField(new Blockly.FieldDropdown([
[Blockly.Msg.MIXLY_ESP32_APDS9960_COLOR, "color"],
[Blockly.Msg.MIXLY_ESP32_APDS9960_GESTURE, "gesture"],
[Blockly.Msg.MIXLY_ESP32_APDS9960_APPROACH, "proximity"],
]), "key")
this.setOutput(true, Number);
this.setInputsInline(true);
}
};
export const sensor_LTR308_extern = {
init: function () {
this.setColour(SENSOR_EXTERN_HUE);
this.appendDummyInput()
.appendField(Blockly.Msg.MIXLY_ESP32_EXTERN_LIGHT + " LTR308ALS");
this.appendValueInput('SUB')
//.appendField("BMP280")
.setCheck("var");
this.appendDummyInput()
.appendField(Blockly.Msg.MIXLY_GET_LIGHT_INTENSITY);
this.setOutput(true, Number);
this.setInputsInline(true);
}
};
export const sensor_ltr381_extern = {
init: function () {
this.setColour(SENSOR_EXTERN_HUE);
this.appendValueInput('SUB')
.appendField(Blockly.Msg.HTML_COLOUR + Blockly.Msg.MSG.catSensor + " LTR381RGB")
.setCheck("var");
this.appendDummyInput("")
.appendField(new Blockly.FieldDropdown([
[Blockly.Msg.MIXLY_GET + Blockly.Msg.HTML_COLOUR, "[2]"],
[Blockly.Msg.MIXLY_GET + Blockly.Msg.MIXLY_IR_STRENGTH, "[1]"],
[Blockly.Msg.MIXLY_GET + Blockly.Msg.MIXLY_LIGHT_STRENGTH, "[0]"],
]), "key");
this.setOutput(true, Number);
this.setInputsInline(true);
}
};
export const sensor_ucs12071_extern = {
init: function () {
this.setColour(SENSOR_EXTERN_HUE);
this.appendValueInput('SUB')
.appendField(Blockly.Msg.HTML_COLOUR + Blockly.Msg.MSG.catSensor + " UCS12071")
.setCheck("var");
this.appendDummyInput("")
.appendField(new Blockly.FieldDropdown([
[Blockly.Msg.MIXLY_GET + 'RGB' + Blockly.Msg.HTML_COLOUR, "0"],
[Blockly.Msg.MIXLY_GET + Blockly.Msg.MIXLY_RGB_RAW, "1"],
[Blockly.Msg.MIXLY_GET_ENV_LIGHT + Blockly.Msg.MIXLY_BRIGHTNESS, "2"],
[Blockly.Msg.GET_IR_STRENGTH + Blockly.Msg.MIXLY_BRIGHTNESS, "3"]
]), "key");
this.setOutput(true, Number);
this.setInputsInline(true);
}
};
export const sensor_LTR390UV_extern = {
init: function () {
this.setColour(SENSOR_EXTERN_HUE);
this.appendValueInput('SUB')
.appendField(Blockly.Msg.MIXLY_EXTERN_LIGHTUV + " LTR390UV")
.setCheck("var");
this.appendDummyInput()
.appendField(new Blockly.FieldDropdown([
[Blockly.Msg.MIXLY_GET_ENV_LIGHT, "E"],
[Blockly.Msg.MIXLY_GET_ULTRAVIOLET, "U"],
]), "key");
this.setOutput(true, Number);
this.setInputsInline(true);
}
};
export const sensor_VL530LX_extern = {
init: function () {
this.setColour(SENSOR_EXTERN_HUE);
this.appendDummyInput()
.appendField(Blockly.Msg.MIXLY_LASER_RANGE + " VL53L0X");
this.appendValueInput('SUB')
//.appendField("BMP280")
.setCheck("var");
this.appendDummyInput()
.appendField(Blockly.Msg.MIXLY_GET_DISTANCE + '(mm)');
this.setOutput(true, Number);
this.setInputsInline(true);
}
};
export const sensor_shtc3_extern = {
init: function () {
this.setColour(SENSOR_EXTERN_HUE);
this.appendValueInput('SUB')
.appendField(Blockly.Msg.MIXLY_TEM_HUM + " SHTC3")
.setCheck("var");
this.appendDummyInput("")
.appendField(new Blockly.FieldDropdown([
[Blockly.Msg.MIXLY_GETTEMPERATUE, "temperature"],
[Blockly.Msg.MIXLY_GETHUMIDITY, "humidity"]
]), "key");
this.setOutput(true, Number);
this.setInputsInline(true);
var thisBlock = this;
this.setTooltip(function () {
var mode = thisBlock.getFieldValue('key');
var TOOLTIPS = {
"temperature": Blockly.Msg.MIXLY_MICROBIT_SENSOR_SHT_temperature_TOOLTIP,
"humidity": Blockly.Msg.MIXLY_MICROBIT_SENSOR_SHT_HUM_TOOLTIP
};
return TOOLTIPS[mode]
});
}
};
export const sensor_aht11_extern = {
init: function () {
this.setColour(SENSOR_EXTERN_HUE);
this.appendValueInput('SUB')
.appendField(Blockly.Msg.MIXLY_TEM_HUM + " AHT21")
.setCheck("var");
this.appendDummyInput("")
.appendField(new Blockly.FieldDropdown([
[Blockly.Msg.MIXLY_GETTEMPERATUE, "temperature"],
[Blockly.Msg.MIXLY_GETHUMIDITY, "humidity"]
]), "key");
this.setOutput(true, Number);
this.setInputsInline(true);
var thisBlock = this;
this.setTooltip(function () {
var mode = thisBlock.getFieldValue('key');
var TOOLTIPS = {
"temperature": Blockly.Msg.MIXLY_MICROBIT_SENSOR_SHT_temperature_TOOLTIP,
"relative_humidity": Blockly.Msg.MIXLY_MICROBIT_SENSOR_SHT_HUM_TOOLTIP
};
return TOOLTIPS[mode]
});
}
};
export const sensor_hp203_extern = {
init: function () {
this.setColour(SENSOR_EXTERN_HUE);
this.appendValueInput('SUB')
.appendField(Blockly.Msg.MIXLY_Altitude + Blockly.Msg.MSG.catSensor + " HP203X")
.setCheck("var");
this.appendDummyInput("")
.appendField(new Blockly.FieldDropdown([
[Blockly.Msg.MIXLY_GETPRESSURE, "pressure()"],
[Blockly.Msg.MIXLY_GETTEMPERATUE, "temperature()"],
[Blockly.Msg.MIXLY_GET_ALTITUDE, "altitude()"],
]), "key");
this.setOutput(true, Number);
this.setInputsInline(true);
}
};
export const sensor_spl06_001_extern = {
init: function () {
this.setColour(SENSOR_EXTERN_HUE);
this.appendValueInput('SUB')
.appendField(Blockly.Msg.MIXLY_Altitude + Blockly.Msg.MSG.catSensor + " SPL06_001")
.setCheck("var");
this.appendDummyInput("")
.appendField(new Blockly.FieldDropdown([
[Blockly.Msg.MIXLY_GETPRESSURE, "pressure()"],
[Blockly.Msg.MIXLY_GETTEMPERATUE, "temperature()"],
[Blockly.Msg.MIXLY_GET_ALTITUDE, "altitude()"],
]), "key");
this.setOutput(true, Number);
this.setInputsInline(true);
}
};
export const sensor_ms5611_extern = {
init: function () {
this.setColour(SENSOR_EXTERN_HUE);
this.appendValueInput('SUB')
.appendField(Blockly.Msg.MIXLY_Altitude + Blockly.Msg.MSG.catSensor + " MS5611")
.setCheck("var");
this.appendDummyInput("")
.appendField(new Blockly.FieldDropdown([
[Blockly.Msg.MIXLY_GETPRESSURE, "pressure()"],
[Blockly.Msg.MIXLY_GETTEMPERATUE, "temperature()"],
[Blockly.Msg.MIXLY_GET_ALTITUDE, "altitude()"],
]), "key");
this.setOutput(true, Number);
this.setInputsInline(true);
}
};
export const sensor_ms5611_extern_altitude = {
init: function () {
this.setColour(SENSOR_EXTERN_HUE);
this.appendValueInput('SUB')
.appendField(Blockly.Msg.MIXLY_Altitude + Blockly.Msg.MSG.catSensor + " MS5611")
.setCheck("var");
this.appendValueInput('VAR')
.appendField(Blockly.Msg.MIXLY_REF_TO_PRESSURE);
this.appendDummyInput()
.appendField(Blockly.Msg.MIXLY_CAL_TO_ALTITUDE);
this.setOutput(true, Number);
this.setInputsInline(true);
}
};
export const sensor_QMC5883L_extern = {
init: function () {
this.setColour(SENSOR_EXTERN_HUE);
this.appendValueInput('SUB')
.appendField(Blockly.Msg.MIXLY_MIXGOPE_FIELD + Blockly.Msg.MSG.catSensor + " QMC5883L")
.setCheck("var");
this.appendDummyInput("")
.appendField(Blockly.Msg.MIXLY_MICROBIT_JS_GET)
.appendField(new Blockly.FieldDropdown([
[Blockly.Msg.MIXLY_MICROBIT_JS_BY_ANGLE, "get_bearing()"],
[Blockly.Msg.MIXLY_TEMPERATURE, "get_temp()"],
]), "key");
this.setOutput(true, Number);
this.setInputsInline(true);
}
};
export const sensor_mpu9250_gesture = {
init: function () {
this.setColour(SENSOR_EXTERN_HUE);
this.appendValueInput('SUB')
.appendField("MPU9250")
.setCheck("var");
this.appendDummyInput("")
.appendField(Blockly.Msg.MIXLY_MICROBIT_JS_CURRENT_GESTURE)
.appendField(new Blockly.FieldDropdown([
[Blockly.Msg.MIXLY_MICROBIT_shake, "shake"],
[Blockly.Msg.MIXLY_UP, "up"],
[Blockly.Msg.MIXLY_DOWN, "down"],
[Blockly.Msg.MIXLY_LEFT, "left"],
[Blockly.Msg.MIXLY_RIGHT, "right"],
[Blockly.Msg.MIXLY_MICROBIT_face_up, "face up"],
[Blockly.Msg.MIXLY_MICROBIT_face_down, "face down"]
]), "gesture");
this.setOutput(true);
var thisBlock = this;
this.setTooltip(function () {
var mode = thisBlock.getFieldValue('gesture');
var mode0 = Blockly.Msg.MIXLY_MICROBIT_JS_CURRENT;
var mode1 = Blockly.Msg.MSG.catSensor;
var mode2 = Blockly.Msg.MIXLY_MICROBIT_JS_STATE;
var mode3 = Blockly.Msg.MIXLY_MICROBIT_PERFORMANCE
var TOOLTIPS = {
'shake': Blockly.Msg.MIXLY_MICROBIT_shake,
'up': Blockly.Msg.MIXLY_UP,
'down': Blockly.Msg.MIXLY_DOWN,
'left': Blockly.Msg.MIXLY_LEFT,
'right': Blockly.Msg.MIXLY_RIGHT,
'face up': Blockly.Msg.MIXLY_MICROBIT_face_up,
'face down': Blockly.Msg.MIXLY_MICROBIT_face_down,
// 'freefall':Blockly.Msg.MIXLY_MICROBIT_freefall,
// '3g': '3g',
// '6g': '6g',
// '8g': '8g'
};
return mode0 + mode1 + mode2 + TOOLTIPS[mode] + mode3;
});
}
};
export const sensor_mpu9250_get_acceleration = {
init: function () {
this.setColour(SENSOR_EXTERN_HUE);
this.appendValueInput('SUB')
.appendField(Blockly.Msg.MIXLY_NINE_AXIS_SENSOR + " MPU9250")
.setCheck("var");
this.appendDummyInput()
.appendField(Blockly.Msg.MIXLY_MICROBIT_JS_ACCELERATION)
.appendField(new Blockly.FieldDropdown([
["x", "x"],
["y", "y"],
["z", "z"],
["(x,y,z)", "values"]
]), "key");
this.setOutput(true, Number);
this.setInputsInline(true);
this.setTooltip(Blockly.Msg.MIXLY_MICROBIT_JS_ACCELERATION);
var thisBlock = this;
this.setTooltip(function () {
var mode = thisBlock.getFieldValue('key');
var mode0 = Blockly.Msg.MIXLY_MICROBIT_PY_STORAGE_GET;
var mode1 = Blockly.Msg.MIXLY_MICROBIT_Direction;
var mode2 = Blockly.Msg.MIXLY_MICROBIT_JS_ACCELERATION1;
var TOOLTIPS = {
'x': 'x',
'y': 'y',
'z': 'z',
'(x,y,z)': Blockly.Msg.MIXLY_MICROBIT_Shiliang_Direction,
};
return mode0 + TOOLTIPS[mode] + mode1 + mode2;
});
}
};
export const sensor_mpu9250_get_magnetic = {
init: function () {
this.setColour(SENSOR_EXTERN_HUE);
this.appendValueInput('SUB')
.appendField(Blockly.Msg.MIXLY_NINE_AXIS_SENSOR + " MPU9250")
.setCheck("var");
this.appendDummyInput()
.appendField(Blockly.Msg.MIXLY_MICROBIT_JS_GET + Blockly.Msg.MIXLY_MICROBIT_JS_FIELD_STRENGTH)
.appendField(new Blockly.FieldDropdown([
["x", "x"],
["y", "y"],
["z", "z"],
["(x,y,z)", "values"]
]), "key");
this.setOutput(true, Number);
this.setInputsInline(true);
var thisBlock = this;
this.setTooltip(function () {
var mode = thisBlock.getFieldValue('key');
var mode0 = Blockly.Msg.MIXLY_MICROBIT_PY_STORAGE_GET;
var mode1 = Blockly.Msg.MIXLY_MICROBIT_Direction;
var mode2 = Blockly.Msg.MIXLY_MICROBIT_JS_FIELD_STRENGTH;
var TOOLTIPS = {
'x': 'x',
'y': 'y',
'z': 'z',
'(x,y,z)': Blockly.Msg.MIXLY_MICROBIT_Shiliang_Direction,
};
return mode0 + TOOLTIPS[mode] + mode1 + mode2;
});
}
};
export const sensor_mpu9250_get_gyro = {
init: function () {
this.setColour(SENSOR_EXTERN_HUE);
this.appendValueInput('SUB')
.appendField(Blockly.Msg.MIXLY_NINE_AXIS_SENSOR + " MPU9250")
.setCheck("var");
this.appendDummyInput()
.appendField(Blockly.Msg.MIXLY_MICROBIT_PY_STORAGE_GET + Blockly.Msg.MIXLY_ESP32_SENOR_GYRO)
.appendField(new Blockly.FieldDropdown([
["x", "x"],
["y", "y"],
["z", "z"],
["(x,y,z)", "values"]
]), "key");
this.setOutput(true, Number);
this.setInputsInline(true);
var thisBlock = this;
this.setTooltip(function () {
var mode = thisBlock.getFieldValue('key');
var mode0 = Blockly.Msg.MIXLY_MICROBIT_PY_STORAGE_GET;
var mode1 = Blockly.Msg.MIXLY_MICROBIT_Direction;
var mode2 = Blockly.Msg.MIXLY_ESP32_SENOR_GYRO;
var TOOLTIPS = {
'x': 'x',
'y': 'y',
'z': 'z',
'(x,y,z)': Blockly.Msg.MIXLY_MICROBIT_Shiliang_Direction,
};
return mode0 + TOOLTIPS[mode] + mode1 + mode2;
});
}
};
export const sensor_mpu9250_calibrate_compass = {
init: function () {
this.setColour(SENSOR_EXTERN_HUE);
this.appendValueInput('SUB')
.appendField(Blockly.Msg.MIXLY_NINE_AXIS_SENSOR + " MPU9250")
.setCheck("var");
this.appendDummyInput()
.appendField(Blockly.Msg.MIXLY_MICROBIT_JS_CALIBRATE_COMPASS)
this.setPreviousStatement(true);
this.setNextStatement(true);
this.setInputsInline(true);
this.setTooltip(Blockly.Msg.MIXLY_MICROBIT_JS_CALIBRATE_COMPASS);
}
};
export const sensor_mpu9250_temperature = {
init: function () {
this.setColour(SENSOR_EXTERN_HUE);
this.appendValueInput('SUB')
.appendField(Blockly.Msg.MIXLY_NINE_AXIS_SENSOR + " MPU9250")
.setCheck("var");
this.appendDummyInput()
.appendField(Blockly.Msg.MIXLY_GETTEMPERATUE)
this.setOutput(true, Number);
this.setInputsInline(true);
this.setTooltip(Blockly.Msg.MIXLY_GETTEMPERATUE);
}
};
export const sensor_mpu9250_field_strength = {
init: function () {
this.setColour(SENSOR_EXTERN_HUE);
this.appendValueInput('SUB')
.appendField("MPU9250")
.setCheck("var");
this.appendDummyInput()
.appendField(Blockly.Msg.MIXLY_MICROBIT_JS_GET_COMPASS)
.appendField(new Blockly.FieldDropdown([
[Blockly.Msg.MIXLY_MICROBIT_JS_FIELD_STRENGTH, 'strength'],
[Blockly.Msg.MIXLY_MICROBIT_JS_BY_ANGLE, 'heading']
]), 'compass');
this.setOutput(true, Number);
this.setInputsInline(true);
var thisBlock = this;
this.setTooltip(function () {
var mode = thisBlock.getFieldValue('compass');
var mode0 = Blockly.Msg.MIXLY_MICROBIT_JS_GET_COMPASS;
var TOOLTIPS = {
'strength': Blockly.Msg.MIXLY_MICROBIT_JS_FIELD_STRENGTH,
'heading': Blockly.Msg.MIXLY_MICROBIT_JS_BY_ANGLE
};
return mode0 + TOOLTIPS[mode];
});
}
};
export const sensor_compass_reset = {
init: function () {
this.setColour(SENSOR_EXTERN_HUE);
this.appendValueInput('SUB')
.appendField("MPU9250")
.setCheck("var");
this.appendDummyInput()
.appendField(Blockly.Msg.MIXLY_MICROBIT_Reset_COMPASS)
this.setPreviousStatement(true);
this.setNextStatement(true);
this.setInputsInline(true);
this.setTooltip(Blockly.Msg.MIXLY_MICROBIT_Reset_COMPASS);
}
};
export const sensor_use_spi_init = {
init: function () {
this.setColour(SENSOR_EXTERN_HUE);
this.appendValueInput('SPISUB')
.appendField(Blockly.Msg.CONTROLS_FOR_INPUT_WITH + "SPI")
.setCheck("var");
this.appendValueInput('PINSUB')
.appendField("CS")
this.appendValueInput('SUB')
.appendField(Blockly.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE)
.setCheck("var");
this.appendDummyInput("")
.appendField(Blockly.Msg.MIXLY_SETUP + Blockly.Msg.LISTS_SET_INDEX_INPUT_TO)
.appendField(new Blockly.FieldDropdown([
["RFID", "RFID"],
["WS-LoRa", "Weather"]
]), "key");
this.setInputsInline(true);
this.setPreviousStatement(true, null);
this.setNextStatement(true, null);
this.setFieldValue("RFID", "key");
}
};
export const extern_rfid_read = {
init: function () {
this.setColour(SENSOR_EXTERN_HUE);
this.appendDummyInput()
.appendField("RFID" + Blockly.Msg.MIXLY_RFID_READ_CARD);
this.appendValueInput('SUB')
.setCheck("var");
this.appendValueInput('SECTOR')
.appendField(Blockly.Msg.MIXLY_LIST_INDEX)
this.appendDummyInput("")
.appendField(new Blockly.FieldDropdown([
[Blockly.Msg.MIXLY_RFID_READ_CARD_UID, "id"],
[Blockly.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL, "content"],
[Blockly.Msg.MIXLY_ALL, "ALL"]
]), "key");
this.setOutput(true, Number);
this.setInputsInline(true);
}
};
export const extern_rfid_readid = {
init: function () {
this.setColour(SENSOR_EXTERN_HUE);
this.appendDummyInput()
.appendField("RFID" + Blockly.Msg.MIXLY_RFID_READ_CARD);
this.appendValueInput('SUB')
.setCheck("var");
this.appendDummyInput("")
.appendField(Blockly.Msg.MIXLY_RFID_READ_CARD_UID);
this.setOutput(true, Number);
this.setInputsInline(true);
}
};
export const extern_rfid_readcontent = {
init: function () {
this.setColour(SENSOR_EXTERN_HUE);
this.appendDummyInput()
.appendField("RFID" + Blockly.Msg.MIXLY_RFID_READ_CARD);
this.appendValueInput('SUB')
.setCheck("var");
this.appendValueInput('SECTOR')
.appendField(Blockly.Msg.MIXLY_LIST_INDEX)
this.appendDummyInput("")
.appendField(Blockly.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL);
this.setOutput(true, 'Tuple');
this.setInputsInline(true);
}
};
export const extern_rfid_write = {
init: function () {
this.setColour(SENSOR_EXTERN_HUE);
this.appendDummyInput()
.appendField(Blockly.Msg.MIXLY_COMMUNICATION_RFID_WRITE);
this.appendValueInput('SUB')
.setCheck("var")
this.appendValueInput('SECTOR')
.appendField(Blockly.Msg.MIXLY_LIST_INDEX)
this.appendValueInput('CONTENT')
.appendField(Blockly.Msg.MIXLY_COMMUNICATION_WRITE_NUM)
this.setInputsInline(true);
this.setPreviousStatement(true, null);
this.setNextStatement(true, null);
}
};
export const extern_rfid_write_return = {
init: function () {
this.setColour(SENSOR_EXTERN_HUE);
this.appendDummyInput()
.appendField(Blockly.Msg.MIXLY_COMMUNICATION_RFID_WRITE);
this.appendValueInput('SUB')
.setCheck("var")
this.appendValueInput('SECTOR')
.appendField(Blockly.Msg.MIXLY_LIST_INDEX)
this.appendValueInput('CONTENT')
.appendField(Blockly.Msg.MIXLY_COMMUNICATION_WRITE_NUM)
this.appendDummyInput()
.appendField(Blockly.Msg.RETURN_SUCCESS_OR_NOT);
this.setInputsInline(true);
this.setOutput(true, Boolean);
}
};
export const extern_rfid_status = {
init: function () {
this.setColour(SENSOR_EXTERN_HUE);
this.appendDummyInput()
.appendField("RFID");
this.appendValueInput('SUB')
.setCheck("var");
this.appendDummyInput("")
.appendField(new Blockly.FieldDropdown([
[Blockly.Msg.MIXLY_RFID_SCAN_OK, "0"],
[Blockly.Msg.MIXLY_RFID_SCAN_NOTAGERR, "1"],
[Blockly.Msg.MIXLY_RFID_SCAN_ERROR, "2"]
]), "key");
this.setOutput(true, Number);
this.setInputsInline(true);
}
};
//--------------------待写气象数据
export const weather_data = {
init: function () {
this.setColour(SENSOR_EXTERN_HUE);
this.appendValueInput('SUB')
.appendField("无线气象站" + " WS-LoRa")
.setCheck("var");
this.appendDummyInput("")
.appendField(Blockly.Msg.MIXLY_MICROBIT_JS_GET)
.appendField(new Blockly.FieldDropdown([
["全部(元组)", "data()[0]"],
["全部json", "data()[1]"],
["全部json,附带位置信息)", "data()[2]"],
["编号", "data()[0][0]"],
["电量", "data()[0][1]"],
["风速", "data()[0][2]"],
["阵风", "data()[0][3]"],
["风向", "data()[0][4]"],
["雨量", "data()[0][5]"],
["温度", "data()[0][6]"],
["湿度", "data()[0][7]"],
["光照", "data()[0][8]"],
["紫外线", "data()[0][9]"],
["大气压", "data()[0][10]"],
["信号强度", "data()[0][11]"],
["信噪比", "data()[0][12]"],
]), "key");
this.setOutput(true, Number);
this.setInputsInline(true);
this.setTooltip("返回气象数据元组 data= (设备id,电池状态,风速m/s,阵风m/s,风向°,雨量mm,温度℃,湿度%,光照Lux,UVI,大气压Pa,信号强度dB,信噪比dB)");
}
};
export const weather_have_data = {
init: function () {
this.setColour(SENSOR_EXTERN_HUE);
this.appendValueInput('SUB')
.appendField("无线气象站" + " WS-LoRa")
.setCheck("var");
this.appendDummyInput("")
.appendField(Blockly.Msg.MIXLY_SERIAL_AVAILABLE)
this.setOutput(true, Number);
this.setInputsInline(true);
}
};
export const weather_uart_mixio = {
init: function () {
this.setColour(SENSOR_EXTERN_HUE);
this.appendValueInput('SUB')
.appendField("无线气象站" + " WS-LoRa")
.setCheck("var");
this.appendValueInput('BASE')
.appendField("以主题")
this.appendDummyInput("")
.appendField("串口发送至MixIO")
this.setInputsInline(true);
this.setPreviousStatement(true, null);
this.setNextStatement(true, null);
}
};
export const weather_set_label = {
init: function () {
this.setColour(SENSOR_EXTERN_HUE);
this.appendValueInput('SUB')
.appendField("无线气象站" + " WS-LoRa")
.setCheck("var");
this.itemCount_ = 2;
this.updateShape_();
this.setPreviousStatement(false);
this.setNextStatement(false);
this.setInputsInline(true);
this.setMutator(new Blockly.icons.MutatorIcon(['weather_set_label_item'], this));
this.setPreviousStatement(true);
this.setNextStatement(true);
this.setTooltip();
},
mutationToDom: function () {
var container = document.createElement('mutation');
container.setAttribute('items', this.itemCount_);
return container;
},
domToMutation: function (xmlElement) {
this.itemCount_ = parseInt(xmlElement.getAttribute('items'), 10);
this.updateShape_();
},
decompose: function (workspace) {
var containerBlock =
workspace.newBlock('weather_set_label_container');
containerBlock.initSvg();
var connection = containerBlock.getInput('STACK').connection;
for (var i = 0; i < this.itemCount_; i++) {
var itemBlock = workspace.newBlock('weather_set_label_item');
itemBlock.initSvg();
connection.connect(itemBlock.previousConnection);
connection = itemBlock.nextConnection;
}
return containerBlock;
},
compose: function (containerBlock) {
var itemBlock = containerBlock.getInputTargetBlock('STACK');
// Count number of inputs.
var connections = [];
var i = 0;
while (itemBlock) {
connections[i] = itemBlock.valueConnection_;
itemBlock = itemBlock.nextConnection &&
itemBlock.nextConnection.targetBlock();
i++;
}
this.itemCount_ = i;
this.updateShape_();
// Reconnect any child blocks.
for (var i = 0; i < this.itemCount_; i++) {
if (connections[i]) {
this.getInput('ADD' + i)
.connection.connect(connections[i]);
}
}
},
saveConnections: function (containerBlock) {
var itemBlock = containerBlock.getInputTargetBlock('STACK');
var i = 0;
while (itemBlock) {
var input = this.getInput('ADD' + i);
itemBlock.valueConnection_ = input && input.connection.targetConnection;
i++;
itemBlock = itemBlock.nextConnection &&
itemBlock.nextConnection.targetBlock();
}
},
updateShape_: function () {
// Delete everything.
if (this.getInput('EMPTY')) {
this.removeInput('EMPTY');
} else {
var i = 0;
while (this.getInput('ADD' + i)) {
this.removeInput('ADD' + i);
i++;
}
}
// Rebuild block.
if (this.itemCount_ == 0) {
this.appendDummyInput('EMPTY')
.appendField(Blockly.Msg.MIXLY_SETTING + Blockly.Msg.MIXLY_GPS_LOCATION + Blockly.Msg.mixpy_PYLAB_TICKS_TAG + '(id,long,lat)');
} else {
for (var i = 0; i < this.itemCount_; i++) {
var input = this.appendValueInput('ADD' + i);
if (i == 0) {
input.appendField(Blockly.Msg.MIXLY_SETTING + Blockly.Msg.MIXLY_GPS_LOCATION + Blockly.Msg.mixpy_PYLAB_TICKS_TAG + '(id,long,lat)');
}
}
}
}
};
export const weather_set_label_container = {
init: function () {
this.setColour(SENSOR_EXTERN_HUE);
this.appendDummyInput()
.appendField(Blockly.Msg.MIXLY_SETTING + Blockly.Msg.MIXLY_GPS_LOCATION + Blockly.Msg.mixpy_PYLAB_TICKS_TAG);
this.appendStatementInput('STACK');
this.contextMenu = false;
}
};
export const weather_set_label_item = {
init: function () {
this.setColour(SENSOR_EXTERN_HUE);
this.appendDummyInput()
.appendField(Blockly.Msg.LISTS_CREATE_WITH_ITEM_TITLE);
this.setPreviousStatement(true);
this.setNextStatement(true);
this.contextMenu = false;
}
};
export const sensor_mixgoce_hot_wheel_is_touched = {
init: function () {
this.setColour(SENSOR_EXTERN_HUE);
this.appendDummyInput()
.appendField(Blockly.Msg.MIXLY_HOT_WHEEL)
.appendField(Blockly.Msg.MIXLY_ESP32_TOUCH_SENSOR)
.appendField(new Blockly.FieldDropdown([
[Blockly.Msg.MIXLY_UP, "4"],
[Blockly.Msg.MIXLY_DOWN, "2"],
[Blockly.Msg.MIXLY_LEFT, "3"],
[Blockly.Msg.MIXLY_RIGHT, "1"],
["OK", "0"]
]), "key");
this.appendDummyInput()
.appendField(Blockly.Msg.MIXLY_MICROBIT_JS_GET)
.appendField(new Blockly.FieldDropdown([
[Blockly.Msg.MIXLY_DATA, "value"],
[Blockly.Msg.MIXLY_PULSEIN_STAT, "is_touched()"]
]), "stat");
this.setOutput(true, Boolean);
this.setInputsInline(true);
this.setTooltip();
}
};
export const sensor_mixgoce_hot_wheel_degrees = {
init: function () {
this.setColour(SENSOR_EXTERN_HUE);
this.appendDummyInput()
.appendField(Blockly.Msg.MIXLY_HOT_WHEEL)
.appendField(Blockly.Msg.MIXLY_ESP32_TOUCH_SENSOR)
.appendField(Blockly.Msg.MIXLY_MICROBIT_JS_GET + Blockly.Msg.MIXLY_MICROBIT_JS_BY_ANGLE + '(-180°~180°)');
this.setOutput(true, Boolean);
this.setInputsInline(true);
this.setTooltip();
}
};
export const esp32_s2_weather_init = {
init: function () {
this.setColour(SENSOR_EXTERN_HUE);
this.appendDummyInput()
.appendField(Blockly.Msg.MIXLY_SETUP + Blockly.Msg.ForecastType + Blockly.Msg.MSG.catSensor);
this.appendValueInput('wd')
.setCheck(Number)
.appendField('wd');
this.appendValueInput('ws')
.setCheck(Number)
.appendField('ws');
this.appendValueInput('rain')
.setCheck(Number)
.appendField('rain');
this.setInputsInline(true);
this.setPreviousStatement(true);
this.setNextStatement(true);
}
};
export const esp32_s2_weather_wd = {
init: function () {
this.setColour(SENSOR_EXTERN_HUE);
this.appendDummyInput()
.appendField(Blockly.Msg.ForecastType + Blockly.Msg.MSG.catSensor)
.appendField(Blockly.Msg.MIXLY_MICROBIT_PY_STORAGE_GET + Blockly.Msg.ForecastFx)
this.setOutput(true, Number);
this.setInputsInline(true);
}
};
export const esp32_s2_weather_rain = {
init: function () {
this.setColour(SENSOR_EXTERN_HUE);
this.appendValueInput('rain')
.appendField(Blockly.Msg.ForecastType + Blockly.Msg.MSG.catSensor)
.appendField(Blockly.Msg.MIXLY_MICROBIT_PY_STORAGE_GET)
this.appendDummyInput()
.appendField(Blockly.Msg.MIXLY_RAIN_TIME + Blockly.Msg.MIXLY_RAIN)
this.setOutput(true, Number);
this.setInputsInline(true);
}
};
export const esp32_s2_weather_ws = {
init: function () {
this.setColour(SENSOR_EXTERN_HUE);
this.appendDummyInput()
.appendField(Blockly.Msg.ForecastType + Blockly.Msg.MSG.catSensor)
.appendField(Blockly.Msg.MIXLY_MICROBIT_PY_STORAGE_GET)
this.appendDummyInput("")
.appendField(new Blockly.FieldDropdown([
[Blockly.Msg.blynk_IOT_IR_FAN, "0"],
[Blockly.Msg.MIXLY_WIND_RATING, "1"],
[Blockly.Msg.blynk_IOT_IR_FAN + Blockly.Msg.MIXLY_WIND_RATING, "ALL"]
]), "key");
this.setOutput(true, Number);
this.setInputsInline(true);
}
};
export const HCSR04 = {
init: function () {
this.setColour(SENSOR_EXTERN_HUE);
this.appendDummyInput("")
.appendField(Blockly.Msg.MIXLY_CHAOSHENGBO);
this.appendValueInput("PIN1", Number)
.appendField('Trig #')
.setCheck(Number);
this.appendValueInput("PIN2", Number)
.appendField('Echo #')
.setCheck(Number);
this.setInputsInline(true);
this.setOutput(true, Number);
this.setTooltip(Blockly.Msg.MIXLY_TOOLTIP_BLOCKGROUP_CHAOSHENGBO);
}
};
//PS2
export const PS2_init = {
init: function () {
this.setColour(SENSOR_EXTERN_HUE);
this.appendDummyInput("")
.appendField(Blockly.Msg.MIXLY_SETUP + Blockly.Msg.PS2);
this.appendDummyInput("")
.appendField('CLK#')
.appendField(new Blockly.FieldDropdown(Profile.default.output_pin), "PS2_CLK")
.appendField('DOU#')
.appendField(new Blockly.FieldDropdown(Profile.default.output_pin), "PS2_DOU")
.appendField('DIN#')
.appendField(new Blockly.FieldDropdown(Profile.default.output_pin), "PS2_DIN")
.appendField('CS#')
.appendField(new Blockly.FieldDropdown(Profile.default.output_pin), "PS2_CS");
// this.appendDummyInput("")
// .appendField(Blockly.Msg.PS2_setRumble)
// .appendField(new Blockly.FieldDropdown([[Blockly.Msg.MIXLY_ON,"true"],[Blockly.Msg.MIXLY_OFF,"false"]]), "rumble");
this.setInputsInline(true);
this.setPreviousStatement(true);
this.setNextStatement(true);
this.setTooltip('');
}
};
const PSBUTTON = [
[Blockly.Msg.PS2_TRIANGLE, "PSB_GREEN"],
[Blockly.Msg.PS2_CIRCLE, "PSB_RED"],
[Blockly.Msg.PS2_CROSS, "PSB_BLUE"],
[Blockly.Msg.PS2_SQUARE, "PSB_PINK"],
[Blockly.Msg.PS2_L1, "PSB_L1"],
[Blockly.Msg.PS2_L2, "PSB_L2"],
// ["PSB_L3","PSB_L3"],
[Blockly.Msg.PS2_R1, "PSB_R1"],
[Blockly.Msg.PS2_R2, "PSB_R2"],
// ["PSB_R3","PSB_R3"],
[Blockly.Msg.PS2_UP, "PSB_PAD_UP"],
[Blockly.Msg.PS2_RIGHT, "PSB_PAD_RIGHT"],
[Blockly.Msg.PS2_DOWN, "PSB_PAD_DOWN"],
[Blockly.Msg.PS2_LEFT, "PSB_PAD_LEFT"],
[Blockly.Msg.PS2_SELECT, "PSB_SELECT"],
[Blockly.Msg.PS2_START, "PSB_START"]
];
//
export const PS2_vibration = {
init: function () {
this.setColour(SENSOR_EXTERN_HUE);
this.appendDummyInput("")
.appendField(Blockly.Msg.PS2 + Blockly.Msg.PS2_setRumble)
.appendField(Blockly.Msg.MIXLY_STM32_OLED_SMALL + Blockly.Msg.MSG.catActuator_motor)
.appendField(new Blockly.FieldDropdown([
[Blockly.Msg.MIXLY_MICROBIT_PY_COMMUNICATE_OFF, "0"],
[Blockly.Msg.MIXLY_MICROBIT_PY_COMMUNICATE_ON, "1"],
]), "smotorstate")
.appendField(Blockly.Msg.MIXLY_STM32_OLED_BIG + Blockly.Msg.MSG.catActuator_motor + Blockly.Msg.MIXLY_MIXGOPE_AMPLITUDE)
this.appendValueInput("AMP", Number)
this.setTooltip(Blockly.Msg.MIXLY_STM32_OLED_BIG + Blockly.Msg.MSG.catActuator_motor + Blockly.Msg.MIXLY_MIXGOPE_AMPLITUDE + "0-100");
this.setInputsInline(true);
this.setPreviousStatement(true);
this.setNextStatement(true);
}
};
//
export const PS2_Button = {
init: function () {
this.setColour(SENSOR_EXTERN_HUE);
this.appendDummyInput("")
.appendField(Blockly.Msg.PS2_BUTTON)
.appendField(new Blockly.FieldDropdown(PSBUTTON), "psbt")
.appendField(Blockly.Msg.MIXLY_PULSEIN_STAT)
.appendField(new Blockly.FieldDropdown([[Blockly.Msg.MIXLY_BUTTON_HOLD, "Button"]
// ,[Blockly.Msg.MIXLY_BUTTON_PRESSED, "ButtonPressed"]
// ,[Blockly.Msg.MIXLY_BUTTON_RELEASED,"ButtonReleased"]
// ,[Blockly.Msg.MIXLY_CHANGE,"NewButtonState"]
]), "btstate");
this.setOutput(true, Boolean);
this.setTooltip('');
}
};
//
export const PS2_State = {
init: function () {
this.setColour(SENSOR_EXTERN_HUE);
this.appendDummyInput("")
.appendField(Blockly.Msg.MIXLY_GET + Blockly.Msg.PS2_BUTTON)
.appendField(new Blockly.FieldDropdown([[Blockly.Msg.MIXLY_PULSEIN_STAT, "0"]
, [Blockly.Msg.MIXLY_MICROBIT_JS_I2C_VALUE, "1"]
// ,[Blockly.Msg.MIXLY_BUTTON_RELEASED,"ButtonReleased"]
// ,[Blockly.Msg.MIXLY_CHANGE,"NewButtonState"]
]), "btstate");
this.setOutput(true, Boolean);
this.setTooltip('');
}
};
export const PS2_Buttons = {
init: function () {
this.setColour(SENSOR_EXTERN_HUE);
this.appendDummyInput("")
.appendField(Blockly.Msg.PS2_BUTTON)
.appendField(new Blockly.FieldDropdown(PSBUTTON), "psbt")
this.setOutput(true, Boolean);
this.setTooltip('');
}
};
export const PS2_stk = {
init: function () {
this.setColour(SENSOR_EXTERN_HUE);
this.appendDummyInput("")
.appendField(Blockly.Msg.PS2_stick)
.appendField(new Blockly.FieldDropdown(PS2_stk.PSSTK), "psstk");
this.setOutput(true, Number);
this.setTooltip('');
},
PSSTK: [
[Blockly.Msg.PS2_RX, "0"],
[Blockly.Msg.PS2_RY, "1"],
[Blockly.Msg.PS2_LX, "2"],
[Blockly.Msg.PS2_LY, "3"],
]
};
export const PS2_init_new = {
init: function () {
this.setColour(SENSOR_EXTERN_HUE);
this.appendValueInput('SUB')
.appendField(Blockly.Msg.MIXLY_SETUP + Blockly.Msg.PS2);
this.appendValueInput('CLK')
.appendField('CLK#');
this.appendValueInput('DOU')
.appendField('DOU#');
this.appendValueInput('DIN')
.appendField('DIN#');
this.appendValueInput('CS')
.appendField('CS#');
this.setInputsInline(true);
this.setPreviousStatement(true);
this.setNextStatement(true);
this.setTooltip('');
}
};
export const PS2_vibration_new = {
init: function () {
this.setColour(SENSOR_EXTERN_HUE);
this.appendValueInput('SUB')
.appendField(Blockly.Msg.PS2);
this.appendDummyInput("")
.appendField(Blockly.Msg.PS2_setRumble)
.appendField(Blockly.Msg.MIXLY_STM32_OLED_SMALL + Blockly.Msg.MSG.catActuator_motor)
.appendField(new Blockly.FieldDropdown([
[Blockly.Msg.MIXLY_MICROBIT_PY_COMMUNICATE_OFF, "0"],
[Blockly.Msg.MIXLY_MICROBIT_PY_COMMUNICATE_ON, "1"],
]), "smotorstate")
.appendField(Blockly.Msg.MIXLY_STM32_OLED_BIG + Blockly.Msg.MSG.catActuator_motor + Blockly.Msg.MIXLY_MIXGOPE_AMPLITUDE)
this.appendValueInput("AMP", Number)
this.setTooltip(Blockly.Msg.MIXLY_STM32_OLED_BIG + Blockly.Msg.MSG.catActuator_motor + Blockly.Msg.MIXLY_MIXGOPE_AMPLITUDE + "0-100");
this.setInputsInline(true);
this.setPreviousStatement(true);
this.setNextStatement(true);
}
};
export const PS2_Buttons_new = {
init: function () {
this.setColour(SENSOR_EXTERN_HUE);
this.appendValueInput('SUB')
.appendField(Blockly.Msg.PS2);
this.appendDummyInput("")
.appendField(Blockly.Msg.PS2_BUTTON.slice(3))
.appendField(new Blockly.FieldDropdown(PSBUTTON), "psbt")
.appendField(Blockly.Msg.MIXLY_WAS_PRESSED)
this.setOutput(true, Boolean);
this.setTooltip('');
}
};
export const PS2_stk_new = {
init: function () {
this.setColour(SENSOR_EXTERN_HUE);
this.appendValueInput('SUB')
.appendField(Blockly.Msg.PS2);
this.appendDummyInput("")
.appendField(Blockly.Msg.MIXLY_JOYSTICK)
.appendField(new Blockly.FieldDropdown(PS2_stk_new.PSSTK), "psstk");
this.setOutput(true, Number);
this.setTooltip('');
},
PSSTK: [
[Blockly.Msg.PS2_RX, "RX"],
[Blockly.Msg.PS2_RY, "RY"],
[Blockly.Msg.PS2_LX, "LX"],
[Blockly.Msg.PS2_LY, "LY"],
]
};
export const sensor_use_uart_init = {
init: function () {
this.setColour(SENSOR_EXTERN_HUE);
this.appendDummyInput("")
.appendField(Blockly.Msg.CONTROLS_FOR_INPUT_WITH + "uart")
.appendField(new Blockly.FieldDropdown([
["uart1", "uart1"],
["uart2", "uart2"]
]), "key");
this.appendValueInput('SUB')
.appendField(Blockly.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE)
.setCheck("var");
this.appendDummyInput("")
.appendField(Blockly.Msg.MIXLY_SETUP + Blockly.Msg.LISTS_SET_INDEX_INPUT_TO)
.appendField(new Blockly.FieldDropdown([
[Blockly.Msg.MIXLY_PM25_SENSOR, "PM"],
[Blockly.Msg.MIXLY_GNSS_SENSOR, "GNSS"],
[Blockly.Msg.MIXLY_TVOC_CO2_SENSOR, "TVOC"]
]), "sensor");
this.setInputsInline(true);
this.setPreviousStatement(true, null);
this.setNextStatement(true, null);
}
};
export const pm25_get_data = {
init: function () {
this.setColour(SENSOR_EXTERN_HUE);
this.appendValueInput('SUB')
.appendField('PM2.5' + Blockly.Msg.MSG.catSensor)
this.appendDummyInput()
.appendField(Blockly.Msg.MIXLY_GET)
.appendField(new Blockly.FieldDropdown([
['PM2.5', "[0]"],
['PM10', "[1]"],
['(PM2.5, PM10)', ""],
]), "pm")
this.appendDummyInput()
.appendField(Blockly.Msg.MIXLY_CONCENTRATION)
this.setOutput(true);
this.setInputsInline(true);
this.setTooltip(Blockly.Msg.MIXLY_PM_CONCENTRATION_TOOLTIP);
}
};
export const gnss_have_data = {
init: function () {
this.setColour(SENSOR_EXTERN_HUE);
this.appendValueInput('SUB')
.appendField(Blockly.Msg.MIXLY_GNSS_SENSOR)
.setCheck("var");
this.appendDummyInput("")
.appendField(Blockly.Msg.MIXLY_SERIAL_AVAILABLE)
this.setOutput(true, Number);
this.setInputsInline(true);
}
};
export const gnss_get_data = {
init: function () {
this.setColour(SENSOR_EXTERN_HUE);
this.appendValueInput('SUB')
.appendField(Blockly.Msg.MIXLY_GNSS_SENSOR)
.setCheck("var");
this.appendDummyInput("")
.appendField(Blockly.Msg.MIXLY_MICROBIT_JS_GET)
.appendField(new Blockly.FieldDropdown([
[Blockly.Msg.MIXLY_GPS_TIME, "time"],
[Blockly.Msg.MIXLY_GPS_LOCATION, "locate"],
[Blockly.Msg.MIXLY_PULSEIN_STAT, "status"]
]), "key");
this.setOutput(true, Number);
this.setInputsInline(true);
var thisBlock = this;
this.setTooltip(function () {
var mode = thisBlock.getFieldValue('key');
var TOOLTIPS = {
'time': Blockly.Msg.MIXLY_GNSS_SENSOR_GET_TIME_TOOLTIP,
'locate': Blockly.Msg.MIXLY_GNSS_SENSOR_GET_LOCATE_TOOLTIP,
'status': Blockly.Msg.MIXLY_GNSS_SENSOR_GET_STATUS_TOOLTIP
};
return TOOLTIPS[mode];
});
}
};
export const tvoc_get_data = {
init: function () {
this.setColour(SENSOR_EXTERN_HUE);
this.appendValueInput('SUB')
.appendField(Blockly.Msg.MIXLY_TVOC_CO2_SENSOR)
.setCheck("var");
this.appendDummyInput("")
.appendField(Blockly.Msg.MIXLY_GET)
.appendField(new Blockly.FieldDropdown([
[Blockly.Msg.MIXLY_TVOC_CO2_SENSOR_GRT_DATA1,"[0]"],
[Blockly.Msg.MIXLY_TVOC_CO2_SENSOR_GRT_DATA2,"[1]"],
[Blockly.Msg.MIXLY_TVOC_CO2_SENSOR_GRT_DATA3,"[2]"],
[Blockly.Msg.MIXLY_TVOC_CO2_SENSOR_GRT_DATA1+"、"+Blockly.Msg.MIXLY_TVOC_CO2_SENSOR_GRT_DATA2+"、"+Blockly.Msg.MIXLY_TVOC_CO2_SENSOR_GRT_DATA3 , ""]
]),"key")
this.setOutput(true, Number);
this.setInputsInline(true);
}
};
//mixbot/feiyi extern below:
export const robot_button_extern_get_value = {
init: function () {
this.setColour(SENSOR_EXTERN_HUE);
this.appendDummyInput()
.appendField(Blockly.Msg.ME_GO_MOTOR_EXTERN + Blockly.Msg.MIXLY_BUTTON)
.appendField(Blockly.Msg.PIN_NUMBERING)
.appendField(new Blockly.FieldDropdown([
[Blockly.Msg.MIXLY_LEFT, "0"],
[Blockly.Msg.MIXLY_RIGHT, "1"]
]), "mode");
this.appendDummyInput()
.appendField(Blockly.Msg.TURTLE_POS)
.appendField(new Blockly.FieldDropdown([
[Blockly.Msg.mixpy_PL_TEXT_TOP, '[0]'],
[Blockly.Msg.mixpy_PL_TEXT_BOTTOM, '[1]'],
[Blockly.Msg.TEXT_TRIM_LEFT, '[2]'],
[Blockly.Msg.TEXT_TRIM_RIGHT, '[3]'],
[Blockly.Msg.mixpy_PL_TEXT_CENTER, '[4]']
]), "num");
this.appendDummyInput()
.appendField(Blockly.Msg.MIXLY_GET + Blockly.Msg.MIXLY_DATA)
this.setOutput(true, Number);
this.setInputsInline(true);
}
};
export const robot_touch_extern_get_value = {
init: function () {
this.setColour(SENSOR_EXTERN_HUE);
this.appendDummyInput()
.appendField(Blockly.Msg.ME_GO_MOTOR_EXTERN + Blockly.Msg.MIXLY_MICROBIT_JS_INOUT_EVENT_TOUCH + Blockly.Msg.MSG.catSensor)
.appendField(Blockly.Msg.PIN_NUMBERING)
.appendField(new Blockly.FieldDropdown([
[Blockly.Msg.MIXLY_LEFT, "0"],
[Blockly.Msg.MIXLY_RIGHT, "1"]
]), "mode");
this.appendDummyInput()
.appendField(Blockly.Msg.MIXLY_MIXBOT_EXTERN_TOUCHED + "?")
this.setOutput(true, Boolean);
this.setInputsInline(true);
}
};
export const robot_infrared_extern_get_value = {
init: function () {
this.setColour(SENSOR_EXTERN_HUE);
this.appendDummyInput()
.appendField(Blockly.Msg.ME_GO_MOTOR_EXTERN + Blockly.Msg.MIXLY_ESP32_EXTERN_NEAR)
.appendField(Blockly.Msg.PIN_NUMBERING)
.appendField(new Blockly.FieldDropdown([
[Blockly.Msg.MIXLY_LEFT, "0"],
[Blockly.Msg.MIXLY_RIGHT, "1"]
]), "mode");
this.appendDummyInput()
.appendField(Blockly.Msg.MIXLY_GET + Blockly.Msg.MIXLY_DATA)
this.setOutput(true, Number);
this.setInputsInline(true);
}
};
export const robot_infrared_extern_grey_get_value = {
init: function () {
this.setColour(SENSOR_EXTERN_HUE);
this.appendDummyInput()
.appendField(Blockly.Msg.ME_GO_MOTOR_EXTERN + Blockly.Msg.MIXLY_ESP32_EXTERN_GRAY_NEAR)
.appendField(Blockly.Msg.PIN_NUMBERING)
.appendField(new Blockly.FieldDropdown([
[Blockly.Msg.MIXLY_LEFT, "0"],
[Blockly.Msg.MIXLY_RIGHT, "1"]
]), "mode");
this.appendDummyInput()
.appendField(Blockly.Msg.MIXLY_GET + Blockly.Msg.MIXLY_DATA)
this.setOutput(true, Number);
this.setInputsInline(true);
}
};
export const robot_potentiometer_extern_get_value = {
init: function () {
this.setColour(SENSOR_EXTERN_HUE);
this.appendDummyInput()
.appendField(Blockly.Msg.ME_GO_MOTOR_EXTERN + Blockly.Msg.MIXLY_KNOB_POTENTIOMETER)
.appendField(Blockly.Msg.PIN_NUMBERING)
.appendField(new Blockly.FieldDropdown([
[Blockly.Msg.MIXLY_LEFT, "0"],
[Blockly.Msg.MIXLY_RIGHT, "1"]
]), "mode");
this.appendDummyInput()
.appendField(Blockly.Msg.MIXLY_GET + Blockly.Msg.MIXLY_DATA)
this.setOutput(true, Number);
this.setInputsInline(true);
}
};
export const robot_color_extern_get_value = {
init: function () {
this.setColour(SENSOR_EXTERN_HUE);
this.appendDummyInput()
.appendField(Blockly.Msg.ME_GO_MOTOR_EXTERN + Blockly.Msg.HTML_COLOUR + Blockly.Msg.MSG.catSensor)
.appendField(Blockly.Msg.PIN_NUMBERING)
.appendField(new Blockly.FieldDropdown([
[Blockly.Msg.MIXLY_LEFT, "0"],
[Blockly.Msg.MIXLY_RIGHT, "1"]
]), "mode");
this.appendDummyInput()
.appendField(Blockly.Msg.MIXLY_GET)
.appendField(new Blockly.FieldDropdown([
[Blockly.Msg.HTML_COLOUR + Blockly.Msg.HTML_NAME, '[0]'],
["RGB" + Blockly.Msg.MIXLY_MICROBIT_TYPE_TUPLE, '[1]'],
[Blockly.Msg.MIXLY_ENVIRONMENT_BRIGHTNESS, '[2]'],
[Blockly.Msg.MIXLY_REFLECTION_BRIGHTNESS, '[3]'],
[Blockly.Msg.MIXLY_ALL, '']
]), "color");
this.setOutput(true, Boolean);
this.setInputsInline(true);
}
};
export const mixbot_sensor_extern_get_addr = {
init: function () {
this.setColour(SENSOR_EXTERN_HUE);
this.appendDummyInput()
.appendField(Blockly.Msg.MIXBOT)
.appendField(Blockly.Msg.ME_GO_MOTOR_EXTERN)
.appendField(new Blockly.FieldDropdown([
[Blockly.Msg.MIXLY_BUTTON, 'ext_button'],
[Blockly.Msg.MIXLY_MICROBIT_JS_INOUT_EVENT_TOUCH + Blockly.Msg.MSG.catSensor, 'ext_collision'],
[Blockly.Msg.MIXLY_ESP32_EXTERN_NEAR, 'ext_infrared'],
[Blockly.Msg.MIXLY_KNOB_POTENTIOMETER, 'ext_potentiometer'],
[Blockly.Msg.HTML_COLOUR + Blockly.Msg.MSG.catSensor, 'ext_color'],
[Blockly.Msg.MIXLY_EXTERN_SONAR, 'ext_sonar']
]), "name")
this.appendDummyInput()
.appendField(Blockly.Msg.MIXLY_MIXBOT_EXTERN_GET_ADDR)
this.setOutput(true);
this.setInputsInline(true);
}
};
export const mixbot_sensor_extern_set_addr = {
init: function () {
this.setColour(SENSOR_EXTERN_HUE);
this.appendDummyInput()
.appendField(Blockly.Msg.MIXBOT)
.appendField(Blockly.Msg.ME_GO_MOTOR_EXTERN)
.appendField(new Blockly.FieldDropdown([
[Blockly.Msg.MIXLY_BUTTON, 'ext_button'],
[Blockly.Msg.MIXLY_MICROBIT_JS_INOUT_EVENT_TOUCH + Blockly.Msg.MSG.catSensor, 'ext_collision'],
[Blockly.Msg.MIXLY_ESP32_EXTERN_NEAR, 'ext_infrared'],
[Blockly.Msg.MIXLY_KNOB_POTENTIOMETER, 'ext_potentiometer'],
[Blockly.Msg.HTML_COLOUR + Blockly.Msg.MSG.catSensor, 'ext_color'],
[Blockly.Msg.MIXLY_EXTERN_SONAR, 'ext_sonar']
]), "name")
this.appendDummyInput()
.appendField(Blockly.Msg.MIXLY_MIXBOT_EXTERN_SET_ADDR)
this.appendValueInput('old')
.setCheck(Number)
.setAlign(Blockly.inputs.Align.RIGHT)
.appendField(Blockly.Msg.MIXLY_MICROBIT_JS_CURRENT_GESTURE);
this.appendValueInput('new')
.setCheck(Number)
.setAlign(Blockly.inputs.Align.RIGHT)
.appendField(Blockly.Msg.MIXLY_UPDATE);
this.setPreviousStatement(true, null);
this.setNextStatement(true, null);
this.setInputsInline(true);
}
};
export const robot_sonar_extern_get_value = {
init: function () {
this.setColour(SENSOR_EXTERN_HUE);
this.appendDummyInput()
.appendField(Blockly.Msg.ME_GO_MOTOR_EXTERN + Blockly.Msg.MIXLY_EXTERN_SONAR)
.appendField(Blockly.Msg.PIN_NUMBERING)
.appendField(new Blockly.FieldDropdown([
[Blockly.Msg.MIXLY_LEFT, "0"],
[Blockly.Msg.MIXLY_RIGHT, "1"]
]), "mode");
this.appendDummyInput()
.appendField(Blockly.Msg.MIXLY_GET + Blockly.Msg.MIXLY_DATA + '(cm)')
this.setOutput(true, Number);
this.setInputsInline(true);
}
};
export const robot_sonar_extern_led = {
init: function () {
this.setColour(SENSOR_EXTERN_HUE);
this.appendDummyInput()
.appendField(Blockly.Msg.ME_GO_MOTOR_EXTERN + Blockly.Msg.MIXLY_EXTERN_SONAR)
.appendField(Blockly.Msg.PIN_NUMBERING)
.appendField(new Blockly.FieldDropdown([
[Blockly.Msg.MIXLY_LEFT, "0"],
[Blockly.Msg.MIXLY_RIGHT, "1"]
]), "mode");
this.appendDummyInput()
.appendField(Blockly.Msg.MIXLY_EXTERN_INDICATOR_LIGHT)
this.appendValueInput('light')
.setCheck(Number)
.setAlign(Blockly.inputs.Align.RIGHT)
.appendField(Blockly.Msg.LCD_NUMBERING);
this.appendValueInput('bright')
.appendField(Blockly.Msg.MIXLY_PULSEIN_STAT)
this.setPreviousStatement(true, null);
this.setNextStatement(true, null);
this.setInputsInline(true);
}
};
export const sensor_weather_solo_init = {
init: function () {
this.setColour(SENSOR_EXTERN_HUE);
this.appendValueInput('SUB')
.appendField(Blockly.Msg.MIXLY_SETUP + Blockly.Msg.weather_solo);
this.appendValueInput('wd')
.appendField('W-D#');
this.appendValueInput('ws')
.appendField('W-S#');
this.appendValueInput('rain')
.appendField('Rain#');
this.setInputsInline(true);
this.setPreviousStatement(true);
this.setNextStatement(true);
this.setTooltip('');
}
};
export const sensor_weather_solo_wd = {
init: function () {
this.setColour(SENSOR_EXTERN_HUE);
this.appendValueInput('SUB')
.appendField(Blockly.Msg.weather_solo);
this.appendDummyInput("")
.appendField(Blockly.Msg.MIXLY_MICROBIT_JS_GET + Blockly.Msg.ForecastFx)
.appendField(new Blockly.FieldDropdown([
[Blockly.Msg.MIXLY_ABBR, "[0]"],
[Blockly.Msg.MIXLY_MICROBIT_JS_BY_ANGLE, "[1]"]
]), "key");
this.setOutput(true, Number);
this.setInputsInline(true);
}
};
export const sensor_weather_solo_ws = {
init: function () {
this.setColour(SENSOR_EXTERN_HUE);
this.appendValueInput('SUB')
.appendField(Blockly.Msg.weather_solo);
this.appendDummyInput("")
.appendField(Blockly.Msg.MIXLY_MICROBIT_JS_GET + Blockly.Msg.MIXLY_WIND_SPEED)
.appendField(new Blockly.FieldDropdown([
[Blockly.Msg.MIXLY_SPEED + 'm/s', "[0]"],
[Blockly.Msg.MIXLY_WIND_RATING, "[1]"]
]), "key");
this.setOutput(true, Number);
this.setInputsInline(true);
}
};
export const sensor_weather_solo_rain = {
init: function () {
this.setColour(SENSOR_EXTERN_HUE);
this.appendValueInput('SUB')
.appendField(Blockly.Msg.weather_solo);
this.appendValueInput('time')
.appendField(Blockly.Msg.MIXLY_MICROBIT_JS_GET);
this.appendDummyInput("")
.appendField(Blockly.Msg.MIXLY_RAIN_TIME)
.appendField(new Blockly.FieldDropdown([
[Blockly.Msg.MIXLY_ACCUMULATED, "[0]"],
[Blockly.Msg.MIXLY_AVERAGE, "[1]"]
]), "key");
this.appendDummyInput("")
.appendField(Blockly.Msg.MIXLY_RAIN + '(mm)');
this.setOutput(true, Number);
this.setInputsInline(true);
}
};
//educore sensor_extern
export const educore_body_sensor = {
init: function () {
this.setColour(SENSOR_EXTERN_HUE);
this.appendValueInput("PIN")
.appendField(Blockly.Msg.MIXLY_BODY_SENSOR);
this.setOutput(true);
this.setInputsInline(true);
}
};
export const educore_soilhum_sensor = {
init: function () {
this.setColour(SENSOR_EXTERN_HUE);
this.appendValueInput("PIN")
.appendField(Blockly.Msg.MIXLY_SOILHUM_SENSOR);
this.setOutput(true);
this.setInputsInline(true);
}
};
export const educore_temphum_sensor = {
init: function () {
this.setColour(SENSOR_EXTERN_HUE);
this.appendValueInput("PIN")
.appendField(Blockly.Msg.MIXLY_TEMP_AND_HUMIDITY_SENSOR);
this.setOutput(true);
this.setInputsInline(true);
}
};
export const educore_infrared_sensor = {
init: function () {
this.setColour(SENSOR_EXTERN_HUE);
this.appendValueInput("PIN")
.appendField(Blockly.Msg.MIXLY_Infrared_pyroelectric_sensor);
this.setOutput(true);
this.setInputsInline(true);
}
};
export const educore_button_sensor_extern = {
init: function () {
this.setColour(SENSOR_EXTERN_HUE);
this.appendValueInput("PIN")
.appendField(Blockly.Msg.HTML_BUTTON);
this.setOutput(true);
this.setInputsInline(true);
}
};
export const sensor_read_humiture = {
init: function () {
this.setColour(SENSOR_EXTERN_HUE);
this.appendValueInput('SUB')
.appendField(Blockly.Msg.MIXLY_GET)
.setCheck("var");
this.appendDummyInput("")
.appendField(Blockly.Msg.blockpy_set_of)
.appendField(new Blockly.FieldDropdown([
[Blockly.Msg.MIXLY_TEMPERATURE, "0"],
[Blockly.Msg.MIXLY_Humidity, "1"]
]), "key");
this.setInputsInline(true);
this.setOutput(true);
}
};
export const educore_ultrasonic_sensor = {
init: function () {
this.setColour(SENSOR_EXTERN_HUE);
this.appendValueInput("PIN")
.appendField(Blockly.Msg.MIXLY_EXTERN_SONAR);
this.setOutput(true);
this.setInputsInline(true);
}
};
export const ultrasonic_sensor_read_distance = {
init: function () {
this.setColour(SENSOR_EXTERN_HUE);
this.appendValueInput('SUB')
.appendField(Blockly.Msg.MIXLY_GET)
.setCheck("var");
this.appendDummyInput("")
.appendField(Blockly.Msg.blockpy_set_of + Blockly.Msg.ME_GO_HALL_SENSOR_DISTANCE);
this.setInputsInline(true);
this.setOutput(true);
}
};
export const educore_temp_sensor = {
init: function () {
this.setColour(SENSOR_EXTERN_HUE);
this.appendValueInput("PIN")
.appendField(Blockly.Msg.MIXLY_TEMP + Blockly.Msg.MIXLY_DS18B20);
this.setOutput(true);
this.setInputsInline(true);
}
};
export const educore_camera_sensor = {
init: function () {
this.setColour(SENSOR_EXTERN_HUE);
this.appendValueInput("PIN")
.appendField(Blockly.Msg.MIXLY_SMARTCAMERA);
this.setOutput(true);
this.setInputsInline(true);
}
};
export const camera_sensor_init = {
init: function () {
this.setColour(SENSOR_EXTERN_HUE);
this.appendValueInput("SUB")
.appendField(Blockly.Msg.MIXLY_SMARTCAMERA);
this.appendDummyInput("")
.appendField(Blockly.Msg.MIXLY_PROCCED)
.appendField(new Blockly.FieldDropdown([
[Blockly.Msg.MIXLY_AipFace, "FACE_RECOGNIZE"],
[Blockly.Msg.MIXLY_FACE_CLASSIFIER, "FACE_DETECT"]
]), "key");
this.setOutput(true);
this.setInputsInline(true);
}
};
export const camera_sensor_result = {
init: function () {
this.setColour(SENSOR_EXTERN_HUE);
this.appendValueInput("SUB")
.appendField(Blockly.Msg.MIXLY_SMARTCAMERA);
this.appendDummyInput("")
.appendField(Blockly.Msg.blockpy_set_of + Blockly.Msg.MIXLY_RECOGNIZED_RESULT);
this.setOutput(true);
this.setInputsInline(true);
}
};
export const sensor_weigh_init = {
init: function () {
this.setColour(SENSOR_EXTERN_HUE);
this.appendValueInput('SUB')
.appendField(Blockly.Msg.MIXLY_SETUP + 'HX711/720' + Blockly.Msg.MIXLY_WEIGH_SENSOR);
this.appendValueInput('sck')
.appendField('#SCK');
this.appendValueInput('dat')
.appendField('#DAT');
this.appendValueInput('pc')
.appendField(Blockly.Msg.MIXLY_Calibration_ratio);
this.setInputsInline(true);
this.setPreviousStatement(true);
this.setNextStatement(true);
this.setTooltip('');
}
};
export const weigh_sensor_get_weight = {
init: function () {
this.setColour(SENSOR_EXTERN_HUE);
this.appendValueInput('SUB')
.appendField(Blockly.Msg.MIXLY_GET + Blockly.Msg.MIXLY_WEIGH_SENSOR)
this.appendDummyInput()
.appendField(Blockly.Msg.blockpy_set_of + Blockly.Msg.MIXLY_DATA + '(g)')
this.setOutput(true);
this.setInputsInline(true);
}
};
export const init_matrix_keyboard = {
init: function () {
this.setColour(SENSOR_EXTERN_HUE);
this.appendDummyInput()
.appendField(Blockly.Msg.MIXLY_SETUP + Blockly.Msg.MIXLY_Keypad)
.setAlign(Blockly.ALIGN_RIGHT)
this.appendDummyInput()
.appendField(new Blockly.FieldTextInput(''), 'VAR')
.setAlign(Blockly.ALIGN_RIGHT)
this.appendValueInput('VALUE1')
.appendField(Blockly.Msg.MIXLY_line_tube_foot + '#')
.setAlign(Blockly.ALIGN_RIGHT)
this.appendValueInput('VALUE2')
.appendField(Blockly.Msg.MIXLY_column_tube_foot + '#')
.setAlign(Blockly.ALIGN_RIGHT)
this.appendValueInput('VALUE3')
.appendField(Blockly.Msg.MIXLY_DEFINE_KEYBOARDS)
.setAlign(Blockly.ALIGN_RIGHT)
this.setPreviousStatement(true);
this.setNextStatement(true);
this.setInputsInline(false);
}
}
export const line_tube_foot ={
init: function () {
this.setColour(SENSOR_EXTERN_HUE);
this.appendValueInput('PIN1')
.appendField('1#')
this.appendValueInput('PIN2')
.appendField('2#')
this.appendValueInput('PIN3')
.appendField('3#')
this.appendValueInput('PIN4')
.appendField('4#')
this.setOutput(true);
this.setInputsInline(true);
}
}
export const column_tube_foot = {
init: function () {
this.setColour(SENSOR_EXTERN_HUE);
this.appendValueInput('PIN1')
.appendField('1#')
this.appendValueInput('PIN2')
.appendField('2#')
this.appendValueInput('PIN3')
.appendField('3#')
this.appendValueInput('PIN4')
.appendField('4#')
this.setOutput(true);
this.setInputsInline(true);
}
}
export const define_keyboards = {
init:function(){
this.setColour(SENSOR_EXTERN_HUE);
this.appendDummyInput()
.appendField(new Blockly.FieldTextInput(''), 'VAR1')
.appendField(new Blockly.FieldTextInput(''), 'VAR2')
.appendField(new Blockly.FieldTextInput(''), 'VAR3')
.appendField(new Blockly.FieldTextInput(''), 'VAR4')
this.appendDummyInput()
.appendField(new Blockly.FieldTextInput(''), 'VAR5')
.appendField(new Blockly.FieldTextInput(''), 'VAR6')
.appendField(new Blockly.FieldTextInput(''), 'VAR7')
.appendField(new Blockly.FieldTextInput(''), 'VAR8')
this.appendDummyInput()
.appendField(new Blockly.FieldTextInput(''), 'VAR9')
.appendField(new Blockly.FieldTextInput(''), 'VAR10')
.appendField(new Blockly.FieldTextInput(''), 'VAR11')
.appendField(new Blockly.FieldTextInput(''), 'VAR12')
this.appendDummyInput()
.appendField(new Blockly.FieldTextInput(''), 'VAR13')
.appendField(new Blockly.FieldTextInput(''), 'VAR14')
.appendField(new Blockly.FieldTextInput(''), 'VAR15')
.appendField(new Blockly.FieldTextInput(''), 'VAR16')
this.setOutput(true);
this.setInputsInline(false);
}
}
export const get_keboards_value = {
init:function(){
this.setColour(SENSOR_EXTERN_HUE);
this.appendDummyInput()
.appendField(new Blockly.FieldTextInput(''), 'VAR')
.appendField(Blockly.Msg.MIXLY_Keypad_GETKEY)
this.setOutput(true);
this.setInputsInline(true);
}
}