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