diff --git a/blockly/iot/IOT_Blocks.js b/blockly/iot/IOT_Blocks.js index 2779fae..50df6f7 100644 --- a/blockly/iot/IOT_Blocks.js +++ b/blockly/iot/IOT_Blocks.js @@ -693,6 +693,24 @@ Blockly.Blocks['camera_sent'] = { } }; +Blockly.Blocks['mic_sent'] = { + init: function() { + this.setColour(lineChart_HUE); + this.appendDummyInput().appendField(Blockly.MIXLY_MICROBIT_JS_CURRENT); + this.appendValueInput("name").setCheck("String"); + this.appendDummyInput().appendField(Blockly.MIC_SENT); + this.appendDummyInput().appendField(Blockly.Msg.PROCEDURES_CALL_BEFORE_PARAMS+"value"); + this.setInputsInline(true); + this.appendStatementInput('DO0').appendField(Blockly.Msg.CONTROLS_REPEAT_INPUT_DO); + this.setPreviousStatement(true); + this.setNextStatement(true); + this.setTooltip(""); + }, + getVars:function(){ + return ["time","value"]; + } +}; + Blockly.Blocks['lineChart_send'] = { init: function() { this.appendDummyInput().appendField(Blockly.TO); @@ -2258,6 +2276,13 @@ Blockly.JavaScript.camera_sent=function(block) { return code; }; +Blockly.JavaScript.mic_sent=function(block) { + var name = Blockly.JavaScript.valueToCode(this, 'name', Blockly.JavaScript.ORDER_ATOMIC); + var code="MixIO.getInstance("+name+",MixIO.typeTags.MIC)\n"+".bind(MixIO.eventTags.MIC_SENT, function(event,value){\n" + +Blockly.JavaScript.statementToCode(block, "DO0" )+"\n"+"})\n" + return code; +}; + Blockly.JavaScript.lineChart_send=function(block) { var name = Blockly.JavaScript.valueToCode(this, 'name', Blockly.JavaScript.ORDER_ATOMIC); var message = Blockly.JavaScript.valueToCode(this, 'message', Blockly.JavaScript.ORDER_ATOMIC); @@ -3250,6 +3275,7 @@ Blockly.GET_BLUETOOTH_STATUS="蓝牙转发器连接的设备"; Blockly.BLUETOOTH_SENT = "蓝牙转发器发送消息" Blockly.CAMERA_SENT = "摄像头发送消息时" +Blockly.MIC_SENT = "语音识别发送消息时" Blockly.BARCHART_RECIEVED="柱状图收到消息时"; Blockly.BARCHART_SEND_MESSAGE="柱状图发送消息"; diff --git a/ejs/projects.ejs b/ejs/projects.ejs index 20e2fcf..3f9753b 100644 --- a/ejs/projects.ejs +++ b/ejs/projects.ejs @@ -971,7 +971,15 @@ - + + + + + name + + + + diff --git a/js/MixIO.js b/js/MixIO.js index daca426..16eddbd 100644 --- a/js/MixIO.js +++ b/js/MixIO.js @@ -83,13 +83,14 @@ var MixIO = { TIMER: 14, TRIGGER: 15, BLE: 16, - CAMERA: 17 + CAMERA: 17, + MIC: 18 }, oldTags: ["input_button", "input_slider", "input_keyboard", "input_controller", "input_rgb", "output_bulb", "output_text", - "output_chart", "output_bar", "table", "output_dashboard", "output_map", "input_weather", "timer", "trigger", "ble", "camera" + "output_chart", "output_bar", "table", "output_dashboard", "output_map", "input_weather", "timer", "trigger", "ble", "camera", "input_mic" ], - zhcnTags: ["按键/开关", "滑杆", "文本输入", "摇杆手柄", "RGB色盘", "指示灯", "文本显示屏", "折线图表", "柱状图表", "数据表格", "仪表盘", "数据地图", "实时气象仪", "定时触发器", "条件触发器", "蓝牙转发器", "摄像头"], + zhcnTags: ["按键/开关", "滑杆", "文本输入", "摇杆手柄", "RGB色盘", "指示灯", "文本显示屏", "折线图表", "柱状图表", "数据表格", "仪表盘", "数据地图", "实时气象仪", "定时触发器", "条件触发器", "蓝牙转发器", "摄像头", "语音识别"], /*合法的MixIO事件种类*/ eventTags: { @@ -133,7 +134,9 @@ var MixIO = { BLUETOOTH_TRIGGERED: "1611", - CAMERA_SENT: "1711" + CAMERA_SENT: "1711", + + MIC_SENT: "1811" }, diff --git a/js/widgets.js b/js/widgets.js index 10dcc72..535452f 100644 --- a/js/widgets.js +++ b/js/widgets.js @@ -1558,6 +1558,7 @@ function add_mic(user_title, user_topic, user_content, user_style, title_style) sendIcon.children().addClass("fa-microphone") recognition.stop(); publish(topic.text(), messDiv.val()) + itemdiv.trigger(MixIO.eventTags.MIC_SENT, messDiv.val()) isRecording = false } }) @@ -1594,6 +1595,7 @@ function add_mic(user_title, user_topic, user_content, user_style, title_style) sendIcon.children().addClass("fa-microphone") recognition.stop(); publish(topic.text(), messDiv.val()) + itemdiv.trigger(MixIO.eventTags.MIC_SENT, messDiv.val()) isRecording = false } })