|
@@ -303,10 +303,26 @@ function detect(comName, locationId = '') {
|
|
|
*/
|
|
|
export function upload(code, val, socket) {
|
|
|
return new Promise(async (resolve, reject) => {
|
|
|
- if (serialPort && serialPort.isOpen) {
|
|
|
- try {
|
|
|
- serialPort.close();
|
|
|
- } catch (e) { }
|
|
|
+ // if (serialPort && serialPort.isOpen) {
|
|
|
+ // try {
|
|
|
+ // serialPort.close();
|
|
|
+ // } catch (e) { }
|
|
|
+ // }
|
|
|
+ if (serialPort) {
|
|
|
+ code = code.replace(new RegExp("\"", "gm"), "\\\"").replace(/^\s+|\s+$/g, '');
|
|
|
+ var complete_command = "^Z \r\n && rm /home/user/upload.py && echo \"" + code + "\" > /home/user/upload.py && python /home/user/upload.py" + "\r\n";
|
|
|
+ serialPort.write(complete_command, function (err, msg) {
|
|
|
+ if (err) {
|
|
|
+ err = err.message;
|
|
|
+ reject(err);
|
|
|
+ let error = errHandler(err);
|
|
|
+ socket.emit('upload', { ProgrammerStatus: 'Error', Error: error });
|
|
|
+ }
|
|
|
+ else if (msg) {
|
|
|
+ resolve();
|
|
|
+ socket.emit('repl', { code: msg.toString() });
|
|
|
+ }
|
|
|
+ })
|
|
|
}
|
|
|
serialPort = await new SerialPort(val, {
|
|
|
baudRate: 115200,
|
|
@@ -400,6 +416,7 @@ export function upload(code, val, socket) {
|
|
|
*/
|
|
|
}
|
|
|
|
|
|
+
|
|
|
// * 上传插件收到来自前端的 python 文件,将 python 代码通过 ampy 命令上传至模块中
|
|
|
// * ampy --port [端口名] put user_code.py /user_code.py
|
|
|
// * 等待上传插件将代码上传成功以后,运行该文件
|