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

91 lines
3.9 KiB
JavaScript

export const serial_print = function (_, generator) {
generator.definitions_['import_microbit_*'] = 'from microbit import *';
var content = generator.valueToCode(this, 'CONTENT', generator.ORDER_ATOMIC) || '""'
var code = "uart.write(str(" + content + "))\n";
return code;
}
export const serial_println = function (_, generator) {
generator.definitions_['import_microbit_*'] = 'from microbit import *';
var content = generator.valueToCode(this, 'CONTENT', generator.ORDER_ATOMIC) || '""'
var code = "uart.write(str(" + content + ")+'\\r\\n')\n";
return code;
}
export const serial_print_hex = function (_, generator) {
generator.definitions_['import_microbit_*'] = 'from microbit import *';
var content = generator.valueToCode(this, 'CONTENT', generator.ORDER_ATOMIC) || '0';
var code = "uart.write(str(hex(" + content + ")) + '\\r\\n')\n";
return code;
}
export const serial_receive_data_event = function (_, generator) {
generator.definitions_['import_microbit_*'] = 'from microbit import *';
var char_marker = generator.valueToCode(this, 'char_marker', generator.ORDER_ATOMIC) || ';';
var branch = generator.statementToCode(this, 'DO');
generator.definitions_['func_serial_receive_data_event_' + char_marker.charCodeAt(1)] = "serial.onDataReceived(" + char_marker + ", () => {\n" + branch + "}\n";
}
export const serial_any = function (_, generator) {
generator.definitions_['import_microbit_*'] = 'from microbit import *';
var code = "uart.any()";
return [code, generator.ORDER_ATOMIC];
}
export const serial_readstr = function (_, generator) {
generator.definitions_['import_microbit_*'] = 'from microbit import *';
var code = "uart.read()";
return [code, generator.ORDER_ATOMIC];
}
export const serial_readline = function (_, generator) {
generator.definitions_['import_microbit_*'] = 'from microbit import *';
var code = "uart.readline()";
return [code, generator.ORDER_ATOMIC];
}
export const serial_readstr_until = function (_, generator) {
generator.definitions_['import_microbit_*'] = 'from microbit import *';
var char_marker = this.getFieldValue('char_marker');
var code = "serial.readUntil(" + char_marker + ")";
return [code, generator.ORDER_ATOMIC];
}
export const serial_softserial = function (_, generator) {
generator.definitions_['import_microbit_*'] = 'from microbit import *';
var dropdown_pin1 = generator.valueToCode(this, 'RX', generator.ORDER_ATOMIC);
var dropdown_pin2 = generator.valueToCode(this, 'TX', generator.ORDER_ATOMIC);
if (!isNaN(parseInt(dropdown_pin1)))
dropdown_pin1 = "pin" + dropdown_pin1;
if (!isNaN(parseInt(dropdown_pin2)))
dropdown_pin2 = "pin" + dropdown_pin2;
var baudrate = this.getFieldValue('baudrate');
return "uart.init(rx=" + dropdown_pin1 + ", tx=" + dropdown_pin2 + ", baudrate=" + baudrate + ")\n";
}
export const serial_begin = function (_, generator) {
generator.definitions_['import_microbit_*'] = 'from microbit import *';
var baudrate = this.getFieldValue('baudrate');
return "uart.init(baudrate=" + baudrate + ")\n";
}
export const IO_input = function (_, generator) {
generator.definitions_['import_microbit_*'] = 'from microbit import *';
var str = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC) || '""';
return ['input(' + str + ')', generator.ORDER_ATOMIC];
}
export const IO_print = function (_, generator) {
generator.definitions_['import_microbit_*'] = 'from microbit import *';
var str = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC) || '""';
var code = "print(" + str + ")\n";
return code;
}
export const IO_print_inline = function (_, generator) {
generator.definitions_['import_microbit_*'] = 'from microbit import *';
var str = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC) || '""';
var code = "print(" + str + ',end ="")\n';
return code;
}