Files
mixly3/boards/default_src/micropython_k210_mixgoai/generators/communicate.js
2024-07-19 10:16:00 +08:00

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;
}