@mixly/micropython
Version:
适用于mixly的micropython模块
114 lines (104 loc) • 4.07 kB
JavaScript
;
// 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"
})];
}