蓝牙键鼠合并

This commit is contained in:
Irene-Maxine
2025-02-19 23:30:11 +08:00
parent 6a583adbcb
commit 135a501e5c
7 changed files with 524 additions and 80 deletions

View File

@@ -1518,6 +1518,117 @@ export const analog_ble_mouse_send_battery = {
}
}
export const analog_ble_keyboard_mouse_init = {
init: function () {
this.setColour(ACTUATOR_ONBOARD_HUE);
this.appendDummyInput()
.appendField(Blockly.Msg.LISTS_SET_INDEX_SET + Blockly.Msg.MIXLY_BLUETOOTH + Blockly.Msg.ANALOG + Blockly.Msg.MIXLY_KEYBOARD + Blockly.Msg.MIXLY_MOUSE);
this.appendValueInput('kname')
.appendField(Blockly.Msg.MIXLY_MICROBIT_JS_SYSTEM_DEVICE_NAME);
this.setPreviousStatement(true);
this.setNextStatement(true);
this.setInputsInline(true);
}
}
export const ble_keyboard_mouse_get_mac = {
init: function () {
this.setColour(ACTUATOR_ONBOARD_HUE);
this.appendDummyInput()
.appendField(Blockly.Msg.MIXLY_GET + Blockly.Msg.MIXLY_BLUETOOTH + Blockly.Msg.ANALOG + Blockly.Msg.MIXLY_KEYBOARD + Blockly.Msg.MIXLY_MOUSE + Blockly.Msg.MIXLY_BELONG + Blockly.Msg.MIXLY_ETHERNET_MAC_ADDRESS);
this.setOutput(true);
this.setInputsInline(true);
}
}
export const ble_keyboard_mouse_connect = {
init: function () {
this.setColour(ACTUATOR_ONBOARD_HUE);
this.appendDummyInput()
.appendField(Blockly.Msg.MIXLY_BLUETOOTH + Blockly.Msg.ANALOG + Blockly.Msg.MIXLY_KEYBOARD + Blockly.Msg.MIXLY_MOUSE + Blockly.Msg.MIXLY_IS_CONNECT);
this.setOutput(true);
this.setInputsInline(true);
}
}
export const analog_ble_keyboard_mouse_send_battery = {
init: function () {
this.setColour(ACTUATOR_ONBOARD_HUE);
this.appendDummyInput()
.appendField(Blockly.Msg.MIXLY_BLUETOOTH + Blockly.Msg.ANALOG + Blockly.Msg.MIXLY_KEYBOARD + Blockly.Msg.MIXLY_MOUSE);
this.appendValueInput('battery')
.appendField(Blockly.Msg.MIXLY_SEND_KEYBOARD + Blockly.Msg.MIXLY_MOUSE + Blockly.Msg.MIXLY_BELONG + Blockly.Msg.MIXLY_BATTERY + Blockly.Msg.LISTS_SET_INDEX_INPUT_TO);
this.appendDummyInput()
.appendField('%');
this.setPreviousStatement(true);
this.setNextStatement(true);
this.setInputsInline(true);
}
}
export const analog_ble_keyboard_mouse_input = {
init: function () {
this.setColour(ACTUATOR_ONBOARD_HUE);
this.appendDummyInput()
.appendField(Blockly.Msg.MIXLY_BLUETOOTH + Blockly.Msg.ANALOG + Blockly.Msg.MIXLY_KEYBOARD + Blockly.Msg.MIXLY_MOUSE)
.appendField(Blockly.Msg.MIXLY_SEND_KEYBOARD);
this.appendValueInput('special');
this.appendValueInput('general');
this.appendDummyInput()
.appendField(Blockly.Msg.MIXLY_RELEASE)
.appendField(new Blockly.FieldDropdown([
[Blockly.Msg.MICROPYTHON_DISPLAY_YES, "True"],
[Blockly.Msg.MICROPYTHON_DISPLAY_NO, "False"]
]), 'release');
this.setPreviousStatement(true);
this.setNextStatement(true);
this.setInputsInline(true);
this.setTooltip(Blockly.Msg.MIXLY_BLUETOOTH + Blockly.Msg.ANALOG + Blockly.Msg.MIXLY_KEYBOARD_INPUT);
}
};
export const analog_ble_keyboard_mouse_str = {
init: function () {
this.setColour(ACTUATOR_ONBOARD_HUE);
this.appendDummyInput()
.appendField(Blockly.Msg.MIXLY_BLUETOOTH + Blockly.Msg.ANALOG + Blockly.Msg.MIXLY_KEYBOARD + Blockly.Msg.MIXLY_MOUSE);
this.appendValueInput('str')
.appendField(Blockly.Msg.MIXLY_SEND_KEYBOARD + Blockly.Msg.MIXLY_STR_PRINT);
this.appendValueInput('time')
.appendField(Blockly.Msg.MIXLY_STR_PRINT_TIME_DELAY);
this.appendDummyInput()
.appendField('ms');
this.setPreviousStatement(true);
this.setNextStatement(true);
this.setInputsInline(true);
}
}
export const analog_ble_mouse_keyboard_input = {
init: function () {
this.setColour(ACTUATOR_ONBOARD_HUE);
this.appendDummyInput()
.appendField(Blockly.Msg.MIXLY_BLUETOOTH + Blockly.Msg.ANALOG+ Blockly.Msg.MIXLY_KEYBOARD + Blockly.Msg.MIXLY_MOUSE)
.appendField(Blockly.Msg.MIXLY_SEND + Blockly.Msg.MIXLY_MOUSE_INPUT);
this.appendValueInput('key');
this.appendValueInput('x')
.appendField(Blockly.Msg.MIXLY_X_CHANGES);
this.appendValueInput('y')
.appendField(Blockly.Msg.MIXLY_Y_CHANGES);
this.appendValueInput('wheel')
.appendField(Blockly.Msg.MIXLY_WHEEL_CHANGES);
this.appendDummyInput()
.appendField(Blockly.Msg.MIXLY_RELEASE)
.appendField(new Blockly.FieldDropdown([
[Blockly.Msg.MICROPYTHON_DISPLAY_YES, "True"],
[Blockly.Msg.MICROPYTHON_DISPLAY_NO, "False"]
]), 'release');
this.setPreviousStatement(true);
this.setNextStatement(true);
this.setInputsInline(true);
this.setTooltip(Blockly.Msg.MIXLY_BLUETOOTH + Blockly.Msg.ANALOG + Blockly.Msg.MIXLY_KEYBOARD_INPUT);
}
};
//educore actuator
export const educore_buzzer = {
init: function () {

View File

@@ -587,6 +587,59 @@ export const analog_ble_mouse_send_battery = function (_, generator) {
return code;
}
export const analog_ble_keyboard_mouse_init = function (_, generator) {
generator.definitions_['import_HID_ble_hid'] = 'from ble_hid import HID';
var kname = generator.valueToCode(this, 'kname', generator.ORDER_ATOMIC)
var code = 'ble_hid = HID(' + kname + ')\n';
return code;
}
export const ble_keyboard_mouse_get_mac = function (_, generator) {
generator.definitions_['import_HID_ble_hid'] = 'from ble_hid import HID';
var code = 'ble_hid.mac';
return [code, generator.ORDER_ATOMIC];
}
export const ble_keyboard_mouse_connect = function (_, generator) {
generator.definitions_['import_HID_ble_hid'] = 'from ble_hid import HID';
var code = 'ble_hid.is_connected()';
return [code, generator.ORDER_ATOMIC];
}
export const analog_ble_keyboard_mouse_send_battery = function (_, generator) {
var b = generator.valueToCode(this, 'battery', generator.ORDER_ATOMIC);
generator.definitions_['import_HID_ble_hid'] = 'from ble_hid import HID';
var code = "ble_hid.battery_notify(" + b + ")\n";
return code;
}
export const analog_ble_keyboard_mouse_input = function (_, generator) {
var sp = generator.valueToCode(this, 'special', generator.ORDER_ATOMIC);
var ge = generator.valueToCode(this, 'general', generator.ORDER_ATOMIC);
var re = this.getFieldValue('release');
generator.definitions_['import_HID_ble_hid'] = 'from ble_hid import HID';
var code = "ble_hid.keyboard_notify(" + sp + "," + ge + "," + re + ")\n";
return code;
}
export const analog_ble_keyboard_mouse_str = function (_, generator) {
var str = generator.valueToCode(this, 'str', generator.ORDER_ATOMIC);
var t = generator.valueToCode(this, 'time', generator.ORDER_ATOMIC);
generator.definitions_['import_HID_ble_hid'] = 'from ble_hid import HID';
var code = "ble_hid.keyboard_str(" + str + ",delay=" + t + ")\n";
return code;
}
export const analog_ble_mouse_keyboard_input = function (_, generator) {
var key = generator.valueToCode(this, 'key', generator.ORDER_ATOMIC);
var x = generator.valueToCode(this, 'x', generator.ORDER_ATOMIC);
var y = generator.valueToCode(this, 'y', generator.ORDER_ATOMIC);
var wheel = generator.valueToCode(this, 'wheel', generator.ORDER_ATOMIC);
var re = this.getFieldValue('release');
generator.definitions_['import_HID_ble_hid'] = 'from ble_hid import HID';
var code = "ble_hid.mouse_notify(" + key + ",(" + x + "," + y + ")," + wheel + "," + re + ")\n";
return code;
}
//educore actuator
export const educore_buzzer = function (_, generator) {
var version = Boards.getSelectedBoardKey().split(':')[2]

View File

@@ -2991,7 +2991,7 @@
</block>
</category>
<category id="catBLEKM" colour="140">
<block type="analog_ble_keyboard_init">
<!-- <block type="analog_ble_keyboard_init">
<value name="kname">
<shadow type="text">
<field name="TEXT">ble_keyboard</field>
@@ -3062,6 +3062,62 @@
<field name="NUM">10</field>
</shadow>
</value>
</block> -->
<block type="analog_ble_keyboard_mouse_init">
<value name="kname">
<shadow type="text">
<field name="TEXT">ble_keyboard_mouse</field>
</shadow>
</value>
</block>
<block type="ble_keyboard_mouse_get_mac"></block>
<block type="ble_keyboard_mouse_connect"></block>
<block type="analog_ble_keyboard_mouse_send_battery">
<value name="battery">
<shadow type="math_number">
<field name="NUM">10</field>
</shadow>
</value>
</block>
<block type="analog_ble_keyboard_mouse_input" >
<value name="special">
<block type="special_key">
</block>
</value>
<value name="general">
<block type="general_key">
</block>
</value>
</block>
<block type="analog_ble_keyboard_mouse_str">
<value name="str">
<shadow type="text">
<field name="TEXT">Hello, Mixly!</field>
</shadow>
</value>
<value name="time">
<shadow type="math_number">
<field name="NUM">10</field>
</shadow>
</value>
</block>
<block type="analog_ble_mouse_keyboard_input" >
<value name="key">
<block type="mouse_key">
</block>
</value>
<value name="x">
<shadow type="math_number">
</shadow>
</value>
<value name="y">
<shadow type="math_number">
</shadow>
</value>
<value name="wheel">
<shadow type="math_number">
</shadow>
</value>
</block>
</category>
<category id="catIR" colour="140">

View File

@@ -2957,78 +2957,134 @@
</block>
</category>
<category id="catBLEKM" colour="140">
<block type="analog_ble_keyboard_init">
<value name="kname">
<shadow type="text">
<field name="TEXT">ble_keyboard</field>
</shadow>
</value>
</block>
<block type="ble_keyboard_get_mac"></block>
<block type="ble_keyboard_connect"></block>
<block type="analog_ble_keyboard_input" >
<value name="special">
<block type="special_key">
<!-- <block type="analog_ble_keyboard_init">
<value name="kname">
<shadow type="text">
<field name="TEXT">ble_keyboard</field>
</shadow>
</value>
</block>
<block type="ble_keyboard_get_mac"></block>
<block type="ble_keyboard_connect"></block>
<block type="analog_ble_keyboard_input" >
<value name="special">
<block type="special_key">
</block>
</value>
<value name="general">
<block type="general_key">
</block>
</value>
<value name="general">
<block type="general_key">
</block>
</value>
</block>
<block type="analog_ble_keyboard_str">
<value name="str">
<shadow type="text">
<field name="TEXT">Hello, Mixly!</field>
</shadow>
</value>
<value name="time">
<shadow type="math_number">
<field name="NUM">10</field>
</shadow>
</value>
</block>
<block type="analog_ble_keyboard_send_battery">
<value name="battery">
<shadow type="math_number">
<field name="NUM">10</field>
</shadow>
</value>
</block>
<block type="analog_ble_mouse_init">
<value name="name">
<shadow type="text">
<field name="TEXT">ble_Mouse</field>
</shadow>
</value>
</block>
<block type="ble_mouse_get_mac"></block>
<block type="ble_mouse_connect"></block>
<block type="analog_ble_mouse_input" >
<value name="key">
<block type="mouse_key">
</block>
</value>
<value name="x">
<shadow type="math_number">
</shadow>
</value>
<value name="y">
<shadow type="math_number">
</shadow>
</value>
<value name="wheel">
<shadow type="math_number">
</shadow>
</value>
</block>
<block type="analog_ble_mouse_send_battery">
<value name="battery">
<shadow type="math_number">
<field name="NUM">10</field>
</shadow>
</value>
</block>
</value>
</block>
<block type="analog_ble_keyboard_str">
<value name="str">
<shadow type="text">
<field name="TEXT">Hello, Mixly!</field>
</shadow>
</value>
<value name="time">
<shadow type="math_number">
<field name="NUM">10</field>
</shadow>
</value>
</block>
<block type="analog_ble_keyboard_send_battery">
<value name="battery">
<shadow type="math_number">
<field name="NUM">10</field>
</shadow>
</value>
</block>
<block type="analog_ble_mouse_init">
<value name="name">
<shadow type="text">
<field name="TEXT">ble_Mouse</field>
</shadow>
</value>
</block>
<block type="ble_mouse_get_mac"></block>
<block type="ble_mouse_connect"></block>
<block type="analog_ble_mouse_input" >
<value name="key">
<block type="mouse_key">
</block>
</value>
<value name="x">
<shadow type="math_number">
</shadow>
</value>
<value name="y">
<shadow type="math_number">
</shadow>
</value>
<value name="wheel">
<shadow type="math_number">
</shadow>
</value>
</block>
<block type="analog_ble_mouse_send_battery">
<value name="battery">
<shadow type="math_number">
<field name="NUM">10</field>
</shadow>
</value>
</block> -->
<block type="analog_ble_keyboard_mouse_init">
<value name="kname">
<shadow type="text">
<field name="TEXT">ble_keyboard_mouse</field>
</shadow>
</value>
</block>
<block type="ble_keyboard_mouse_get_mac"></block>
<block type="ble_keyboard_mouse_connect"></block>
<block type="analog_ble_keyboard_mouse_send_battery">
<value name="battery">
<shadow type="math_number">
<field name="NUM">10</field>
</shadow>
</value>
</block>
<block type="analog_ble_keyboard_mouse_input" >
<value name="special">
<block type="special_key">
</block>
</value>
<value name="general">
<block type="general_key">
</block>
</value>
</block>
<block type="analog_ble_keyboard_mouse_str">
<value name="str">
<shadow type="text">
<field name="TEXT">Hello, Mixly!</field>
</shadow>
</value>
<value name="time">
<shadow type="math_number">
<field name="NUM">10</field>
</shadow>
</value>
</block>
<block type="analog_ble_mouse_keyboard_input" >
<value name="key">
<block type="mouse_key">
</block>
</value>
<value name="x">
<shadow type="math_number">
</shadow>
</value>
<value name="y">
<shadow type="math_number">
</shadow>
</value>
<value name="wheel">
<shadow type="math_number">
</shadow>
</value>
</block>
</category>
<category id="catIR" colour="140">
<block type="communicate_ir_recv_init">

View File

@@ -2802,12 +2802,12 @@
</block>
</category>
<category id="catBLEKM" colour="140">
<block type="analog_ble_keyboard_init">
<value name="kname">
<shadow type="text">
<field name="TEXT">ble_keyboard</field>
</shadow>
</value>
<!-- <block type="analog_ble_keyboard_init">
<value name="kname">
<shadow type="text">
<field name="TEXT">ble_keyboard</field>
</shadow>
</value>
</block>
<block type="ble_keyboard_get_mac"></block>
<block type="ble_keyboard_connect"></block>
@@ -2873,6 +2873,62 @@
<field name="NUM">10</field>
</shadow>
</value>
</block> -->
<block type="analog_ble_keyboard_mouse_init">
<value name="kname">
<shadow type="text">
<field name="TEXT">ble_keyboard_mouse</field>
</shadow>
</value>
</block>
<block type="ble_keyboard_mouse_get_mac"></block>
<block type="ble_keyboard_mouse_connect"></block>
<block type="analog_ble_keyboard_mouse_send_battery">
<value name="battery">
<shadow type="math_number">
<field name="NUM">10</field>
</shadow>
</value>
</block>
<block type="analog_ble_keyboard_mouse_input" >
<value name="special">
<block type="special_key">
</block>
</value>
<value name="general">
<block type="general_key">
</block>
</value>
</block>
<block type="analog_ble_keyboard_mouse_str">
<value name="str">
<shadow type="text">
<field name="TEXT">Hello, Mixly!</field>
</shadow>
</value>
<value name="time">
<shadow type="math_number">
<field name="NUM">10</field>
</shadow>
</value>
</block>
<block type="analog_ble_mouse_keyboard_input" >
<value name="key">
<block type="mouse_key">
</block>
</value>
<value name="x">
<shadow type="math_number">
</shadow>
</value>
<value name="y">
<shadow type="math_number">
</shadow>
</value>
<value name="wheel">
<shadow type="math_number">
</shadow>
</value>
</block>
</category>
<category id="catIR" colour="140">

View File

@@ -2751,7 +2751,7 @@
</block>
</category>
<category id="catBLEKM" colour="140">
<block type="analog_ble_keyboard_init">
<!-- <block type="analog_ble_keyboard_init">
<value name="kname">
<shadow type="text">
<field name="TEXT">ble_keyboard</field>
@@ -2822,6 +2822,62 @@
<field name="NUM">10</field>
</shadow>
</value>
</block> -->
<block type="analog_ble_keyboard_mouse_init">
<value name="kname">
<shadow type="text">
<field name="TEXT">ble_keyboard_mouse</field>
</shadow>
</value>
</block>
<block type="ble_keyboard_mouse_get_mac"></block>
<block type="ble_keyboard_mouse_connect"></block>
<block type="analog_ble_keyboard_mouse_send_battery">
<value name="battery">
<shadow type="math_number">
<field name="NUM">10</field>
</shadow>
</value>
</block>
<block type="analog_ble_keyboard_mouse_input" >
<value name="special">
<block type="special_key">
</block>
</value>
<value name="general">
<block type="general_key">
</block>
</value>
</block>
<block type="analog_ble_keyboard_mouse_str">
<value name="str">
<shadow type="text">
<field name="TEXT">Hello, Mixly!</field>
</shadow>
</value>
<value name="time">
<shadow type="math_number">
<field name="NUM">10</field>
</shadow>
</value>
</block>
<block type="analog_ble_mouse_keyboard_input" >
<value name="key">
<block type="mouse_key">
</block>
</value>
<value name="x">
<shadow type="math_number">
</shadow>
</value>
<value name="y">
<shadow type="math_number">
</shadow>
</value>
<value name="wheel">
<shadow type="math_number">
</shadow>
</value>
</block>
</category>
<category id="catIR" colour="140">

View File

@@ -3131,7 +3131,7 @@
</block>
</category>
<category id="catBLEKM" colour="140">
<block type="analog_ble_keyboard_init">
<!-- <block type="analog_ble_keyboard_init">
<value name="kname">
<shadow type="text">
<field name="TEXT">ble_keyboard</field>
@@ -3202,6 +3202,62 @@
<field name="NUM">10</field>
</shadow>
</value>
</block> -->
<block type="analog_ble_keyboard_mouse_init">
<value name="kname">
<shadow type="text">
<field name="TEXT">ble_keyboard_mouse</field>
</shadow>
</value>
</block>
<block type="ble_keyboard_mouse_get_mac"></block>
<block type="ble_keyboard_mouse_connect"></block>
<block type="analog_ble_keyboard_mouse_send_battery">
<value name="battery">
<shadow type="math_number">
<field name="NUM">10</field>
</shadow>
</value>
</block>
<block type="analog_ble_keyboard_mouse_input" >
<value name="special">
<block type="special_key">
</block>
</value>
<value name="general">
<block type="general_key">
</block>
</value>
</block>
<block type="analog_ble_keyboard_mouse_str">
<value name="str">
<shadow type="text">
<field name="TEXT">Hello, Mixly!</field>
</shadow>
</value>
<value name="time">
<shadow type="math_number">
<field name="NUM">10</field>
</shadow>
</value>
</block>
<block type="analog_ble_mouse_keyboard_input" >
<value name="key">
<block type="mouse_key">
</block>
</value>
<value name="x">
<shadow type="math_number">
</shadow>
</value>
<value name="y">
<shadow type="math_number">
</shadow>
</value>
<value name="wheel">
<shadow type="math_number">
</shadow>
</value>
</block>
</category>
<category id="catIR" colour="140">