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

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];
};