mini增加网络请求和板载显示绘制指针

This commit is contained in:
Irene-Maxine
2024-09-20 23:18:24 +08:00
parent fbbf82d4a4
commit 61ae2048fb
14 changed files with 50609 additions and 126 deletions

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -1453,4 +1453,20 @@ export const onboard_tft_display_shape_circle = {
"previousStatement": null
});
}
};
};
export const draw_pointer = {
init: function() {
this.setColour(DISPLAY_ONBOARD_HUE);
this.appendDummyInput()
.appendField(Blockly.Msg.DRAW_POINTER)
.appendField(Blockly.Msg.DRAW_POINTER_ANGLE);
this.appendValueInput('angle');
this.appendDummyInput()
.appendField('°');
this.setPreviousStatement(true, null);
this.setNextStatement(true, null);
this.setInputsInline(true);
this.setTooltip(Blockly.Msg.DRAW_POINTER_TOOLTIP);
}
};

View File

@@ -123,59 +123,6 @@ export const network_wifi_connect = {
}
};
export const urequests_wifi_connect = {
init: function () {
this.setColour(NETWORK_HUE);
this.appendDummyInput()
.appendField(Blockly.Msg.MIXLY_ESP32_UREQUESTS_CONNECT_WIFI);
this.appendValueInput('WIFINAME')
.setCheck(String)
.appendField(Blockly.Msg.HTML_NAME);
this.appendValueInput('PASSWORD')
.setCheck(String)
.appendField(Blockly.Msg.HTML_PASSWORD);
this.setInputsInline(true);
this.setPreviousStatement(true);
this.setNextStatement(true);
this.setTooltip(Blockly.Msg.MIXLY_ESP32_IOT_WIFI_CONNECT_TOOLTIP);
}
};
export const urequests_wifi_url = {
init: function () {
this.setColour(NETWORK_HUE);
this.appendValueInput('URL')
.setCheck(String)
.appendField('URL');
this.setInputsInline(true);
this.setOutput(true);
this.setTooltip(Blockly.Msg.MIXLY_UREQUESTS_URL_TOOLTIP);
}
};
export const urequests_connect_url = {
init: function () {
this.setColour(NETWORK_HUE);
this.appendValueInput('url')
.appendField(Blockly.Msg.MIXLY_ESP32_CONNECT_URL_TOOLTIP);
this.setPreviousStatement(true);
this.setNextStatement(true);
this.setInputsInline(true);
this.setTooltip(Blockly.Msg.MIXLY_ESP32_UREQUESTS_URL_TOOLTIP);
}
};
export const urequests_response = {
init: function () {
this.setColour(NETWORK_HUE);
this.appendDummyInput()
.appendField(Blockly.Msg.MIXLY_ESP32_URL_REPONSE);
this.setInputsInline(true);
this.setOutput(true);
this.setTooltip(Blockly.Msg.MIXLY_ESP32_URL_REPONSE_TOOLTIP);
}
};
export const network_get_connect = {
init: function () {
this.setColour(NETWORK_HUE);
@@ -564,4 +511,63 @@ export const ntptime_address = {
]), 'op')
this.setOutput(true);
}
};
};
const COMMUNICATE_HUE = '#3288dd';
export const requests_get2 = {
init: function() {
this.setColour(COMMUNICATE_HUE);
this.appendValueInput("URL")
.appendField(Blockly.Msg.DISPLAY_IMAGE_LET2)
.setCheck(String);
this.appendDummyInput("")
.appendField(Blockly.Msg.blockpy_CONDUCT)
.appendField(new Blockly.FieldDropdown([["get", "get"], ["head", "head"], ["delete", "delete"]]), 'TYPE')
.appendField(Blockly.Msg.blockpy_REQUESTS)
.appendField(Blockly.Msg.MIXPY_REQUESTS_GET_RESULT)
this.setInputsInline(true);
this.setOutput(true);
this.setTooltip("");
},
};
export const requests_post = {
init: function() {
this.setColour(COMMUNICATE_HUE);
this.appendValueInput("URL")
.appendField(Blockly.Msg.DISPLAY_IMAGE_LET2)
.setCheck(String);
this.appendDummyInput("")
.appendField(Blockly.Msg.blockpy_CONDUCT)
.appendField(new Blockly.FieldDropdown([["post", "post"], ["put", "put"], ["patch", "patch"]]), 'TYPE')
.appendField(Blockly.Msg.blockpy_REQUESTS)
this.appendValueInput("data")
.appendField(Blockly.Msg.blockpy_REQUESTS+Blockly.Msg.OLED_STRING)
this.appendDummyInput("")
.appendField(Blockly.Msg.MIXPY_REQUESTS_GET_RESULT)
this.setInputsInline(true);
this.setOutput(true);
this.setTooltip("");
},
};
export const requests_attribute2 = {
init: function() {
this.appendValueInput('VAL')
var attr =
[[Blockly.Msg.blockpy_REQUESTS_GET_ATTR_TEXT, 'text'],
[Blockly.Msg.blockpy_REQUESTS_GET_ATTR_JSON,'json()'],
[Blockly.Msg.blockpy_REQUESTS_GET_ATTR_STATUS_CODE, 'status_code'],
[Blockly.Msg.blockpy_REQUESTS_GET_ATTR_CONTENT, 'content']
,[Blockly.Msg.MIXPY_TEXT_ENCODE, 'encoding']];
this.setColour(COMMUNICATE_HUE);
this.appendDummyInput("")
.appendField(Blockly.Msg.MIXLY_MICROBIT_JS_GET)
.appendField(new Blockly.FieldDropdown(attr), 'ATTR')
this.setInputsInline(true);
this.setOutput(true, String);
}
};

View File

@@ -913,4 +913,12 @@ export const onboard_tft_display_shape_circle = function (block, generator) {
var code = 'onboard_tft.ellipse(' + x + ', ' + y + ', ' + R + ', ' + R + ', 0x' + rgb565.toString(16) + ',' + shape + ')\n' + 'onboard_tft.show()\n';
}
return code;
}
export const draw_pointer = function(_, generator) {
var version = Boards.getSelectedBoardKey().split(':')[2]
generator.definitions_['import_'+version+'_onboard_matrix'] = "from "+version+" import onboard_matrix";
var angle = generator.valueToCode(this, 'angle', generator.ORDER_ASSIGNMENT);
var code = "onboard_matrix.pointern(angle=" + angle + ")\n";
return code;
}

View File

@@ -230,29 +230,30 @@ export const ntptime_address = function (_, generator) {
return [code, generator.ORDER_ATOMIC];
}
export const urequests_wifi_connect = function (_, generator) {
export const requests_get2 = function(_, generator) {
generator.definitions_['import_urequests'] = "import urequests";
var username = generator.valueToCode(this, 'WIFINAME', generator.ORDER_ATOMIC);
var password = generator.valueToCode(this, 'PASSWORD', generator.ORDER_ATOMIC);
var code = 'wifi.connect(' + username + ',' + password + ')\n';
return code;
}
export const urequests_wifi_url = function (_, generator) {
generator.definitions_['import_urequests'] = "import urequests";
var url = generator.valueToCode(this, 'URL', generator.ORDER_ATOMIC);
var code = url;
var dropdown_type = this.getFieldValue('TYPE');
var str =generator.valueToCode(this, 'URL', generator.ORDER_ATOMIC) ;
var code= 'urequests.'+dropdown_type+'(' + str + ')';
return [code,generator.ORDER_ATOMIC];
}
export const urequests_connect_url = function (_, generator) {
};
export const requests_attribute2 = function(_, generator) {
generator.definitions_['import_urequests'] = "import urequests";
var url = generator.valueToCode(this, 'url', generator.ORDER_ATOMIC);
return 'response=urequests.get('+url+')\n';
}
export const urequests_response = function (_, generator) {
generator.definitions_['import_urequests'] = "import urequests";
var code = 'res=response.text';
var varName = generator.valueToCode(this, 'VAL', generator.ORDER_ASSIGNMENT) || '0';
var attr = this.getFieldValue('ATTR');
var code=varName+"." + attr;
return [code,generator.ORDER_ATOMIC];
}
};
export const requests_post = function(_, generator) {
generator.definitions_['import_urequests'] = "import urequests";
var dropdown_type = this.getFieldValue('TYPE');
var str = generator.valueToCode(this, 'URL', generator.ORDER_ATOMIC) ;
var data = generator.valueToCode(this, 'data', generator.ORDER_ATOMIC) ;
var code= 'urequests.'+dropdown_type+'(' + str +',data='+data+ ')';
return [code,generator.ORDER_ATOMIC];
};

View File

@@ -350,3 +350,11 @@ div.blocklyToolboxDiv > div.blocklyToolboxContents > div:nth-child(12) > div.blo
background:url('../../../../common/media/mark/factory4.png') no-repeat;
background-size: 100% auto;
}
#catCommunicate.blocklyTreeRow > div.blocklyTreeRowContentContainer > span.blocklyTreeIcon{
background:url('../../../../common/media/mark/requests.png') no-repeat;
background-size: 100% auto;
}
#catCommunicate.blocklyTreeRow.blocklyTreeSelected > div.blocklyTreeRowContentContainer > span.blocklyTreeIcon{
background:url('../../../../common/media/mark/requests2.png') no-repeat;
background-size: 100% auto;
}

View File

@@ -1855,17 +1855,21 @@
</block>
<block type="display_bright_screen">
<value name="x">
<shadow type="math_number">
<field name="NUM">0.5</field>
</shadow>
</value>
</block>
<block type="display_get_screen_pixel">
</block>
<block type="display_get_screen_pixel"></block>
<block type="display_clear"></block>
<block type="draw_pointer">
<value name="angle">
<shadow type="math_number">
<field name="NUM">0</field>
</shadow>
</value>
</block>
</category>
<category id="catME_GO" colour="100" m-show='micropython:esp32c2:mixgo_mini'>
@@ -6494,37 +6498,44 @@
</shadow>
</value>
</block>
<block type="urequests_wifi_connect">
<value name="WIFINAME">
<shadow type="text">
<field name="TEXT">wifi-name</field>
</shadow>
</value>
<value name="PASSWORD">
<shadow type="text">
<field name="TEXT">wifi-password</field>
</shadow>
</value>
</block>
<block type="urequests_wifi_url">
<value name="URL">
<shadow type="text">
<field name="TEXT">url</field>
</shadow>
</value>
</block>
<block type="urequests_connect_url">
<value name="url">
<block type="urequests_wifi_url">
</category>
<category id="catCommunicate" colour="#3288dd">
<block type="variables_set">
<field name="VAR">response</field>
<value name="VALUE">
<block type="requests_get2">
<value name="URL">
<shadow type="text">
<field name="TEXT">url</field>
<field name="TEXT">http://mixio.mixly.cn</field>
</shadow>
</value>
</block>
</value>
</block>
<block type="urequests_response"></block>
<block type="variables_set">
<field name="VAR">response</field>
<value name="VALUE">
<block type="requests_post">
<value name="URL">
<shadow type="text">
<field name="TEXT">http://mixio.mixly.cn</field>
</shadow>
</value>
<value name="data">
<shadow type="text">
<field name="TEXT"></field>
</shadow>
</value>
</block>
</value>
</block>
<block type="requests_attribute2">
<value name="VAL">
<shadow type="variables_get">
<field name="VAR">response</field>
</shadow>
</value>
</block>
</category>
<category id="catFactory" name="Factory" colour="#777777">