106 lines
4.7 KiB
JavaScript
106 lines
4.7 KiB
JavaScript
import * as Blockly from 'blockly/core';
|
|
|
|
export const PGA_SELET = function (_, generator) {
|
|
var code = this.getFieldValue('PGA');
|
|
return [code, generator.ORDER_ATOMIC];
|
|
}
|
|
|
|
export const inout_highlow = function (_, generator) {
|
|
// Boolean values HIGH and LOW.
|
|
var code = (this.getFieldValue('BOOL') == 'HIGH') ? '1' : '0';
|
|
return [code, generator.ORDER_ATOMIC];
|
|
}
|
|
|
|
// ok
|
|
export const inout_digital_init = function (_, generator) {
|
|
generator.definitions_['import board'] = 'import board';
|
|
var pin_obj = this.getFieldValue('PIN_OBJ') || 'pin#';
|
|
var dropdown_pin = generator.valueToCode(this, 'PIN', generator.ORDER_ATOMIC);
|
|
var dropdown_mode = this.getFieldValue('MODE');
|
|
var varName = (pin_obj == 'pin#') ? 'pin' + dropdown_pin : generator.variableDB_.getName(pin_obj, Blockly.Variables.NAME_TYPE);
|
|
var code = varName + ' = board.pin(' + dropdown_pin + ', board.' + dropdown_mode + ')\n';
|
|
return code;
|
|
}
|
|
|
|
export const inout_digital_write = function (_, generator) {
|
|
generator.definitions_['import board'] = 'import board';
|
|
var dropdown_pin = generator.valueToCode(this, 'PIN', generator.ORDER_ATOMIC);
|
|
var dropdown_stat = generator.valueToCode(this, 'STAT', generator.ORDER_ATOMIC);
|
|
var code = "";
|
|
code = 'pin' + dropdown_pin + '.value(' + dropdown_stat + ')\n'
|
|
return code;
|
|
}
|
|
|
|
export const inout_digital_read = function (_, generator) {
|
|
generator.definitions_['import board'] = 'import board';
|
|
var dropdown_pin = generator.valueToCode(this, 'PIN', generator.ORDER_ATOMIC);
|
|
var code = "";
|
|
code = 'pin' + dropdown_pin + '.value()';
|
|
return [code, generator.ORDER_ATOMIC];
|
|
}
|
|
|
|
export const inout_pwm_init = function (_, generator) {
|
|
generator.definitions_['import board'] = 'import board';
|
|
generator.definitions_['from machine import PWM'] = 'from machine import PWM';
|
|
generator.definitions_['from machine import Timer'] = 'from machine import Timer';
|
|
var pin_obj = this.getFieldValue('PIN_OBJ') || 'pin#';
|
|
var dropdown_pin = generator.valueToCode(this, 'PIN', generator.ORDER_ATOMIC);
|
|
var varName = (pin_obj == 'pin#') ? 'pin' + dropdown_pin : generator.variableDB_.getName(pin_obj, Blockly.Variables.NAME_TYPE);
|
|
var freq = generator.valueToCode(this, 'freq', generator.ORDER_ATOMIC);
|
|
var sub = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);
|
|
var Timer = sub % 3
|
|
var CHANNEL = parseInt(sub / 3)
|
|
var code1 = 'tim' + sub + ' = Timer(Timer.TIMER' + Timer + ',Timer.CHANNEL' + CHANNEL + ', mode=Timer.MODE_PWM)\n';
|
|
var code2 = varName + ' = PWM(tim' + sub + ',freq=' + freq + ',duty=0, pin=' + dropdown_pin + ')\n';
|
|
|
|
return code1 + code2;
|
|
}
|
|
|
|
export const inout_pwm_write = function (_, generator) {
|
|
generator.definitions_['from machine import PWM'] = 'from machine import PWM';
|
|
var dropdown_pin = generator.valueToCode(this, 'PIN', generator.ORDER_ATOMIC);
|
|
var dropdown_stat = generator.valueToCode(this, 'pwm', generator.ORDER_ATOMIC);
|
|
var code = "";
|
|
code = 'pin' + dropdown_pin + '.duty(' + dropdown_stat + ')\n'
|
|
return code;
|
|
}
|
|
|
|
export const inout_adc_init = function (_, generator) {
|
|
generator.definitions_['import board'] = 'import board';
|
|
var key = generator.valueToCode(this, 'key', generator.ORDER_ATOMIC);
|
|
var code = 'board.adc_init(' + key + ')\n';
|
|
return code;
|
|
}
|
|
|
|
export const inout_adc_read = function (_, generator) {
|
|
generator.definitions_['import board'] = 'import board';
|
|
var pin = generator.valueToCode(this, 'PIN', generator.ORDER_ATOMIC);
|
|
var code = 'board.adc_read(' + pin + ')';
|
|
return [code, generator.ORDER_ATOMIC];
|
|
}
|
|
|
|
export const inout_adc_Vread = function (_, generator) {
|
|
generator.definitions_['import board'] = 'import board';
|
|
var pin = generator.valueToCode(this, 'PIN', generator.ORDER_ATOMIC);
|
|
var code = 'board.adc_vread(' + pin + ')';
|
|
return [code, generator.ORDER_ATOMIC];
|
|
}
|
|
|
|
export const inout_pin_attachInterrupt = function (_, generator) {
|
|
generator.definitions_['import board'] = 'import board';
|
|
var dropdown_pin = generator.valueToCode(this, 'PIN', generator.ORDER_ATOMIC);
|
|
var dropdown_mode = this.getFieldValue('mode');
|
|
var atta = generator.valueToCode(this, 'DO', generator.ORDER_ATOMIC);
|
|
var code1 = 'key' + dropdown_pin + '=board.pin(' + dropdown_pin + ', board.GPIO.IN, board.GPIO.PULL_NONE)\n'
|
|
var code2 = 'key' + dropdown_pin + '.irq(' + atta + ',board.' + dropdown_mode + ',board.GPIO.WAKEUP_NOT_SUPPORT, 7)\n'
|
|
|
|
return code1 + code2;
|
|
}
|
|
|
|
export const inout_pin_disirq = function (_, generator) {
|
|
generator.definitions_['import board'] = 'import board';
|
|
var dropdown_pin = generator.valueToCode(this, 'PIN', generator.ORDER_ATOMIC);
|
|
var code = 'key' + dropdown_pin + '.disirq()\n'
|
|
return code;
|
|
}
|
|
/////////////////////////////////////////////
|