From 5bfa3d8918e86256370d9e484792a10d8238a1c2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E7=AB=8B=E5=B8=AE?= <3294713004@qq.com> Date: Mon, 15 Dec 2025 11:43:09 +0800 Subject: [PATCH] =?UTF-8?q?fix(boards):=20=E4=BF=AE=E5=A4=8Dpython=5Fmixpy?= =?UTF-8?q?=E4=B8=8B=20`=E7=89=A9=E8=81=94=E7=BD=91`=20=E5=88=86=E7=B1=BB?= =?UTF-8?q?=E6=98=BE=E7=A4=BA=E5=BC=82=E5=B8=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- boards/default_src/python_mixpy/blocks/iot.js | 23 +++++++++++++++++++ .../python_mixpy/generators/iot.js | 9 ++++++++ 2 files changed, 32 insertions(+) diff --git a/boards/default_src/python_mixpy/blocks/iot.js b/boards/default_src/python_mixpy/blocks/iot.js index d81c367e..95e52f25 100644 --- a/boards/default_src/python_mixpy/blocks/iot.js +++ b/boards/default_src/python_mixpy/blocks/iot.js @@ -323,6 +323,29 @@ export const IOT_MIXIO_PUBLISH = { } }; +export const IOT_MIXIO_PUBLISHEX = { + init: function () { + this.setColour(IOT_HUE); + this.appendDummyInput() + .appendField("MixIO") + this.appendValueInput('TOPIC') + .appendField(Blockly.Msg.MIXLY_EMQX_PUBLISH_NEW) + .appendField(Blockly.Msg.MIXLY_EMQX_PUBLISH_TOPIC); + this.appendValueInput('MSG') + .appendField(Blockly.Msg.HTML_BODY); + this.appendDummyInput() + .appendField(Blockly.Msg.MIXLY_Service_quality_display) + .appendField(new Blockly.FieldDropdown([ + [Blockly.Msg.MIXLY_AT_MOST_ONCE,"0"], + [Blockly.Msg.MIXLY_AT_LEAST_ONCE,"1"] + ]),"quality") + this.setInputsInline(true); + this.setPreviousStatement(true); + this.setNextStatement(true); + this.setTooltip(Blockly.Msg.MIXLY_ESP32_IOT_EMQX_PUBLISH_TOOLTIP); + } +}; + export const IOT_MIXIO_SUBSCRIBE = { init: function () { this.setColour(IOT_HUE); diff --git a/boards/default_src/python_mixpy/generators/iot.js b/boards/default_src/python_mixpy/generators/iot.js index 3a2e27d1..22502dfb 100644 --- a/boards/default_src/python_mixpy/generators/iot.js +++ b/boards/default_src/python_mixpy/generators/iot.js @@ -19,6 +19,15 @@ export const IOT_MIXIO_PUBLISH = function (_, generator) { return code; } +export const IOT_MIXIO_PUBLISHEX = function (_, generator) { + var topic = generator.valueToCode(this, 'TOPIC', generator.ORDER_ATOMIC); + var msg = generator.valueToCode(this, 'MSG', generator.ORDER_ATOMIC); + var q = this.getFieldValue('quality'); + generator.definitions_['import_mixiot'] = "import mixiot"; + var code = 'mqtt_client.publish(MQTT_USR_PRJ + ' + topic + ', ' + msg + ', qos='+ q +')\n'; + return code; +} + export const IOT_MIXIO_SUBSCRIBE = function (_, generator) { var topic = generator.valueToCode(this, 'TOPIC', generator.ORDER_ATOMIC); var method = generator.valueToCode(this, 'METHOD', generator.ORDER_ATOMIC);