UNPKG

@mixly/micropython

Version:
1,195 lines (1,142 loc) 92 kB
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"] ]), "key"); this.setInputsInline(true); this.setPreviousStatement(true, null); this.setNextStatement(true, null); this.setFieldValue("LTR308", "key"); } }; 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