Last active
October 4, 2018 19:28
-
-
Save gopalakrishnan-subramani/fef7db9ac6a9907268645a7fb4b8a5df to your computer and use it in GitHub Desktop.
ESP32
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
load('api_timer.js'); | |
load('api_uart.js'); | |
load('api_sys.js'); | |
load('api_gpio.js'); | |
let receiveBuffer = { | |
rxAcc: '' | |
}; | |
let serialPortConfig = { | |
uartNo: 2, | |
controlPin: 23, | |
config: { | |
baudRate: 9600, | |
esp32: { | |
gpio: { | |
rx: 16, | |
tx: 17 | |
} | |
} | |
} | |
}; | |
let SerialPort2 = { | |
init: function(serialPortConfig) { | |
this.serialPortConfig = serialPortConfig; | |
UART.setConfig(serialPortConfig.uartNo, serialPortConfig.config); | |
GPIO.set_mode(serialPortConfig.controlPin, GPIO.MODE_OUTPUT); | |
UART.setDispatcher(serialPortConfig.uartNo, function(uartNo) { | |
let ra = UART.readAvail(uartNo); | |
if (ra > 0) { | |
// Received new data: print it immediately to the console, and also | |
// accumulate in the "rxAcc" variable which will be echoed back to UART later | |
let data = UART.read(uartNo); | |
print('Received UART data:', data); | |
//rxAcc += data; | |
receiveBuffer.rxAcc += data; | |
} | |
}, null); | |
// Enable Rx | |
UART.setRxEnabled(serialPortConfig.uartNo, true); | |
}, | |
write: function(data) { | |
GPIO.write(this.serialPortConfig.controlPin, 1); | |
UART.write( | |
this.serialPortConfig.uartNo, | |
data | |
); | |
UART.flush(this.serialPortConfig.uartNo); | |
GPIO.write(this.serialPortConfig.controlPin, 0); | |
//rxAcc = ''; | |
receiveBuffer.rxAcc = ''; | |
} | |
}; | |
SerialPort2.init(serialPortConfig); | |
// Send UART data every second | |
Timer.set(2000 /* milliseconds */, Timer.REPEAT, function() { | |
SerialPort2.write( 'Hello UART! ' | |
+ ' uptime: ' + JSON.stringify(Sys.uptime()) | |
+ ' RAM: ' + JSON.stringify(Sys.free_ram()) | |
+ (receiveBuffer.rxAcc.length > 0 ? (' Rx: ' + receiveBuffer.rxAcc) : '') | |
+ '\n'); | |
}, null); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
load('api_timer.js'); | |
load('api_uart.js'); | |
load('api_sys.js'); | |
load('api_gpio.js'); | |
let receiveBuffer = { | |
rxAcc: '' | |
}; | |
let serialPortConfig = { | |
uartNo: 2, | |
controlPin: 23, | |
config: { | |
baudRate: 9600, | |
esp32: { | |
gpio: { | |
rx: 16, | |
tx: 17 | |
} | |
} | |
} | |
}; | |
function init(serialPortConfig) { | |
UART.setConfig(serialPortConfig.uartNo, serialPortConfig.config); | |
GPIO.set_mode(serialPortConfig.controlPin, GPIO.MODE_OUTPUT); | |
UART.setDispatcher(serialPortConfig.uartNo, function(uartNo) { | |
let ra = UART.readAvail(uartNo); | |
if (ra > 0) { | |
// Received new data: print it immediately to the console, and also | |
// accumulate in the "rxAcc" variable which will be echoed back to UART later | |
let data = UART.read(uartNo); | |
print('Received UART data:', data); | |
//rxAcc += data; | |
receiveBuffer.rxAcc += data; | |
} | |
}, null); | |
// Enable Rx | |
UART.setRxEnabled(serialPortConfig.uartNo, true); | |
} | |
function write(serialPortConfig, data) { | |
GPIO.write(serialPortConfig.controlPin, 1); | |
UART.write( | |
serialPortConfig.uartNo, | |
data | |
); | |
UART.flush(serialPortConfig.uartNo); | |
GPIO.write(serialPortConfig.controlPin, 0); | |
//rxAcc = ''; | |
receiveBuffer.rxAcc = ''; | |
} | |
init(serialPortConfig); | |
// Send UART data every second | |
Timer.set(2000 /* milliseconds */, Timer.REPEAT, function() { | |
write(serialPortConfig, 'Hello UART! ' | |
+ ' uptime: ' + JSON.stringify(Sys.uptime()) | |
+ ' RAM: ' + JSON.stringify(Sys.free_ram()) | |
+ (receiveBuffer.rxAcc.length > 0 ? (' Rx: ' + receiveBuffer.rxAcc) : '') | |
+ '\n'); | |
}, null); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
load('api_timer.js'); | |
load('api_uart.js'); | |
load('api_sys.js'); | |
load('api_gpio.js'); | |
let serialPortConfig = { | |
uartNo: 2, | |
controlPin: 23, | |
config: { | |
baudRate: 9600, | |
esp32: { | |
gpio: { | |
rx: 16, | |
tx: 17 | |
} | |
} | |
}, | |
receiveBuffer: { | |
rxAcc: '' | |
} | |
}; | |
let SerialPort2 = { | |
init: function(serialPortConfig) { | |
this.serialPortConfig = serialPortConfig; | |
}, | |
begin: function() { | |
let that = this; | |
UART.setConfig(this.serialPortConfig.uartNo, this.serialPortConfig.config); | |
GPIO.set_mode(this.serialPortConfig.controlPin, GPIO.MODE_OUTPUT); | |
UART.setDispatcher(this.serialPortConfig.uartNo, function(uartNo) { | |
let ra = UART.readAvail(uartNo); | |
if (ra > 0) { | |
// Received new data: print it immediately to the console, and also | |
// accumulate in the "rxAcc" variable which will be echoed back to UART later | |
let data = UART.read(uartNo); | |
print('Received UART data:', data); | |
//rxAcc += data; | |
that.serialPortConfig.receiveBuffer.rxAcc += data; | |
} | |
}, null); | |
// Enable Rx | |
UART.setRxEnabled(this.serialPortConfig.uartNo, true); | |
}, | |
write: function(data) { | |
GPIO.write(this.serialPortConfig.controlPin, 1); | |
UART.write( | |
this.serialPortConfig.uartNo, | |
data | |
); | |
UART.flush(this.serialPortConfig.uartNo); | |
GPIO.write(this.serialPortConfig.controlPin, 0); | |
//rxAcc = ''; | |
this.serialPortConfig.receiveBuffer.rxAcc = ''; | |
} | |
}; | |
SerialPort2.init(serialPortConfig); | |
SerialPort2.begin(); | |
// Send UART data every second | |
Timer.set(2000 /* milliseconds */, Timer.REPEAT, function() { | |
SerialPort2.write( 'Hello UART! ' | |
+ ' uptime: ' + JSON.stringify(Sys.uptime()) | |
+ ' RAM: ' + JSON.stringify(Sys.free_ram()) | |
+ (serialPortConfig.receiveBuffer.rxAcc.length > 0 ? (' Rx: ' + serialPortConfig.receiveBuffer.rxAcc) : '') | |
+ '\n'); | |
}, null); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/// refactored, not perfect though | |
load('api_timer.js'); | |
load('api_uart.js'); | |
load('api_sys.js'); | |
load('api_gpio.js'); | |
let uartNo = 2; // Uart number used for this example | |
let rxAcc = ''; // Accumulated Rx data, will be echoed back to Tx | |
let value = false; | |
let control = 23; | |
let uNo = 2; | |
let serial2Config = { | |
baudRate: 9600, | |
esp32: { | |
gpio: { | |
rx: 16, | |
tx: 17 | |
} | |
} | |
}; | |
let receiveBuffer = { | |
rxAcc: '' | |
}; | |
function init(uartNo, config, controlPin) { | |
UART.setConfig(uartNo, config); | |
GPIO.set_mode(controlPin, GPIO.MODE_OUTPUT); | |
UART.setDispatcher(uartNo, function(uartNo) { | |
let ra = UART.readAvail(uartNo); | |
if (ra > 0) { | |
// Received new data: print it immediately to the console, and also | |
// accumulate in the "rxAcc" variable which will be echoed back to UART later | |
let data = UART.read(uartNo); | |
print('Received UART data:', data); | |
//rxAcc += data; | |
receiveBuffer.rxAcc += data; | |
} | |
}, null); | |
// Enable Rx | |
UART.setRxEnabled(uartNo, true); | |
} | |
function write(uartNo, control, data) { | |
GPIO.write(control, 1); | |
UART.write( | |
uartNo, | |
data | |
); | |
UART.flush(uartNo); | |
GPIO.write(control, 0); | |
//rxAcc = ''; | |
receiveBuffer.rxAcc = ''; | |
} | |
init(2, serial2Config, 23); | |
// Send UART data every second | |
Timer.set(2000 /* milliseconds */, Timer.REPEAT, function() { | |
value = !value; | |
write(uartNo, control, 'Hello UART! ' | |
+ (value ? 'Tick' : 'Tock') | |
+ ' uptime: ' + JSON.stringify(Sys.uptime()) | |
+ ' RAM: ' + JSON.stringify(Sys.free_ram()) | |
+ (receiveBuffer.rxAcc.length > 0 ? (' Rx: ' + receiveBuffer.rxAcc) : '') | |
+ '\n'); | |
}, null); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
load('api_timer.js'); | |
load('api_uart.js'); | |
load('api_sys.js'); | |
load('api_gpio.js'); | |
let uartNo = 2; // Uart number used for this example | |
let rxAcc = ''; // Accumulated Rx data, will be echoed back to Tx | |
let value = false; | |
let control = 23; | |
let uNo = 2; | |
let serial2Config = { | |
baudRate: 9600, | |
esp32: { | |
gpio: { | |
rx: 16, | |
tx: 17 | |
} | |
} | |
}; | |
function enableControlPin() { | |
GPIO.set_mode(control, GPIO.MODE_OUTPUT); | |
} | |
function init(uNo, config, controlPin) { | |
UART.setConfig(uNo, config); | |
GPIO.set_mode(controlPin, GPIO.MODE_OUTPUT); | |
UART.setDispatcher(uNo, function(uartNo) { | |
let ra = UART.readAvail(uartNo); | |
if (ra > 0) { | |
// Received new data: print it immediately to the console, and also | |
// accumulate in the "rxAcc" variable which will be echoed back to UART later | |
let data = UART.read(uartNo); | |
print('Received UART data:', data); | |
rxAcc += data; | |
} | |
}, null); | |
// Enable Rx | |
UART.setRxEnabled(uNo, true); | |
} | |
function write(uNo, control, data) { | |
GPIO.write(control, 1); | |
UART.write( | |
uNo, | |
data | |
); | |
UART.flush(uNo) | |
GPIO.write(control, 0); | |
rxAcc = ''; | |
} | |
//test(); | |
// Configure UART at 115200 baud | |
// UART.setConfig(uartNo, { | |
// baudRate: 9600, | |
// esp32: { | |
// gpio: { | |
// rx: 16, | |
// tx: 17 | |
// } | |
// } | |
// }); | |
//UART.setConfig(uartNo, config); | |
init(2, serial2Config, 23); | |
//enableControlPin(); | |
// //GPIO.set_mode(control, GPIO.MODE_OUTPUT); | |
//GPIO.set_mode(control, GPIO.MODE_OUTPUT); | |
// // Set dispatcher callback, it will be called whenver new Rx data or space in | |
// // the Tx buffer becomes available | |
// UART.setDispatcher(uartNo, function(uartNo) { | |
// let ra = UART.readAvail(uartNo); | |
// if (ra > 0) { | |
// // Received new data: print it immediately to the console, and also | |
// // accumulate in the "rxAcc" variable which will be echoed back to UART later | |
// let data = UART.read(uartNo); | |
// print('Received UART data:', data); | |
// rxAcc += data; | |
// } | |
// }, null); | |
// // Enable Rx | |
// UART.setRxEnabled(uartNo, true); | |
// Send UART data every second | |
Timer.set(2000 /* milliseconds */, Timer.REPEAT, function() { | |
value = !value; | |
write(uartNo, control, 'Hello UART! ' | |
+ (value ? 'Tick' : 'Tock') | |
+ ' uptime: ' + JSON.stringify(Sys.uptime()) | |
+ ' RAM: ' + JSON.stringify(Sys.free_ram()) | |
+ (rxAcc.length > 0 ? (' Rx: ' + rxAcc) : '') | |
+ '\n'); | |
// GPIO.write(control, 1); | |
// UART.write( | |
// uartNo, | |
// 'Hello UART! ' | |
// + (value ? 'Tick' : 'Tock') | |
// + ' uptime: ' + JSON.stringify(Sys.uptime()) | |
// + ' RAM: ' + JSON.stringify(Sys.free_ram()) | |
// + (rxAcc.length > 0 ? (' Rx: ' + rxAcc) : '') | |
// + '\n' | |
// ); | |
// UART.flush(uartNo) | |
// GPIO.write(control, 0); | |
// rxAcc = ''; | |
}, null); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment