From f5cc890ec73833caa2fd5453affeb01d32b83e1f Mon Sep 17 00:00:00 2001 From: MaximZaitsev Date: Tue, 12 Jul 2016 16:02:50 +0300 Subject: [PATCH] modified car net server --- .../.idea/libraries/jcommander_1_48.xml | 9 ++++ .../stFlashClient/src/CommandLineArgs.java | 18 ++++++++ car_net/stFlashClient/src/JCom.java | 7 ++++ car_net/stFlashClient/src/Main.kt | 6 +++ car_net/stFlashClient/stFlashClient.iml | 1 + car_net/stFlashServer/.gitignore | 2 + car_net/stFlashServer/.idea/stFlashServer.iml | 1 + car_net/stFlashServer/handlers.js | 42 ++++++++++++------- car_net/stFlashServer/main.js | 2 +- mcu_utils/stm32.sh | 2 +- 10 files changed, 73 insertions(+), 17 deletions(-) create mode 100644 car_net/stFlashClient/.idea/libraries/jcommander_1_48.xml create mode 100644 car_net/stFlashClient/src/CommandLineArgs.java create mode 100644 car_net/stFlashClient/src/JCom.java diff --git a/car_net/stFlashClient/.idea/libraries/jcommander_1_48.xml b/car_net/stFlashClient/.idea/libraries/jcommander_1_48.xml new file mode 100644 index 00000000000..7a257379398 --- /dev/null +++ b/car_net/stFlashClient/.idea/libraries/jcommander_1_48.xml @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/car_net/stFlashClient/src/CommandLineArgs.java b/car_net/stFlashClient/src/CommandLineArgs.java new file mode 100644 index 00000000000..4bae7f67809 --- /dev/null +++ b/car_net/stFlashClient/src/CommandLineArgs.java @@ -0,0 +1,18 @@ +import com.beust.jcommander.Parameter; + +/** + * Created by user on 7/12/16. + */ +public class CommandLineArgs { + + @Parameter(names = { "-log", "-verbose" }, description = "Level of verbosity") + public Integer verbose = 1; + + @Parameter(names = "-groups", description = "Comma-separated list of group names to be run") + public String groups; + + @Parameter(names = "-debug", description = "Debug mode") + public boolean debug = false; + + +} diff --git a/car_net/stFlashClient/src/JCom.java b/car_net/stFlashClient/src/JCom.java new file mode 100644 index 00000000000..7ba4eab59c9 --- /dev/null +++ b/car_net/stFlashClient/src/JCom.java @@ -0,0 +1,7 @@ +import com.beust.jcommander.JCommander; + +/** + * Created by user on 7/12/16. + */ +public class JCom extends JCommander { +} diff --git a/car_net/stFlashClient/src/Main.kt b/car_net/stFlashClient/src/Main.kt index fdc2f775dd9..b996da1e3e5 100644 --- a/car_net/stFlashClient/src/Main.kt +++ b/car_net/stFlashClient/src/Main.kt @@ -1,3 +1,4 @@ +import com.beust.jcommander.JCommander import com.google.protobuf.ByteString import io.netty.buffer.Unpooled import io.netty.handler.codec.http.* @@ -12,6 +13,11 @@ import java.util.* fun main(args: Array) { //2 argm path to bin and server ip //1 option - 0x000... + var asss:ArrayList = ArrayList(); + + val clArgs:CommandLineArgs = CommandLineArgs(); + val jcom = JCommander(clArgs) + val host = "127.0.0.1" val port = 8888 val base = "0x08000000" diff --git a/car_net/stFlashClient/stFlashClient.iml b/car_net/stFlashClient/stFlashClient.iml index a1e5a5a5b41..451e610dac9 100644 --- a/car_net/stFlashClient/stFlashClient.iml +++ b/car_net/stFlashClient/stFlashClient.iml @@ -10,5 +10,6 @@ + \ No newline at end of file diff --git a/car_net/stFlashServer/.gitignore b/car_net/stFlashServer/.gitignore index 7bbb37d4055..99eff0808a4 100644 --- a/car_net/stFlashServer/.gitignore +++ b/car_net/stFlashServer/.gitignore @@ -1,5 +1,7 @@ .idea/workspace.xml .idea/uiDesigner.xml +.idea/jsLibraryMappings.xml +.idea/libraries/stFlashServer_node_modules.xml protobufjs node_modules out diff --git a/car_net/stFlashServer/.idea/stFlashServer.iml b/car_net/stFlashServer/.idea/stFlashServer.iml index c956989b29a..563779ff6c7 100644 --- a/car_net/stFlashServer/.idea/stFlashServer.iml +++ b/car_net/stFlashServer/.idea/stFlashServer.iml @@ -4,5 +4,6 @@ + \ No newline at end of file diff --git a/car_net/stFlashServer/handlers.js b/car_net/stFlashServer/handlers.js index 110d370dc06..c957a01dc55 100644 --- a/car_net/stFlashServer/handlers.js +++ b/car_net/stFlashServer/handlers.js @@ -3,12 +3,13 @@ */ const fs = require("fs"); const main = require("./main.js"); +var exec = require('child_process').exec; function loadBin(httpContent, response) { var uploadClass = main.protoConstructor.Upload; var uploadObject = uploadClass.decode(httpContent); - fs.writeFile(binFilePath, uploadObject.data.buffer, "binary", function (error) { + fs.writeFile(main.binFilePath, uploadObject.data.buffer, "binary", function (error) { var uploadResultClass = main.protoConstructor.UploadResult; var code = 0; var stdErr = ""; @@ -17,21 +18,32 @@ function loadBin(httpContent, response) { stdErr = error.toString(); } else { code = 0; - console.log(main.commandPrefix + " " + main.binFilePath + " " + uploadObject.base); + var shCommand = main.commandPrefix + " " + main.binFilePath + " " + uploadObject.base; + exec(shCommand, function (error, stdout, stderr) { + // TODO get program result code and error textual representation and send + // back in the response + if (error) { + code = 1; + console.error(error); + } + + var resultObject = new uploadResultClass({ + "stdOut": stdout.toString(), + "resultCode": code, + "stdErr": stderr.toString() + }); + var byteBuffer = resultObject.encode(); + var byteArray = []; + for (var i = 0; i < byteBuffer.limit; i++) { + byteArray.push(byteBuffer.buffer[i]); + } + response.writeHead(200, {"Content-Type": "text/plain", "Content-length": byteArray.length}); + response.write(new Buffer(byteArray)); + response.end(); + console.log(shCommand); + }); } - var resultObject = new uploadResultClass({ - "stdOut": "", - "resultCode": code, - "stdErr": stdErr - }); - var byteBuffer = resultObject.encode(); - var byteArray = []; - for (var i = 0; i < byteBuffer.limit; i++) { - byteArray.push(byteBuffer.buffer[i]); - } - response.writeHead(200, {"Content-Type": "text/plain", "Content-length": byteArray.length}); - response.write(new Buffer(byteArray)); - response.end(); + }); } diff --git a/car_net/stFlashServer/main.js b/car_net/stFlashServer/main.js index 78e42401a89..f30644c9607 100644 --- a/car_net/stFlashServer/main.js +++ b/car_net/stFlashServer/main.js @@ -30,7 +30,7 @@ handle["/other"] = handlers.other; server.start(router.route, handle); exports.protoConstructor = protoConstructor; -exports.commandPrefix = "./data/macosx-x86_64/st-flash write"; +exports.commandPrefix = "./st-flash write"; exports.binFilePath = (commander.binfile ? commander.binfile : "./") + "f.bin"; console.log(exports.binFilePath); console.log(exports.commandPrefix); \ No newline at end of file diff --git a/mcu_utils/stm32.sh b/mcu_utils/stm32.sh index 7a0a6653b90..901256c0859 100644 --- a/mcu_utils/stm32.sh +++ b/mcu_utils/stm32.sh @@ -1 +1 @@ -./data/macosx-x86_64/st-flash write ./data/fancyblink.bin 0x08000000 +./macosx-x86_64/st-flash write ./data/fancyblink.bin 0x08000000