@mixly/micropython
Version:
适用于mixly的micropython模块
310 lines (272 loc) • 15.1 kB
JavaScript
import * as Blockly from 'blockly/core';
export const network_init = function (_, generator) {
generator.definitions_['import_network'] = "import network";
var varName = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);
var mode = this.getFieldValue('mode');
return "" + varName + " = network.WLAN(network." + mode + "_IF);\n";
}
// export const network_connect = function() {
// generator.definitions_['import_network'] = "import network";
// // generator.setups_['class_wlan'] ='wlan.active(True)\n';
// var varName =generator.valueToCode(this, 'VAR',generator.ORDER_ATOMIC);
// var id = generator.valueToCode(this, 'id', generator.ORDER_ATOMIC);
// var password = generator.valueToCode(this, 'password', generator.ORDER_ATOMIC);
// return "if not "+varName+".isconnected():\n"+
// " "+varName+".connect("+id+","+password+")\n"+
// " while not "+varName+".isconnected():\n"+
// " pass\n";
// }
export const network_connect = function (_, generator) {
generator.definitions_['import_network'] = "import network";
// generator.setups_['class_wlan'] ='wlan.active(True)\n';
var varName = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);
var id = generator.valueToCode(this, 'id', generator.ORDER_ATOMIC);
var password = generator.valueToCode(this, 'password', generator.ORDER_ATOMIC);
return "" + varName + ".connect(" + id + ", " + password + ")\n"
}
export const network_wifi_connect = function (_, generator) {
generator.definitions_['import_network'] = "import network";
var varName = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);
var code = varName + '.isconnected()';
return [code, generator.ORDER_ATOMIC];
}
export const network_get_connect = function (_, generator) {
generator.definitions_['import_network'] = "import network";
var varName = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);
var mode = this.getFieldValue('mode');
var code = "" + varName + ".ifconfig()[" + mode + "]";
return [code, generator.ORDER_ATOMIC]
}
export const network_stop = function (_, generator) {
generator.definitions_['import_network'] = "import network";
var varName = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);
return "" + varName + ".disconnect()\n";
}
export const network_open = function (_, generator) {
generator.definitions_['import_network'] = "import network";
var varName = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);
var op = this.getFieldValue('op');
var code = "" + varName + ".active(" + op + ")\n";
return code;
}
export const network_is_active = function (_, generator) {
generator.definitions_['import_network'] = "import network";
var varName = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);
var code = "" + varName + ".active()";
return [code, generator.ORDER_ATOMIC];
}
export const network_get_wifi = function (_, generator) {
generator.definitions_['import_network'] = "import network";
var varName = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);
var op = this.getFieldValue('op');
var code = "" + varName + ".config('" + op + "')";
return [code, generator.ORDER_ATOMIC]
}
export const network_ap_connect = function (_, generator) {
generator.definitions_['import_network'] = "import network";
// generator.setups_['class_wlan'] ='ap = network.WLAN(network.AP_IF)\n'+'ap.active(True)\n';
var varName = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);
var essid = generator.valueToCode(this, 'essid', generator.ORDER_ATOMIC);
var channel = generator.valueToCode(this, 'channel', generator.ORDER_ATOMIC);
return "" + varName + ".config(essid = " + essid + ", channel=" + channel + ")\n";
}
export const network_scan = function (_, generator) {
generator.definitions_['import_network'] = "import network";
var varName = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);
var code = "" + varName + ".scan()";
return [code, generator.ORDER_ATOMIC];
}
export const network_server = function (_, generator) {
generator.definitions_['import_server_*'] = 'from server import *';
var varName = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);
// generator.setups_['class_wlan'] ='SSID="ying"\n'+'PASSWORD="201411132040"\n';
return 'if not ' + varName + '.isconnected():\n'
+ ' connectWifi(SSID, PASSWORD)\n'
+ 'ip=' + varName + '.ifconfig()[0]\n'
+ 'print(ip)\n'
+ 'time.sleep(1)\n'
+ 'DATA=listenData()\n'
}
export const network_socket_init = function (_, generator) {
generator.definitions_['import_network'] = "import network";
generator.definitions_['import_socket'] = "import socket";
var varName = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);
var mode = this.getFieldValue('mode');
if (mode == 'UDP') {
mode = 'socket.SOCK_DGRAM'
}
else if (mode == 'TCP') {
mode = 'socket.SOCK_STREAM'
}
return "" + varName + " = socket.socket(socket.AF_INET, " + mode + ")\n";
}
export const network_socket_bind = function (_, generator) {
generator.definitions_['import_network'] = "import network";
generator.definitions_['import_socket'] = "import socket";
var varName = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);
var address = generator.valueToCode(this, 'address', generator.ORDER_ATOMIC);
return "" + varName + ".bind(" + address + ")\n";
}
export const network_socket_connect = function (_, generator) {
generator.definitions_['import_network'] = "import network";
generator.definitions_['import_socket'] = "import socket";
var varName = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);
var address = generator.valueToCode(this, 'address', generator.ORDER_ATOMIC);
return "" + varName + ".connect(socket.getaddrinfo" + address + "[0][-1])\n";
}
export const network_socket_listen = function (_, generator) {
generator.definitions_['import_network'] = "import network";
generator.definitions_['import_socket'] = "import socket";
var varName = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);
var queue = generator.valueToCode(this, 'queue', generator.ORDER_ATOMIC);
return "" + varName + ".listen(" + queue + ")\n";
}
export const network_socket_accept = function (_, generator) {
generator.definitions_['import_network'] = "import network";
generator.definitions_['import_socket'] = "import socket";
var varName = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);
var code = "" + varName + ".accept()";
return [code, generator.ORDER_ASSIGNMENT];
}
export const network_socket_receive = function (_, generator) {
generator.definitions_['import_network'] = "import network";
generator.definitions_['import_socket'] = "import socket";
var varName = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);
var size = generator.valueToCode(this, 'size', generator.ORDER_ATOMIC);
var code = "" + varName + ".recv(" + size + ")";
return [code, generator.ORDER_ASSIGNMENT];
}
export const network_socket_send = function (_, generator) {
generator.definitions_['import_network'] = "import network";
generator.definitions_['import_socket'] = "import socket";
var varName = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);
var content = generator.valueToCode(this, 'content', generator.ORDER_ATOMIC);
var code = "" + varName + ".send(" + content + ")\n";
return code;
}
export const network_socket_receive_from = function (_, generator) {
generator.definitions_['import_network'] = "import network";
generator.definitions_['import_socket'] = "import socket";
var varName = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);
var size = generator.valueToCode(this, 'size', generator.ORDER_ATOMIC);
var code = "" + varName + ".recvfrom(" + size + ")";
return [code, generator.ORDER_ASSIGNMENT];
}
export const network_socket_send_to = function (_, generator) {
generator.definitions_['import_network'] = "import network";
generator.definitions_['import_socket'] = "import socket";
var varName = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);
var content = generator.valueToCode(this, 'content', generator.ORDER_ATOMIC);
var address = generator.valueToCode(this, 'address', generator.ORDER_ATOMIC);
var code = "" + varName + ".sendto(" + content + ", " + address + ")\n";
return code;
}
export const network_socket_close = function (_, generator) {
generator.definitions_['import_network'] = "import network";
generator.definitions_['import_socket'] = "import socket";
var varName = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);
var code = "" + varName + ".close()\n";
return code;
}
export const requests_get = function (_, generator) {
generator.definitions_.import_requests = "import requests";
var varName = generator.variableDB_.getName(this.getFieldValue('VAR'),
Blockly.Variables.NAME_TYPE);
var str = generator.valueToCode(this, 'DOMAIN', generator.ORDER_ATOMIC);
var code = varName + '= ' + 'requests.get(' + str + ')\n';
return code;
}
export const requests_attribute = function (_, generator) {
generator.definitions_.import_requests = "import requests";
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_method = function (_, generator) {
generator.definitions_.import_requests = "import requests";
var method = this.getFieldValue('DIR');
var str = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);
var code = "requests." + method + "(" + str + ')\n';
return code;
}
export const ntptime_time = function (_, generator) {
generator.definitions_['import_ntptime'] = "import ntptime";
var str = generator.valueToCode(this, 'data', generator.ORDER_ATOMIC);
var code = "ntptime.time(host=" + str + ")";
return [code, generator.ORDER_ATOMIC];
}
export const ntptime_address = function (_, generator) {
var code = "'" + this.getFieldValue('op') + "'";
return [code, generator.ORDER_ATOMIC];
}
export const requests_get2 = function (_, generator) {
generator.definitions_['import_urequests'] = "import urequests";
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 requests_attribute2 = function (_, generator) {
generator.definitions_['import_urequests'] = "import urequests";
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];
};
export const educore_wifi_connect = function (_, generator) {
generator.definitions_['import_educore_wifi'] = "from educore import wifi";
var username = generator.valueToCode(this, 'WIFINAME', generator.ORDER_ATOMIC);
var password = generator.valueToCode(this, 'PASSWORD', generator.ORDER_ATOMIC);
var timeout = generator.valueToCode(this, 'TIMEOUT', generator.ORDER_ATOMIC);
var code = 'wifi.connect(ssid='+username+', psd='+password+', timeout='+timeout+')\n';
return code;
}
export const educore_mqtt_connect = function (_, generator) {
generator.definitions_['import_educore_mqttclient'] = "from educore import mqttclient";
var server = generator.valueToCode(this, 'SERVER', generator.ORDER_ATOMIC);
var port = generator.valueToCode(this, 'PORT', generator.ORDER_ATOMIC);
var client_id = generator.valueToCode(this, 'CLIENT_ID', generator.ORDER_ATOMIC);
var username = generator.valueToCode(this, 'USERNAME', generator.ORDER_ATOMIC);
var password = generator.valueToCode(this, 'PASSWORD', generator.ORDER_ATOMIC);
// var a = "'" + username.replace("'", "").replace("'", "") + "/" + project.replace("'", "").replace("'", "") + "/'"
// var code = 'MQTT_USR_PRJ = ' + a + '\n' + 'mqtt_client = mixiot.init_MQTT_client(' + server + ', ' + username + ', ' + password + ', MQTT_USR_PRJ)\n';
var code = 'mqttclient.connect(server='+server+', port='+port+', client_id='+client_id+', user='+username+', psd='+password+')\n'
return code;
}
export const educore_mqtt_subscribe_message = function (_, generator) {
generator.definitions_['import_educore_mqttclient'] = "from educore import mqttclient";
var topic = generator.valueToCode(this, 'TOPIC', generator.ORDER_ATOMIC);
var message = generator.valueToCode(this, 'MESSAGE', generator.ORDER_ATOMIC);
var code = 'mqttclient.'+message+'(' + topic + ')';
return [code, generator.ORDER_ATOMIC];
}
export const educore_mqtt_topic_subscribe = function (_, generator) {
var topic = generator.valueToCode(this, 'TOPIC', generator.ORDER_ATOMIC);
var method = generator.valueToCode(this, 'METHOD', generator.ORDER_ATOMIC);
generator.definitions_['import_educore_mqttclient'] = "from educore import mqttclient";
// var code = 'mqtt_client.set_callback(' + topic + ',' + method + ', MQTT_USR_PRJ)\n';
// code += 'mqtt_client.subscribe(MQTT_USR_PRJ + ' + topic + ')\n';
var code = 'mqttclient.received(topic='+topic+', callback='+method+')\n';
return code;
}
export const educore_mqtt_topic_publish = function (_, generator) {
generator.definitions_['import_educore_mqttclient'] = "from educore import mqttclient";
var topic = generator.valueToCode(this, 'TOPIC', generator.ORDER_ATOMIC);
var msg = generator.valueToCode(this, 'MSG', generator.ORDER_ATOMIC);
var code = 'mqtt_client.publish(topic=' + topic + ', content=' + msg + ')\n';
return code;
}
export const educore_mqtt_connect_success = function (_, generator) {
generator.definitions_['import_educore_mqttclient'] = "from educore import mqttclient";
var code = 'mqtt_client.connescted()';
return [code, generator.ORDER_ATOMIC];
}