UNPKG

@mixly/micropython

Version:
478 lines (410 loc) 14 kB
'use strict'; pbc.moduleFunctionD.get('servo')['servo_write_angle'] = function (py2block, func, args, keywords, starargs, kwargs, node) { if (args.length !== 2) { throw new Error("Incorrect number of arguments"); } var pwmAstName = args[0]._astname; pbc.pinType="pins_pwm_pin"; var pinblock; if (pwmAstName === "Num") { pinblock=py2block.convert(args[0]) } pbc.pinType=null; var angleblock=py2block.convert(args[1]); return [block("servo_move", func.lineno, {}, { "PIN":pinblock, "DEGREE": angleblock, }, { "inline": "true" })]; } pbc.moduleFunctionD.get('mixgo.led1')['setonoff'] = function (py2block, func, args, keywords, starargs, kwargs, node) { if (args.length !== 1) { throw new Error("Incorrect number of arguments"); } pbc.pinType="number"; var ledblock = { _astname: "Num", n: { 'v': "1" } } var mode = py2block.convert(ledblock); pbc.pinType=null; pbc.inScope="ledswitch"; var argblock = py2block.convert(args[0]); pbc.inScope=null; return [block("actuator_led_bright", func.lineno, { }, { 'led': mode, 'bright':argblock, }, { "inline": "true" }), ]; } pbc.moduleFunctionD.get('mixgo.led2')['setonoff'] = function (py2block, func, args, keywords, starargs, kwargs, node) { if (args.length !== 1) { throw new Error("Incorrect number of arguments"); } pbc.pinType="number"; var ledblock = { _astname: "Num", n: { 'v': "2" } } var mode = py2block.convert(ledblock); pbc.pinType=null; pbc.inScope="ledswitch"; var argblock = py2block.convert(args[0]); pbc.inScope=null; return [block("actuator_led_bright", func.lineno, { }, { 'led': mode, 'bright':argblock, }, { "inline": "true" }), ]; } pbc.moduleFunctionD.get('mixgo.led1')['getonoff'] = function (py2block, func, args, keywords, starargs, kwargs, node) { if (args.length !== 0) { throw new Error("Incorrect number of arguments"); } pbc.pinType="number"; var ledblock = { _astname: "Num", n: { 'v': "1" } } var mode = py2block.convert(ledblock); pbc.pinType=null; return block("actuator_get_led_bright", func.lineno, { }, { 'led': mode, }, { "inline": "true" }); } pbc.moduleFunctionD.get('mixgo.led2')['getonoff'] = function (py2block, func, args, keywords, starargs, kwargs, node) { if (args.length !== 0) { throw new Error("Incorrect number of arguments"); } pbc.pinType="number"; var ledblock = { _astname: "Num", n: { 'v': "2" } } var mode = py2block.convert(ledblock); pbc.pinType=null; return block("actuator_get_led_bright", func.lineno, { }, { 'led': mode, }, { "inline": "true" }); } pbc.moduleFunctionD.get('mixgo.led1')['setbrightness'] = function (py2block, func, args, keywords, starargs, kwargs, node) { if (args.length !== 1) { throw new Error("Incorrect number of arguments"); } pbc.pinType="number"; var ledblock = { _astname: "Num", n: { 'v': "1" } } var mode = py2block.convert(ledblock); pbc.pinType=null; var brightblock = py2block.convert(args[0]); return [block("actuator_led_brightness", func.lineno, {}, { 'led': mode, 'bright':brightblock, }, { "inline": "true" }), ]; } pbc.moduleFunctionD.get('mixgo.led2')['setbrightness'] = function (py2block, func, args, keywords, starargs, kwargs, node) { if (args.length !== 1) { throw new Error("Incorrect number of arguments"); } pbc.pinType="number"; var ledblock = { _astname: "Num", n: { 'v': "2" } } var mode = py2block.convert(ledblock); pbc.pinType=null; var brightblock = py2block.convert(args[0]); return [block("actuator_led_brightness", func.lineno, {}, { 'led': mode, 'bright':brightblock, }, { "inline": "true" }), ]; } pbc.moduleFunctionD.get('music')['pitch'] = function (py2block, func, args, keywords, starargs, kwargs, node) { if(args.length!==1 && args.length!==2){ throw new Error("Incorrect number of arguments"); } if (args.length === 2) { pbc.pinType = "pins_pwm_pin"; var pinblock = py2block.convert(args[0]); pbc.pinType=null; pbc.pinType = "pins_tone_notes"; var pitchblock = py2block.convert(args[1]); pbc.pinType=null; return [block("esp32_music_pitch", func.lineno, {}, { 'pitch': pitchblock, 'PIN': pinblock, }, { "inline": "true" })]; } else if (args.length=== 1){ pbc.pinType = "pins_tone_notes"; var pitchblock = py2block.convert(args[0]); pbc.pinType=null; return [block("esp32_onboard_music_pitch", func.lineno, {}, { 'pitch': pitchblock, }, { "inline": "true" })]; } } pbc.moduleFunctionD.get('music')['pitch_time'] = function (py2block, func, args, keywords, starargs, kwargs, node) { if(args.length!==2 && args.length!==3){ throw new Error("Incorrect number of arguments"); } if (args.length === 2) { pbc.pinType = "pins_tone_notes"; var pitchblock = py2block.convert(args[0]); pbc.pinType=null; var timeblock=py2block.convert(args[1]); return [block("esp32_onboard_music_pitch_with_time", func.lineno, {}, { 'pitch': pitchblock, "time":timeblock }, { "inline": "true" })]; } else if (args.length=== 3){ pbc.pinType = "pins_pwm_pin"; var pinblock = py2block.convert(args[0]); pbc.pinType=null; pbc.pinType = "pins_tone_notes"; var pitchblock = py2block.convert(args[1]); pbc.pinType=null; var timeblock=py2block.convert(args[2]); return [block("esp32_music_pitch_with_time", func.lineno, {}, { 'pitch': pitchblock, 'PIN': pinblock, "time":timeblock }, { "inline": "true" })]; } } pbc.moduleFunctionD.get('music')['stop'] = function (py2block, func, args, keywords, starargs, kwargs, node) { if (args.length !== 1 && args.length !== 0) { throw new Error("Incorrect number of arguments"); } if (args.length == 1){ pbc.pinType = "pins_pwm_pin"; var argblock = py2block.convert(args[0]); pbc.pinType = null; return [block("esp32_music_stop", func.lineno, {}, { 'PIN': argblock }, { "inline": "true" })]; } if (args.length == 0){ return [block("esp32_onboard_music_stop", func.lineno, {}, {}, { "inline": "true" })]; } } pbc.moduleFunctionD.get('music')['play'] = function (py2block, func, args, keywords, starargs, kwargs, node) { if (args.length !== 2 && args.length !== 1) { throw new Error("Incorrect number of arguments"); } if(args.length == 2){ pbc.pinType = "pins_playlist_pin"; var nameblock= py2block.convert(args[0]); pbc.pinType = "pins_pwm_pin"; var argblock = py2block.convert(args[1]); pbc.pinType = null; return [block("esp32_music_play_list", func.lineno, {}, { "LIST":nameblock, 'PIN': argblock }, { "inline": "true" })]; } if(args.length == 1){ pbc.pinType = "pins_playlist_pin"; var nameblock= py2block.convert(args[0]); pbc.pinType = null; return [block("esp32_onboard_music_play_list", func.lineno, {}, { "LIST":nameblock, }, { "inline": "true" })]; } } pbc.moduleFunctionD.get('music')['play_show'] = function (py2block, func, args, keywords, starargs, kwargs, node) { if (args.length !== 2) { throw new Error("Incorrect number of arguments"); } pbc.pinType = "pins_playlist_pin"; var nameblock= py2block.convert(args[0]); pbc.pinType = "pins_pwm_pin"; var argblock = py2block.convert(args[1]); pbc.pinType = null; return [block("esp32_mixgo_music_play_list_show", func.lineno, {}, { "LIST":nameblock, 'PIN': argblock }, { "inline": "true" })]; } pbc.assignD.get('Rgb')['check_assign'] = function(py2block, node, targets, value) { var funcName = py2block.identifier(value.func.attr); var moduleName=py2block.identifier(value.func.value.id); if(value._astname === "Call" && moduleName === "neopixel" && funcName === "NeoPixel" && value.args.length === 2&&value.keywords.length===1) return true; return false; } pbc.assignD.get('Rgb')['create_block'] = function(py2block, node, targets, value){ var rgbblock=py2block.convert(targets[0]); pbc.inScope = "rgb_create_block"; pbc.pinType = "pins_digital_pin"; // value.args[0].args[0].n.v='pin'+value.args[0].args[0].n.v var pinblock = py2block.convert(value.args[0].args[0]); pbc.inScope = null; pbc.pinType = null; var countblock = py2block.convert(value.args[1]); return block("actuator_neopixel_init", node.lineno, {}, { "SUB":rgbblock, "PIN":pinblock, "LEDCOUNT":countblock }); } pbc.moduleFunctionD.get('rgb')['write'] = function(py2block, func, args, keywords, starargs, kwargs, node){ if(args.length!=0){ throw new Error("Incorrect number of arguments"); } var rgbblock=py2block.convert(func.value); return [block("actuator_neopixel_write", func.lineno, {}, { 'SUB':rgbblock, }, { "inline": "true" })]; } pbc.moduleFunctionD.get('music')['get_tempo'] = function(py2block, func, args, keywords, starargs, kwargs, node){ if(args.length!=0){ throw new Error("Incorrect number of arguments"); } return block("esp32_music_get_tempo", func.lineno, {}, { }, { "inline": "true" }); } pbc.moduleFunctionD.get('music')['set_tempo'] = function(py2block, func, args, keywords, starargs, kwargs, node){ if(args.length!=2){ throw new Error("Incorrect number of arguments"); } var resoblock=py2block.convert(args[0]); var speedblock=py2block.convert(args[1]); return [block("esp32_music_set_tempo", func.lineno, {}, { 'TICKS':resoblock, "BPM":speedblock, }, { "inline": "true" })]; } pbc.moduleFunctionD.get('music')['reset'] = function(py2block, func, args, keywords, starargs, kwargs, node){ if(args.length!=0){ throw new Error("Incorrect number of arguments"); } return [block("esp32_music_reset", func.lineno, {}, { }, { "inline": "true" })]; } pbc.objectFunctionD.get('setonoff')['led'] = function (py2block, func, args, keywords, starargs, kwargs, node) { if (args.length !== 1) { throw new Error("Incorrect number of arguments"); } var pin=py2block.identifier(func.value.func.attr); var mac=py2block.identifier(func.value.func.value.id); if(pin==="led" && mac==="mixgo"){ pbc.pinType = "pins_pwm_pin"; var pinblock = py2block.convert(func.value.args[0]); pbc.pinType = null; pbc.inScope="ledswitch"; var mode = py2block.convert(args[0]); pbc.inScope=null; return [block("actuator_extern_led_bright", func.lineno, {}, { "PIN": pinblock, 'bright':mode }, { "inline": "true" })]; } } pbc.objectFunctionD.get('getonoff')['led'] = function (py2block, func, args, keywords, starargs, kwargs, node) { if (args.length !== 0) { throw new Error("Incorrect number of arguments"); } var pin=py2block.identifier(func.value.func.attr); var mac=py2block.identifier(func.value.func.value.id); if(pin==="led" && mac==="mixgo"){ pbc.pinType = "pins_pwm_pin"; var pinblock = py2block.convert(func.value.args[0]); pbc.pinType = null; return block("actuator_extern_get_led_bright", func.lineno, {}, { "PIN": pinblock, }, { "inline": "true" }); } } pbc.objectFunctionD.get('setbrightness')['led'] = function (py2block, func, args, keywords, starargs, kwargs, node) { if (args.length !== 1) { throw new Error("Incorrect number of arguments"); } var pin=py2block.identifier(func.value.func.attr); var mac=py2block.identifier(func.value.func.value.id); if(pin==="led" && mac==="mixgo"){ pbc.pinType = "pins_pwm_pin"; var pinblock = py2block.convert(func.value.args[0]); pbc.pinType = null; var mode = py2block.convert(args[0]); return [block("actuator_extern_led_brightness", func.lineno, {}, { "PIN": pinblock, 'bright':mode }, { "inline": "true" })]; } } pbc.moduleFunctionD.get('mixgo.rgb')['write'] = function(py2block, func, args, keywords, starargs, kwargs, node){ if(args.length!=0){ throw new Error("Incorrect number of arguments"); } return [block("actuator_onboard_neopixel_write", func.lineno, {}, { }, { "inline": "true" })]; }