177 lines
8.7 KiB
JavaScript
177 lines
8.7 KiB
JavaScript
export const communicate_ir_recv = function (_, generator) {
|
|
generator.definitions_['import irremote'] = 'import irremote';
|
|
var pin = generator.valueToCode(this, 'PIN', generator.ORDER_ATOMIC);
|
|
return ["irremote.read_id(" + pin + ")", generator.ORDER_ATOMIC];
|
|
}
|
|
|
|
export const communicate_i2c_init = function (_, generator) {
|
|
generator.definitions_['from machine import I2C'] = 'from machine import I2C';
|
|
var mode = this.getFieldValue('mode');
|
|
var freq = generator.valueToCode(this, 'freq', generator.ORDER_ATOMIC);
|
|
var sub = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);
|
|
var sda = generator.valueToCode(this, 'RX', generator.ORDER_ATOMIC);
|
|
var scl = generator.valueToCode(this, 'TX', generator.ORDER_ATOMIC);
|
|
return "" + sub + " = I2C(I2C." + mode + ", freq=" + freq + ", scl=" + scl + ", sda=" + sda + ")\n";
|
|
}
|
|
|
|
export const communicate_i2s_init = function (_, generator) {
|
|
generator.definitions_['import player'] = 'import player';
|
|
var mode = this.getFieldValue('mode');
|
|
var sub = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);
|
|
var BCK = generator.valueToCode(this, 'BCK', generator.ORDER_ATOMIC);
|
|
var WS = generator.valueToCode(this, 'WS', generator.ORDER_ATOMIC);
|
|
var DAT = generator.valueToCode(this, 'DAT', generator.ORDER_ATOMIC);
|
|
var sample = generator.valueToCode(this, 'sample', generator.ORDER_ATOMIC);
|
|
var code = "" + sub + "=player." + mode + "_init(" + BCK + "," + WS + "," + DAT + "," + sample + ")\n";
|
|
return code;
|
|
}
|
|
//--------新增-------------------------------------------------------
|
|
|
|
export const communicate_i2c_read = function (_, generator) {
|
|
var name = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);
|
|
var address = generator.valueToCode(this, 'address', generator.ORDER_ATOMIC);
|
|
var data = generator.valueToCode(this, 'data', generator.ORDER_ATOMIC);
|
|
return ["" + name + ".readfrom(" + address + ", " + data + ")", generator.ORDER_ATOMIC];
|
|
}
|
|
|
|
export const communicate_i2c_write = function (_, generator) {
|
|
var name = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);
|
|
var address = generator.valueToCode(this, 'address', generator.ORDER_ATOMIC);
|
|
var data = generator.valueToCode(this, 'data', generator.ORDER_ATOMIC);
|
|
return "" + name + ".writeto(" + address + ", " + data + ")\n";
|
|
}
|
|
|
|
export const communicate_i2c_scan = function (_, generator) {
|
|
var name = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);
|
|
return ["" + name + ".scan()", generator.ORDER_ATOMIC];
|
|
}
|
|
export const communicate_i2c_master_read = function (_, generator) {
|
|
var name = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);
|
|
var code = "" + name + ".read()";
|
|
return [code, generator.ORDER_ATOMIC];
|
|
}
|
|
export const communicate_i2c_available = function (_, generator) {
|
|
var name = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);
|
|
var code = "" + name + ".available()";
|
|
return [code, generator.ORDER_ATOMIC];
|
|
}
|
|
|
|
export const i2c_slave_onreceive = function (_, generator) {
|
|
var pin = generator.valueToCode(this, 'PIN', generator.ORDER_ATOMIC);
|
|
generator.setups_['setup_i2c_' + pin] = 'Wire.begin(' + pin + ');';
|
|
generator.setups_['setup_i2c_onReceive_' + pin] = 'Wire.onReceive(i2cReceiveEvent_' + pin + ');';
|
|
var funcName = 'i2cReceiveEvent_' + pin;
|
|
var branch = generator.statementToCode(this, 'DO');
|
|
var code2 = 'void' + ' ' + funcName + '(int howMany) {\n' + branch + '}\n';
|
|
generator.definitions_[funcName] = code2;
|
|
return '';
|
|
}
|
|
|
|
export const communicate_spi_init = function (_, generator) {
|
|
generator.definitions_['import_machine'] = 'import machine';
|
|
var name = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);
|
|
var freq = generator.valueToCode(this, 'freq', generator.ORDER_ATOMIC);
|
|
var polarity = generator.valueToCode(this, 'polarity', generator.ORDER_ATOMIC);
|
|
var phase = generator.valueToCode(this, 'phase', generator.ORDER_ATOMIC);
|
|
var mosi = generator.valueToCode(this, 'mosi', generator.ORDER_ATOMIC);
|
|
var miso = generator.valueToCode(this, 'miso', generator.ORDER_ATOMIC);
|
|
var sck = generator.valueToCode(this, 'sck', generator.ORDER_ATOMIC);
|
|
return "" + name + " = machine.SPI(baudrate=" + freq + ", polarity=" + polarity + ", phase=" + phase + ", sck=machine.Pin(" + sck + "), mosi=machine.Pin(" + mosi + "), miso=machine.Pin(" + miso + "));\n";
|
|
}
|
|
|
|
export const communicate_spi_set = function (_, generator) {
|
|
var data = generator.valueToCode(this, 'data', generator.ORDER_ATOMIC);
|
|
return "spi.init(baudrate=" + data + ")\n";
|
|
}
|
|
|
|
export const communicate_spi_buffer = function (_, generator) {
|
|
var varname = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);
|
|
var data = generator.valueToCode(this, 'data', generator.ORDER_ATOMIC);
|
|
return "" + varname + "=bytearray(" + data + ")\n";
|
|
}
|
|
|
|
export const communicate_spi_read = function (_, generator) {
|
|
var varname = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);
|
|
var data = generator.valueToCode(this, 'data', generator.ORDER_ATOMIC);
|
|
return ["" + varname + ".read(" + data + ")", generator.ORDER_ATOMIC];
|
|
}
|
|
|
|
export const communicate_spi_read_output = function (_, generator) {
|
|
var varname = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);
|
|
var data = generator.valueToCode(this, 'data', generator.ORDER_ATOMIC);
|
|
var val = generator.valueToCode(this, 'val', generator.ORDER_ATOMIC);
|
|
return ["" + varname + ".read(" + data + "," + val + ")", generator.ORDER_ATOMIC];
|
|
}
|
|
|
|
export const communicate_spi_readinto = function (_, generator) {
|
|
var varname = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);
|
|
var data = generator.valueToCode(this, 'data', generator.ORDER_ATOMIC);
|
|
return ["" + varname + ".readinto(" + data + ")", generator.ORDER_ATOMIC];
|
|
}
|
|
|
|
export const communicate_spi_readinto_output = function (_, generator) {
|
|
var varname = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);
|
|
var data = generator.valueToCode(this, 'data', generator.ORDER_ATOMIC);
|
|
var val = generator.valueToCode(this, 'val', generator.ORDER_ATOMIC);
|
|
return ["" + varname + ".readinto(" + data + "," + val + ")", generator.ORDER_ATOMIC];
|
|
}
|
|
|
|
export const communicate_spi_write = function (_, generator) {
|
|
var varname = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);
|
|
var data = generator.valueToCode(this, 'data', generator.ORDER_ATOMIC);
|
|
return ["" + varname + ".write(" + data + ".encode('utf-8'))", generator.ORDER_ATOMIC];
|
|
}
|
|
|
|
export const communicate_spi_write_readinto = function (_, generator) {
|
|
var varname = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);
|
|
var data = generator.valueToCode(this, 'data', generator.ORDER_ATOMIC);
|
|
var val = generator.valueToCode(this, 'val', generator.ORDER_ATOMIC);
|
|
// var op=this.getFieldValue('op');
|
|
// if(op=="byte"){
|
|
return ["" + varname + ".write_readinto(" + data + ".encode('utf-8')," + val + ")", generator.ORDER_ATOMIC];
|
|
// }else{
|
|
// return [""+varname+".write_readinto(" + data + ","+val+")", generator.ORDER_ATOMIC];
|
|
// }
|
|
}
|
|
|
|
export const communicate_ow_init = function (_, generator) {
|
|
generator.definitions_['import_machine'] = 'import machine';
|
|
generator.definitions_['import_onewire'] = "import onewire";
|
|
var name = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);
|
|
var varName = generator.valueToCode(this, 'BUS', generator.ORDER_ATOMIC);
|
|
var code = "" + name + "=onewire.OneWire(machine.Pin(" + varName + "))\n";
|
|
return code;
|
|
}
|
|
|
|
export const communicate_ow_scan = function (_, generator) {
|
|
var name = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);
|
|
var code = "" + name + ".scan()";
|
|
return [code, generator.ORDER_ATOMIC];
|
|
}
|
|
|
|
export const communicate_ow_reset = function (_, generator) {
|
|
var name = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);
|
|
var code = "" + name + ".reset()\n";
|
|
return code;
|
|
}
|
|
|
|
export const communicate_ow_read = function (_, generator) {
|
|
var name = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);
|
|
var code = "" + name + ".readbyte()";
|
|
return [code, generator.ORDER_ATOMIC];
|
|
}
|
|
|
|
export const communicate_ow_write = function (_, generator) {
|
|
var varName = generator.valueToCode(this, 'byte', generator.ORDER_ATOMIC);
|
|
var name = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);
|
|
var op = this.getFieldValue('op');
|
|
var code = "" + name + "." + op + "(" + varName + ")\n";
|
|
return code;
|
|
}
|
|
|
|
export const communicate_ow_select = function (_, generator) {
|
|
var varName = generator.valueToCode(this, 'byte', generator.ORDER_ATOMIC);
|
|
var name = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);
|
|
var code = "" + name + ".select_rom(" + varName + ".encode('utf-8'))\n";
|
|
return code;
|
|
} |