From a114ca837ecb665d735dedffb11b1a85bda2fa15 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E7=AB=8B=E5=B8=AE?= <3294713004@qq.com> Date: Thu, 27 Mar 2025 10:36:02 +0800 Subject: [PATCH] =?UTF-8?q?feat(boards):=20=E8=B0=83=E6=95=B4micropython?= =?UTF-8?q?=E4=B8=8B=E6=9D=BF=E8=BD=BDRFID=E5=9B=BE=E5=BD=A2=E5=9D=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../micropython/generators/sensor_onboard.js | 65 ++++++++++++++++--- .../micropython_esp32c2/blocks/mini_g2.js | 61 ----------------- .../micropython_esp32c3/blocks/me_g1.js | 61 ----------------- 3 files changed, 55 insertions(+), 132 deletions(-) diff --git a/boards/default_src/micropython/generators/sensor_onboard.js b/boards/default_src/micropython/generators/sensor_onboard.js index d5a76a8b..d1ae142a 100644 --- a/boards/default_src/micropython/generators/sensor_onboard.js +++ b/boards/default_src/micropython/generators/sensor_onboard.js @@ -268,16 +268,34 @@ export const sensor_get_temperature = function (_, generator) { export const rfid_readid = function (_, generator) { var version = Boards.getSelectedBoardKey().split(':')[2]; - generator.definitions_[`import_${version}_onboard_rfid`] = `from ${version} import onboard_rfid`; - var code = 'onboard_rfid.read_card(0, x="id")'; + var moduleName = version; + var objName = 'onboard_rfid'; + if (version === 'mixgo_mini') { + moduleName = 'mini_g2'; + objName = 'ext_rfid'; + } else if (version === 'mixgo_me') { + moduleName = 'me_g1'; + objName = 'ext_rc522'; + } + generator.definitions_[`import_${moduleName}_${objName}`] = `from ${moduleName} import ${objName}`; + var code = `${objName}.read_card(0, x="id")`; return [code, generator.ORDER_ATOMIC]; } export const rfid_readcontent = function (_, generator) { var version = Boards.getSelectedBoardKey().split(':')[2]; var sector = generator.valueToCode(this, 'SECTOR', generator.ORDER_ATOMIC); - generator.definitions_[`import_${version}_onboard_rfid`] = `from ${version} import onboard_rfid`; - var code = `onboard_rfid.read_card(${sector}, x="content")`; + var moduleName = version; + var objName = 'onboard_rfid'; + if (version === 'mixgo_mini') { + moduleName = 'mini_g2'; + objName = 'ext_rfid'; + } else if (version === 'mixgo_me') { + moduleName = 'me_g1'; + objName = 'ext_rc522'; + } + generator.definitions_[`import_${moduleName}_${objName}`] = `from ${moduleName} import ${objName}`; + var code = `${objName}.read_card(${sector}, x="content")`; return [code, generator.ORDER_ATOMIC]; } @@ -285,8 +303,17 @@ export const rfid_write = function (_, generator) { var version = Boards.getSelectedBoardKey().split(':')[2]; var sector = generator.valueToCode(this, 'SECTOR', generator.ORDER_ATOMIC); var cnt = generator.valueToCode(this, 'CONTENT', generator.ORDER_ATOMIC); - generator.definitions_[`import_${version}_onboard_rfid`] = `from ${version} import onboard_rfid`; - var code = `onboard_rfid.write_card(${cnt}, ${sector})\n`; + var moduleName = version; + var objName = 'onboard_rfid'; + if (version === 'mixgo_mini') { + moduleName = 'mini_g2'; + objName = 'ext_rfid'; + } else if (version === 'mixgo_me') { + moduleName = 'me_g1'; + objName = 'ext_rc522'; + } + generator.definitions_[`import_${moduleName}_${objName}`] = `from ${moduleName} import ${objName}`; + var code = `${objName}.write_card(${cnt}, ${sector})`; return code; } @@ -294,16 +321,34 @@ export const rfid_write_return = function (_, generator) { var version = Boards.getSelectedBoardKey().split(':')[2]; var sector = generator.valueToCode(this, 'SECTOR', generator.ORDER_ATOMIC); var cnt = generator.valueToCode(this, 'CONTENT', generator.ORDER_ATOMIC); - generator.definitions_[`import_${version}_onboard_rfid`] = `from ${version} import onboard_rfid`; - var code = `onboard_rfid.write_card(${cnt}, ${sector})`; + var moduleName = version; + var objName = 'onboard_rfid'; + if (version === 'mixgo_mini') { + moduleName = 'mini_g2'; + objName = 'ext_rfid'; + } else if (version === 'mixgo_me') { + moduleName = 'me_g1'; + objName = 'ext_rc522'; + } + generator.definitions_[`import_${moduleName}_${objName}`] = `from ${moduleName} import ${objName}`; + var code = `${objName}.write_card(${cnt}, ${sector})`; return [code, generator.ORDER_ATOMIC]; } export const rfid_status = function (_, generator) { var version = Boards.getSelectedBoardKey().split(':')[2]; var key = this.getFieldValue('key'); - generator.definitions_[`import_${version}_onboard_rfid`] = `from ${version} import onboard_rfid`; - var code = `onboard_rfid.scan_card() == ${key}`; + var moduleName = version; + var objName = 'onboard_rfid'; + if (version === 'mixgo_mini') { + moduleName = 'mini_g2'; + objName = 'ext_rfid'; + } else if (version === 'mixgo_me') { + moduleName = 'me_g1'; + objName = 'ext_rc522'; + } + generator.definitions_[`import_${moduleName}_${objName}`] = `from ${moduleName} import ${objName}`; + var code = `${objName}.scan_card() == ${key}`; return [code, generator.ORDER_ATOMIC]; } diff --git a/boards/default_src/micropython_esp32c2/blocks/mini_g2.js b/boards/default_src/micropython_esp32c2/blocks/mini_g2.js index ffe36608..0d1f09af 100644 --- a/boards/default_src/micropython_esp32c2/blocks/mini_g2.js +++ b/boards/default_src/micropython_esp32c2/blocks/mini_g2.js @@ -1,6 +1,5 @@ import * as Blockly from 'blockly/core'; import { Boards } from 'mixly'; -import { MicroPythonSensorOnBoardBlocks } from '@mixly/micropython'; const MEG1_HUE = 40; @@ -61,66 +60,6 @@ export const mini_g2_varistor = { } }; -/** - * @override override "@micropython.MicroPythonSensorOnBoardBlocks.rfid_readid" - */ -export const rfid_readid = { - init: function () { - this.appendDummyInput() - .appendField('MINI G2'); - MicroPythonSensorOnBoardBlocks.rfid_readid.init.call(this); - this.setColour(MEG1_HUE); - } -}; - -/** - * @override override "@micropython.MicroPythonSensorOnBoardBlocks.rfid_readcontent" - */ -export const rfid_readcontent = { - init: function () { - this.appendDummyInput() - .appendField('MINI G2'); - MicroPythonSensorOnBoardBlocks.rfid_readcontent.init.call(this); - this.setColour(MEG1_HUE); - } -}; - -/** - * @override override "@micropython.MicroPythonSensorOnBoardBlocks.rfid_write" - */ -export const rfid_write = { - init: function () { - this.appendDummyInput() - .appendField('MINI G2'); - MicroPythonSensorOnBoardBlocks.rfid_write.init.call(this); - this.setColour(MEG1_HUE); - } -}; - -/** - * @override override "@micropython.MicroPythonSensorOnBoardBlocks.rfid_write_return" - */ -export const rfid_write_return = { - init: function () { - this.appendDummyInput() - .appendField('MINI G2'); - MicroPythonSensorOnBoardBlocks.rfid_write_return.init.call(this); - this.setColour(MEG1_HUE); - } -}; - -/** - * @override override "@micropython.MicroPythonSensorOnBoardBlocks.rfid_status" - */ -export const rfid_status = { - init: function () { - this.appendDummyInput() - .appendField('MINI G2'); - MicroPythonSensorOnBoardBlocks.rfid_status.init.call(this); - this.setColour(MEG1_HUE); - } -}; - /** * @deprecated To be removed in the future */ diff --git a/boards/default_src/micropython_esp32c3/blocks/me_g1.js b/boards/default_src/micropython_esp32c3/blocks/me_g1.js index 87e422bd..22665007 100644 --- a/boards/default_src/micropython_esp32c3/blocks/me_g1.js +++ b/boards/default_src/micropython_esp32c3/blocks/me_g1.js @@ -1,6 +1,5 @@ import * as Blockly from 'blockly/core'; import * as Mixly from 'mixly'; -import { MicroPythonSensorOnBoardBlocks } from '@mixly/micropython'; const MEG1_HUE = 40; @@ -61,66 +60,6 @@ export const me_g1_varistor = { } }; -/** - * @override override "@micropython.MicroPythonSensorOnBoardBlocks.rfid_readid" - */ -export const rfid_readid = { - init: function () { - this.appendDummyInput() - .appendField('ME G1'); - MicroPythonSensorOnBoardBlocks.rfid_readid.init.call(this); - this.setColour(MEG1_HUE); - } -}; - -/** - * @override override "@micropython.MicroPythonSensorOnBoardBlocks.rfid_readcontent" - */ -export const rfid_readcontent = { - init: function () { - this.appendDummyInput() - .appendField('ME G1'); - MicroPythonSensorOnBoardBlocks.rfid_readcontent.init.call(this); - this.setColour(MEG1_HUE); - } -}; - -/** - * @override override "@micropython.MicroPythonSensorOnBoardBlocks.rfid_write" - */ -export const rfid_write = { - init: function () { - this.appendDummyInput() - .appendField('ME G1'); - MicroPythonSensorOnBoardBlocks.rfid_write.init.call(this); - this.setColour(MEG1_HUE); - } -}; - -/** - * @override override "@micropython.MicroPythonSensorOnBoardBlocks.rfid_write_return" - */ -export const rfid_write_return = { - init: function () { - this.appendDummyInput() - .appendField('ME G1'); - MicroPythonSensorOnBoardBlocks.rfid_write_return.init.call(this); - this.setColour(MEG1_HUE); - } -}; - -/** - * @override override "@micropython.MicroPythonSensorOnBoardBlocks.rfid_status" - */ -export const rfid_status = { - init: function () { - this.appendDummyInput() - .appendField('ME G1'); - MicroPythonSensorOnBoardBlocks.rfid_status.init.call(this); - this.setColour(MEG1_HUE); - } -}; - /** * @deprecated To be removed in the future */