初始化提交
This commit is contained in:
113
boards/default_src/micropython/converters/iot.js
Normal file
113
boards/default_src/micropython/converters/iot.js
Normal file
@@ -0,0 +1,113 @@
|
||||
'use strict';
|
||||
// console.log("hhh")
|
||||
|
||||
pbc.assignD.get('iot')['check_assign'] = function(py2block, node, targets, value) {
|
||||
if(value._astname != "Call" || value.func._astname != "Attribute" || value.func.value._astname != "Name"){
|
||||
return false;
|
||||
}
|
||||
var funcName = py2block.identifier(value.func.attr);
|
||||
var moduleName = py2block.Name_str(value.func.value);
|
||||
if(moduleName === "miot" && funcName === "init_MQTT_client" && value.args.length === 6)
|
||||
return true;
|
||||
return false;
|
||||
}
|
||||
|
||||
pbc.assignD.get('iot')['create_block'] = function(py2block, node, targets, value){
|
||||
pbc.pinType = "pins_callback";
|
||||
var subblock = py2block.convert(value.args[5]);
|
||||
pbc.pinType = null;
|
||||
return block("iot_onenet_connect", node.lineno, {}, {
|
||||
"CLIENT":py2block.convert(value.args[0]),
|
||||
"SERVER":py2block.convert(value.args[1]),
|
||||
"USERNAME":py2block.convert(value.args[2]),
|
||||
"PASSWORD":py2block.convert(value.args[3]),
|
||||
"TOPIC":py2block.convert(value.args[4]),
|
||||
"SUB":subblock,
|
||||
"VAR":py2block.convert(targets[0])
|
||||
});
|
||||
}
|
||||
|
||||
// pbc.globalFunctionD['do_connect'] = function(py2block, func, args, keywords, starargs, kwargs, node){
|
||||
// if (args.length !== 2) {
|
||||
// throw new Error("Incorrect number of arguments");
|
||||
// }
|
||||
// var nameblock = py2block.convert(args[0]);
|
||||
// var keyblock = py2block.convert(args[1]);
|
||||
// return [block("iot_wifi_connect", func.lineno, {}, {
|
||||
// 'WIFINAME': nameblock,
|
||||
// 'PASSWORD': keyblock
|
||||
// }, {
|
||||
// "inline": "true"
|
||||
// })];
|
||||
// }
|
||||
|
||||
pbc.objectFunctionD.get('do_connect')['miot'] = function (py2block, func, args, keywords, starargs, kwargs, node) {
|
||||
if (args.length != 2) {
|
||||
throw new Error("Incorrect number of arguments");
|
||||
}
|
||||
var nameblock = py2block.convert(args[0]);
|
||||
var keyblock = py2block.convert(args[1]);
|
||||
return [block("iot_wifi_connect", func.lineno, {}, {
|
||||
'WIFINAME': nameblock,
|
||||
'PASSWORD': keyblock
|
||||
}, {
|
||||
"inline": "true"
|
||||
})];
|
||||
}
|
||||
|
||||
pbc.objectFunctionD.get('publish')['miot'] = function (py2block, func, args, keywords, starargs, kwargs, node) {
|
||||
if (args.length == 1 && keywords.length == 1) {
|
||||
var objblock = py2block.convert(func.value);
|
||||
var nameblock = py2block.convert(args[0]);
|
||||
var checkblock = py2block.Name_str(keywords[0].value);
|
||||
return [block("iot_onenet_publish_dict", func.lineno, {
|
||||
"is_print":checkblock
|
||||
}, {
|
||||
"VAR":objblock,
|
||||
"DICT":nameblock
|
||||
}, {
|
||||
"inline": "true"
|
||||
})];
|
||||
}
|
||||
else if(args.length == 2) {
|
||||
var objblock = py2block.convert(func.value);
|
||||
var nameblock = py2block.convert(args[0]);
|
||||
var checkblock = py2block.Name_str(args[1]);
|
||||
return [block("iot_onenet_publish_dict", func.lineno, {
|
||||
"is_print":checkblock
|
||||
}, {
|
||||
"VAR":objblock,
|
||||
"DICT":nameblock
|
||||
}, {
|
||||
"inline": "true"
|
||||
})];
|
||||
}
|
||||
else
|
||||
throw new Error("Incorrect number of arguments");
|
||||
}
|
||||
|
||||
pbc.objectFunctionD.get('do_disconnect')['miot'] = function (py2block, func, args, keywords, starargs, kwargs, node) {
|
||||
if (args.length != 0) {
|
||||
throw new Error("Incorrect number of arguments");
|
||||
}
|
||||
var objblock = py2block.convert(func.value);
|
||||
return [block("iot_onenet_disconnect", func.lineno, {}, {
|
||||
"VAR":objblock,
|
||||
}, {
|
||||
"inline": "true"
|
||||
})];
|
||||
}
|
||||
|
||||
|
||||
pbc.objectFunctionD.get('check_msg')['iot'] = function (py2block, func, args, keywords, starargs, kwargs, node) {
|
||||
if (args.length != 0) {
|
||||
throw new Error("Incorrect number of arguments");
|
||||
}
|
||||
var objblock = py2block.convert(func.value);
|
||||
return [block("iot_onenet_check", func.lineno, {}, {
|
||||
"VAR":objblock,
|
||||
}, {
|
||||
"inline": "true"
|
||||
})];
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user