259 lines
11 KiB
JavaScript
259 lines
11 KiB
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 urequests_wifi_connect = 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;
|
|
return [code,generator.ORDER_ATOMIC];
|
|
}
|
|
|
|
export const urequests_connect_url = 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';
|
|
return [code,generator.ORDER_ATOMIC];
|
|
}
|