94 lines
3.0 KiB
JavaScript
94 lines
3.0 KiB
JavaScript
'use strict';
|
|
|
|
pbc.assignD.get('hardware')['check_assign'] = function(py2block, node, targets, value) {
|
|
if(value._astname != "Call" || value.func._astname != "Attribute" || value.func.value._astname != "Name"){
|
|
return false;
|
|
}
|
|
var moduleName = py2block.Name_str(value.func.value);
|
|
var funcName = py2block.identifier(value.func.attr);
|
|
if(value._astname === "Call" && moduleName === "s4alib"
|
|
&& funcName === "s4a_start" && value.args.length === 1)
|
|
return true;
|
|
return false;
|
|
}
|
|
|
|
pbc.assignD.get('hardware')['create_block'] = function(py2block, node, targets, value){
|
|
var argblock = py2block.convert(value.args[0]);
|
|
return block("hardware_arduino_start", node.lineno, {
|
|
}, {
|
|
// "PIN":argblock,
|
|
"SUB":py2block.convert(targets[0]),
|
|
});
|
|
}
|
|
|
|
pbc.objectFunctionD.get('digital_write')['s4a'] = function (py2block, func, args, keywords, starargs, kwargs, node) {
|
|
if (args.length !== 2) {
|
|
throw new Error("Incorrect number of arguments");
|
|
}
|
|
pbc.pinType = "pins_digital_write";
|
|
var pinblock = py2block.convert(args[0]);
|
|
pbc.pinType = "pins_digital";
|
|
var argblock = py2block.convert(args[1]);
|
|
pbc.pinType = null;
|
|
var s4ablock=py2block.convert(func.value);
|
|
return [block("hardware_arduino_digital_write", func.lineno, {}, {
|
|
'SUB':s4ablock,
|
|
"PIN": pinblock,
|
|
"STAT": argblock
|
|
}, {
|
|
"inline": "true"
|
|
})];
|
|
}
|
|
|
|
pbc.objectFunctionD.get('digital_read')['s4a'] = function (py2block, func, args, keywords, starargs, kwargs, node) {
|
|
if (args.length !== 1) {
|
|
throw new Error("Incorrect number of arguments");
|
|
}
|
|
pbc.pinType = "pins_digital_read";
|
|
var pinblock = py2block.convert(args[0]);
|
|
pbc.pinType = null;
|
|
var s4ablock=py2block.convert(func.value);
|
|
return block("hardware_arduino_digital_read", func.lineno, {}, {
|
|
'SUB':s4ablock,
|
|
"PIN": pinblock,
|
|
}, {
|
|
"inline": "true"
|
|
});
|
|
}
|
|
|
|
pbc.objectFunctionD.get('analog_write')['s4a'] = function (py2block, func, args, keywords, starargs, kwargs, node) {
|
|
if (args.length !== 2) {
|
|
throw new Error("Incorrect number of arguments");
|
|
}
|
|
pbc.pinType = "pins_analog_write";
|
|
var pinblock = py2block.convert(args[0]);
|
|
pbc.pinType = null;
|
|
var argblock = py2block.convert(args[1]);
|
|
var s4ablock=py2block.convert(func.value);
|
|
return [block("hardware_arduino_analog_write", func.lineno, {}, {
|
|
'SUB':s4ablock,
|
|
"PIN": pinblock,
|
|
"NUM": argblock
|
|
}, {
|
|
"inline": "true"
|
|
})];
|
|
}
|
|
|
|
|
|
pbc.objectFunctionD.get('analog_read')['s4a'] = function (py2block, func, args, keywords, starargs, kwargs, node) {
|
|
if (args.length !== 1) {
|
|
throw new Error("Incorrect number of arguments");
|
|
}
|
|
pbc.pinType = "pins_analog_read";
|
|
var pinblock = py2block.convert(args[0]);
|
|
pbc.pinType = null;
|
|
var s4ablock=py2block.convert(func.value);
|
|
return block("hardware_arduino_analog_read", func.lineno, {}, {
|
|
'SUB':s4ablock,
|
|
"PIN": pinblock,
|
|
}, {
|
|
"inline": "true"
|
|
});
|
|
}
|
|
|