diff --git a/car_net/stFlashClient/.gitignore b/car_net/stFlashClient/.gitignore new file mode 100644 index 00000000000..fa32461bd48 --- /dev/null +++ b/car_net/stFlashClient/.gitignore @@ -0,0 +1,3 @@ +.idea/workspace.xml +.idea/uiDesigner.xml +out diff --git a/car_net/stFlashClient/.idea/compiler.xml b/car_net/stFlashClient/.idea/compiler.xml new file mode 100644 index 00000000000..96cc43efa6a --- /dev/null +++ b/car_net/stFlashClient/.idea/compiler.xml @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/car_net/stFlashClient/.idea/copyright/profiles_settings.xml b/car_net/stFlashClient/.idea/copyright/profiles_settings.xml new file mode 100644 index 00000000000..e7bedf3377d --- /dev/null +++ b/car_net/stFlashClient/.idea/copyright/profiles_settings.xml @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/car_net/stFlashClient/.idea/libraries/KotlinJavaRuntime.xml b/car_net/stFlashClient/.idea/libraries/KotlinJavaRuntime.xml new file mode 100644 index 00000000000..207fc74dd51 --- /dev/null +++ b/car_net/stFlashClient/.idea/libraries/KotlinJavaRuntime.xml @@ -0,0 +1,12 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/car_net/stFlashClient/.idea/libraries/netty_all_4_1_2_Final_sources.xml b/car_net/stFlashClient/.idea/libraries/netty_all_4_1_2_Final_sources.xml new file mode 100644 index 00000000000..bb3c6ba13b1 --- /dev/null +++ b/car_net/stFlashClient/.idea/libraries/netty_all_4_1_2_Final_sources.xml @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/car_net/stFlashClient/.idea/libraries/protobuf_java_3_0_0_beta_3.xml b/car_net/stFlashClient/.idea/libraries/protobuf_java_3_0_0_beta_3.xml new file mode 100644 index 00000000000..3ffe9a90c69 --- /dev/null +++ b/car_net/stFlashClient/.idea/libraries/protobuf_java_3_0_0_beta_3.xml @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/car_net/stFlashClient/.idea/misc.xml b/car_net/stFlashClient/.idea/misc.xml new file mode 100644 index 00000000000..c6d8fb73c8c --- /dev/null +++ b/car_net/stFlashClient/.idea/misc.xml @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/car_net/stFlashClient/.idea/modules.xml b/car_net/stFlashClient/.idea/modules.xml new file mode 100644 index 00000000000..82935b20ed6 --- /dev/null +++ b/car_net/stFlashClient/.idea/modules.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/car_net/stFlashClient/lib/kotlin-reflect.jar b/car_net/stFlashClient/lib/kotlin-reflect.jar new file mode 100644 index 00000000000..578ee08e778 Binary files /dev/null and b/car_net/stFlashClient/lib/kotlin-reflect.jar differ diff --git a/car_net/stFlashClient/lib/kotlin-runtime-sources.jar b/car_net/stFlashClient/lib/kotlin-runtime-sources.jar new file mode 100644 index 00000000000..5a6848d4c9e Binary files /dev/null and b/car_net/stFlashClient/lib/kotlin-runtime-sources.jar differ diff --git a/car_net/stFlashClient/lib/kotlin-runtime.jar b/car_net/stFlashClient/lib/kotlin-runtime.jar new file mode 100644 index 00000000000..00e4eb00dd6 Binary files /dev/null and b/car_net/stFlashClient/lib/kotlin-runtime.jar differ diff --git a/car_net/stFlashClient/lib/netty-all-4.1.2.Final-sources.jar b/car_net/stFlashClient/lib/netty-all-4.1.2.Final-sources.jar new file mode 100644 index 00000000000..4c74f90cee0 Binary files /dev/null and b/car_net/stFlashClient/lib/netty-all-4.1.2.Final-sources.jar differ diff --git a/car_net/stFlashClient/lib/netty-all-4.1.2.Final.jar b/car_net/stFlashClient/lib/netty-all-4.1.2.Final.jar new file mode 100644 index 00000000000..27ba26d09e1 Binary files /dev/null and b/car_net/stFlashClient/lib/netty-all-4.1.2.Final.jar differ diff --git a/car_net/stFlashClient/src/Main.kt b/car_net/stFlashClient/src/Main.kt new file mode 100644 index 00000000000..fdc2f775dd9 --- /dev/null +++ b/car_net/stFlashClient/src/Main.kt @@ -0,0 +1,29 @@ +import com.google.protobuf.ByteString +import io.netty.buffer.Unpooled +import io.netty.handler.codec.http.* +import io.netty.util.CharsetUtil +import proto.Carkot +import java.util.* + +/** + * Created by user on 7/11/16. + */ + +fun main(args: Array) { + //2 argm path to bin and server ip + //1 option - 0x000... + val host = "127.0.0.1" + val port = 8888 + val base = "0x08000000" +// val client = client.Client + val bytesBinTest = Carkot.Upload.newBuilder().setData(ByteString.copyFrom(ByteArray(5, {x->0}))).setBase(base).build().toByteArray() + + val request = DefaultFullHttpRequest(HttpVersion.HTTP_1_1, HttpMethod.POST, "/loadBin", Unpooled.copiedBuffer(bytesBinTest)); + request.headers().set(HttpHeaderNames.HOST, host) + request.headers().set(HttpHeaderNames.CONNECTION, HttpHeaderValues.CLOSE) + request.headers().setInt(HttpHeaderNames.CONTENT_LENGTH, request.content().readableBytes()) + request.headers().set(HttpHeaderNames.CONTENT_TYPE, "text/plain; charset=UTF-8") + + client.Client.sendRequest(request, host, port) + println(client.ClientHandler.requestResult.code) +} diff --git a/car_net/stFlashClient/src/client/Client.kt b/car_net/stFlashClient/src/client/Client.kt new file mode 100644 index 00000000000..182b292fe64 --- /dev/null +++ b/car_net/stFlashClient/src/client/Client.kt @@ -0,0 +1,37 @@ +package client + +import io.netty.bootstrap.Bootstrap +import io.netty.channel.ChannelFutureListener +import io.netty.channel.nio.NioEventLoopGroup +import io.netty.channel.socket.nio.NioSocketChannel +import io.netty.handler.codec.http.HttpRequest +import io.netty.util.AttributeKey +import java.net.ConnectException + +/** + * Created by user on 7/8/16. + */ +object Client { + + fun sendRequest(request: HttpRequest, host: String, port: Int):Int { + val group = NioEventLoopGroup() + try { + val bootstrap: Bootstrap = Bootstrap() + bootstrap.group(group).channel(NioSocketChannel().javaClass).handler(ClientInitializer()) + val channelFuture = bootstrap.connect(host, port).sync() + val channel = channelFuture.channel() + channel.writeAndFlush(request) + channel.closeFuture().sync() + } catch (e: InterruptedException) { + println("interrupted before request done") + return 2 + } catch (e: ConnectException) { + println("connection error to $host:$port") + return 1 + } finally { + group.shutdownGracefully() + } + return ClientHandler.requestResult.code + } + +} \ No newline at end of file diff --git a/car_net/stFlashClient/src/client/ClientHandler.kt b/car_net/stFlashClient/src/client/ClientHandler.kt new file mode 100644 index 00000000000..2892b2e5126 --- /dev/null +++ b/car_net/stFlashClient/src/client/ClientHandler.kt @@ -0,0 +1,54 @@ +package client + +import com.google.protobuf.InvalidProtocolBufferException +import io.netty.channel.ChannelHandlerContext +import io.netty.channel.SimpleChannelInboundHandler +import io.netty.handler.codec.http.HttpContent +import proto.Carkot +import java.util.* + +/** + * Created by user on 7/8/16. + */ +class ClientHandler : SimpleChannelInboundHandler { + + object requestResult { + var code: Int = -1 + } + + constructor() + + var contentBytes: ByteArray = ByteArray(0); + + override fun channelReadComplete(ctx: ChannelHandlerContext) { + + var resultCode = 0 + try { + val uploadResult: Carkot.UploadResult = Carkot.UploadResult.parseFrom(contentBytes) + resultCode = uploadResult.resultCode + } catch (e: InvalidProtocolBufferException) { + e.printStackTrace() + + resultCode = 2 + } + synchronized(requestResult, { + requestResult.code = resultCode + }) + ctx.close() + } + + override fun channelRead0(ctx: ChannelHandlerContext?, msg: Any?) { + if (msg is HttpContent) { + val contentsBytes = msg.content(); + contentBytes = ByteArray(contentsBytes.capacity()) + contentsBytes.readBytes(contentBytes) + } + } + + override fun exceptionCaught(ctx: ChannelHandlerContext?, cause: Throwable) { + cause.printStackTrace() + if (ctx != null) { + ctx.close() + } + } +} \ No newline at end of file diff --git a/car_net/stFlashClient/src/client/ClientInitializer.kt b/car_net/stFlashClient/src/client/ClientInitializer.kt new file mode 100644 index 00000000000..9110caba152 --- /dev/null +++ b/car_net/stFlashClient/src/client/ClientInitializer.kt @@ -0,0 +1,19 @@ +package client + +import io.netty.channel.ChannelInitializer +import io.netty.channel.socket.SocketChannel +import io.netty.handler.codec.http.HttpClientCodec + +/** + * Created by user on 7/8/16. + */ +class ClientInitializer : ChannelInitializer { + + constructor() + + override fun initChannel(ch: SocketChannel) { + val p = ch.pipeline() + p.addLast(HttpClientCodec()) + p.addLast(ClientHandler()) + } +} \ No newline at end of file diff --git a/car_net/stFlashClient/src/proto/Carkot.java b/car_net/stFlashClient/src/proto/Carkot.java new file mode 100644 index 00000000000..eda4e72ad0b --- /dev/null +++ b/car_net/stFlashClient/src/proto/Carkot.java @@ -0,0 +1,3175 @@ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: carkot.proto + +package proto; + +public final class Carkot { + private Carkot() {} + public static void registerAllExtensions( + com.google.protobuf.ExtensionRegistry registry) { + } + public interface UploadOrBuilder extends + // @@protoc_insertion_point(interface_extends:carkot.Upload) + com.google.protobuf.MessageOrBuilder { + + /** + *
+     * Firmware data.
+     * 
+ * + * optional bytes data = 1; + */ + com.google.protobuf.ByteString getData(); + + /** + *
+     * Firmware load address (string, to avoid 64-bit woes).
+     * 
+ * + * optional string base = 2; + */ + java.lang.String getBase(); + /** + *
+     * Firmware load address (string, to avoid 64-bit woes).
+     * 
+ * + * optional string base = 2; + */ + com.google.protobuf.ByteString + getBaseBytes(); + + /** + *
+     * Method of firmware upload.
+     * 
+ * + * optional .carkot.Upload.Method method = 3; + */ + boolean hasMethod(); + /** + *
+     * Method of firmware upload.
+     * 
+ * + * optional .carkot.Upload.Method method = 3; + */ + proto.Carkot.Upload.Method getMethod(); + /** + *
+     * Method of firmware upload.
+     * 
+ * + * optional .carkot.Upload.Method method = 3; + */ + proto.Carkot.Upload.MethodOrBuilder getMethodOrBuilder(); + } + /** + * Protobuf type {@code carkot.Upload} + */ + public static final class Upload extends + com.google.protobuf.GeneratedMessage implements + // @@protoc_insertion_point(message_implements:carkot.Upload) + UploadOrBuilder { + // Use Upload.newBuilder() to construct. + private Upload(com.google.protobuf.GeneratedMessage.Builder builder) { + super(builder); + } + private Upload() { + data_ = com.google.protobuf.ByteString.EMPTY; + base_ = ""; + } + + @java.lang.Override + public final com.google.protobuf.UnknownFieldSet + getUnknownFields() { + return com.google.protobuf.UnknownFieldSet.getDefaultInstance(); + } + private Upload( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + this(); + int mutable_bitField0_ = 0; + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + default: { + if (!input.skipField(tag)) { + done = true; + } + break; + } + case 10: { + + data_ = input.readBytes(); + break; + } + case 18: { + java.lang.String s = input.readStringRequireUtf8(); + + base_ = s; + break; + } + case 26: { + proto.Carkot.Upload.Method.Builder subBuilder = null; + if (method_ != null) { + subBuilder = method_.toBuilder(); + } + method_ = input.readMessage(proto.Carkot.Upload.Method.parser(), extensionRegistry); + if (subBuilder != null) { + subBuilder.mergeFrom(method_); + method_ = subBuilder.buildPartial(); + } + + break; + } + } + } + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(this); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException( + e).setUnfinishedMessage(this); + } finally { + makeExtensionsImmutable(); + } + } + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return proto.Carkot.internal_static_carkot_Upload_descriptor; + } + + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return proto.Carkot.internal_static_carkot_Upload_fieldAccessorTable + .ensureFieldAccessorsInitialized( + proto.Carkot.Upload.class, proto.Carkot.Upload.Builder.class); + } + + public interface MethodOrBuilder extends + // @@protoc_insertion_point(interface_extends:carkot.Upload.Method) + com.google.protobuf.MessageOrBuilder { + + /** + *
+       * Type of upload method.
+       * 
+ * + * optional .carkot.Upload.Method.TYPE type = 1; + */ + int getTypeValue(); + /** + *
+       * Type of upload method.
+       * 
+ * + * optional .carkot.Upload.Method.TYPE type = 1; + */ + proto.Carkot.Upload.Method.TYPE getType(); + + /** + *
+       * Upload port.
+       * 
+ * + * optional string port = 2; + */ + java.lang.String getPort(); + /** + *
+       * Upload port.
+       * 
+ * + * optional string port = 2; + */ + com.google.protobuf.ByteString + getPortBytes(); + + /** + *
+       * Device address, smth like 8087:0ABA.
+       * 
+ * + * optional string device = 3; + */ + java.lang.String getDevice(); + /** + *
+       * Device address, smth like 8087:0ABA.
+       * 
+ * + * optional string device = 3; + */ + com.google.protobuf.ByteString + getDeviceBytes(); + + /** + *
+       * Additional programmator-specific arguments.
+       * 
+ * + * repeated string arguments = 4; + */ + com.google.protobuf.ProtocolStringList + getArgumentsList(); + /** + *
+       * Additional programmator-specific arguments.
+       * 
+ * + * repeated string arguments = 4; + */ + int getArgumentsCount(); + /** + *
+       * Additional programmator-specific arguments.
+       * 
+ * + * repeated string arguments = 4; + */ + java.lang.String getArguments(int index); + /** + *
+       * Additional programmator-specific arguments.
+       * 
+ * + * repeated string arguments = 4; + */ + com.google.protobuf.ByteString + getArgumentsBytes(int index); + } + /** + * Protobuf type {@code carkot.Upload.Method} + */ + public static final class Method extends + com.google.protobuf.GeneratedMessage implements + // @@protoc_insertion_point(message_implements:carkot.Upload.Method) + MethodOrBuilder { + // Use Method.newBuilder() to construct. + private Method(com.google.protobuf.GeneratedMessage.Builder builder) { + super(builder); + } + private Method() { + type_ = 0; + port_ = ""; + device_ = ""; + arguments_ = com.google.protobuf.LazyStringArrayList.EMPTY; + } + + @java.lang.Override + public final com.google.protobuf.UnknownFieldSet + getUnknownFields() { + return com.google.protobuf.UnknownFieldSet.getDefaultInstance(); + } + private Method( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + this(); + int mutable_bitField0_ = 0; + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + default: { + if (!input.skipField(tag)) { + done = true; + } + break; + } + case 8: { + int rawValue = input.readEnum(); + + type_ = rawValue; + break; + } + case 18: { + java.lang.String s = input.readStringRequireUtf8(); + + port_ = s; + break; + } + case 26: { + java.lang.String s = input.readStringRequireUtf8(); + + device_ = s; + break; + } + case 34: { + java.lang.String s = input.readStringRequireUtf8(); + if (!((mutable_bitField0_ & 0x00000008) == 0x00000008)) { + arguments_ = new com.google.protobuf.LazyStringArrayList(); + mutable_bitField0_ |= 0x00000008; + } + arguments_.add(s); + break; + } + } + } + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(this); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException( + e).setUnfinishedMessage(this); + } finally { + if (((mutable_bitField0_ & 0x00000008) == 0x00000008)) { + arguments_ = arguments_.getUnmodifiableView(); + } + makeExtensionsImmutable(); + } + } + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return proto.Carkot.internal_static_carkot_Upload_Method_descriptor; + } + + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return proto.Carkot.internal_static_carkot_Upload_Method_fieldAccessorTable + .ensureFieldAccessorsInitialized( + proto.Carkot.Upload.Method.class, proto.Carkot.Upload.Method.Builder.class); + } + + /** + * Protobuf enum {@code carkot.Upload.Method.TYPE} + */ + public enum TYPE + implements com.google.protobuf.ProtocolMessageEnum { + /** + * DFU = 0; + */ + DFU(0), + /** + * STLINK = 1; + */ + STLINK(1), + UNRECOGNIZED(-1), + ; + + /** + * DFU = 0; + */ + public static final int DFU_VALUE = 0; + /** + * STLINK = 1; + */ + public static final int STLINK_VALUE = 1; + + + public final int getNumber() { + if (this == UNRECOGNIZED) { + throw new java.lang.IllegalArgumentException( + "Can't get the number of an unknown enum value."); + } + return value; + } + + /** + * @deprecated Use {@link #forNumber(int)} instead. + */ + @java.lang.Deprecated + public static TYPE valueOf(int value) { + return forNumber(value); + } + + public static TYPE forNumber(int value) { + switch (value) { + case 0: return DFU; + case 1: return STLINK; + default: return null; + } + } + + public static com.google.protobuf.Internal.EnumLiteMap + internalGetValueMap() { + return internalValueMap; + } + private static final com.google.protobuf.Internal.EnumLiteMap< + TYPE> internalValueMap = + new com.google.protobuf.Internal.EnumLiteMap() { + public TYPE findValueByNumber(int number) { + return TYPE.forNumber(number); + } + }; + + public final com.google.protobuf.Descriptors.EnumValueDescriptor + getValueDescriptor() { + return getDescriptor().getValues().get(ordinal()); + } + public final com.google.protobuf.Descriptors.EnumDescriptor + getDescriptorForType() { + return getDescriptor(); + } + public static final com.google.protobuf.Descriptors.EnumDescriptor + getDescriptor() { + return proto.Carkot.Upload.Method.getDescriptor().getEnumTypes().get(0); + } + + private static final TYPE[] VALUES = values(); + + public static TYPE valueOf( + com.google.protobuf.Descriptors.EnumValueDescriptor desc) { + if (desc.getType() != getDescriptor()) { + throw new java.lang.IllegalArgumentException( + "EnumValueDescriptor is not for this type."); + } + if (desc.getIndex() == -1) { + return UNRECOGNIZED; + } + return VALUES[desc.getIndex()]; + } + + private final int value; + + private TYPE(int value) { + this.value = value; + } + + // @@protoc_insertion_point(enum_scope:carkot.Upload.Method.TYPE) + } + + private int bitField0_; + public static final int TYPE_FIELD_NUMBER = 1; + private int type_; + /** + *
+       * Type of upload method.
+       * 
+ * + * optional .carkot.Upload.Method.TYPE type = 1; + */ + public int getTypeValue() { + return type_; + } + /** + *
+       * Type of upload method.
+       * 
+ * + * optional .carkot.Upload.Method.TYPE type = 1; + */ + public proto.Carkot.Upload.Method.TYPE getType() { + proto.Carkot.Upload.Method.TYPE result = proto.Carkot.Upload.Method.TYPE.forNumber(type_); + return result == null ? proto.Carkot.Upload.Method.TYPE.UNRECOGNIZED : result; + } + + public static final int PORT_FIELD_NUMBER = 2; + private volatile java.lang.Object port_; + /** + *
+       * Upload port.
+       * 
+ * + * optional string port = 2; + */ + public java.lang.String getPort() { + java.lang.Object ref = port_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + port_ = s; + return s; + } + } + /** + *
+       * Upload port.
+       * 
+ * + * optional string port = 2; + */ + public com.google.protobuf.ByteString + getPortBytes() { + java.lang.Object ref = port_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + port_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int DEVICE_FIELD_NUMBER = 3; + private volatile java.lang.Object device_; + /** + *
+       * Device address, smth like 8087:0ABA.
+       * 
+ * + * optional string device = 3; + */ + public java.lang.String getDevice() { + java.lang.Object ref = device_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + device_ = s; + return s; + } + } + /** + *
+       * Device address, smth like 8087:0ABA.
+       * 
+ * + * optional string device = 3; + */ + public com.google.protobuf.ByteString + getDeviceBytes() { + java.lang.Object ref = device_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + device_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int ARGUMENTS_FIELD_NUMBER = 4; + private com.google.protobuf.LazyStringList arguments_; + /** + *
+       * Additional programmator-specific arguments.
+       * 
+ * + * repeated string arguments = 4; + */ + public com.google.protobuf.ProtocolStringList + getArgumentsList() { + return arguments_; + } + /** + *
+       * Additional programmator-specific arguments.
+       * 
+ * + * repeated string arguments = 4; + */ + public int getArgumentsCount() { + return arguments_.size(); + } + /** + *
+       * Additional programmator-specific arguments.
+       * 
+ * + * repeated string arguments = 4; + */ + public java.lang.String getArguments(int index) { + return arguments_.get(index); + } + /** + *
+       * Additional programmator-specific arguments.
+       * 
+ * + * repeated string arguments = 4; + */ + public com.google.protobuf.ByteString + getArgumentsBytes(int index) { + return arguments_.getByteString(index); + } + + private byte memoizedIsInitialized = -1; + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + if (type_ != proto.Carkot.Upload.Method.TYPE.DFU.getNumber()) { + output.writeEnum(1, type_); + } + if (!getPortBytes().isEmpty()) { + com.google.protobuf.GeneratedMessage.writeString(output, 2, port_); + } + if (!getDeviceBytes().isEmpty()) { + com.google.protobuf.GeneratedMessage.writeString(output, 3, device_); + } + for (int i = 0; i < arguments_.size(); i++) { + com.google.protobuf.GeneratedMessage.writeString(output, 4, arguments_.getRaw(i)); + } + } + + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (type_ != proto.Carkot.Upload.Method.TYPE.DFU.getNumber()) { + size += com.google.protobuf.CodedOutputStream + .computeEnumSize(1, type_); + } + if (!getPortBytes().isEmpty()) { + size += com.google.protobuf.GeneratedMessage.computeStringSize(2, port_); + } + if (!getDeviceBytes().isEmpty()) { + size += com.google.protobuf.GeneratedMessage.computeStringSize(3, device_); + } + { + int dataSize = 0; + for (int i = 0; i < arguments_.size(); i++) { + dataSize += computeStringSizeNoTag(arguments_.getRaw(i)); + } + size += dataSize; + size += 1 * getArgumentsList().size(); + } + memoizedSize = size; + return size; + } + + private static final long serialVersionUID = 0L; + public static proto.Carkot.Upload.Method parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static proto.Carkot.Upload.Method parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static proto.Carkot.Upload.Method parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static proto.Carkot.Upload.Method parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static proto.Carkot.Upload.Method parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static proto.Carkot.Upload.Method parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } + public static proto.Carkot.Upload.Method parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input); + } + public static proto.Carkot.Upload.Method parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static proto.Carkot.Upload.Method parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static proto.Carkot.Upload.Method parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } + + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(proto.Carkot.Upload.Method prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + * Protobuf type {@code carkot.Upload.Method} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessage.Builder implements + // @@protoc_insertion_point(builder_implements:carkot.Upload.Method) + proto.Carkot.Upload.MethodOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return proto.Carkot.internal_static_carkot_Upload_Method_descriptor; + } + + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return proto.Carkot.internal_static_carkot_Upload_Method_fieldAccessorTable + .ensureFieldAccessorsInitialized( + proto.Carkot.Upload.Method.class, proto.Carkot.Upload.Method.Builder.class); + } + + // Construct using proto.Carkot.Upload.Method.newBuilder() + private Builder() { + maybeForceBuilderInitialization(); + } + + private Builder( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + super(parent); + maybeForceBuilderInitialization(); + } + private void maybeForceBuilderInitialization() { + if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) { + } + } + public Builder clear() { + super.clear(); + type_ = 0; + + port_ = ""; + + device_ = ""; + + arguments_ = com.google.protobuf.LazyStringArrayList.EMPTY; + bitField0_ = (bitField0_ & ~0x00000008); + return this; + } + + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return proto.Carkot.internal_static_carkot_Upload_Method_descriptor; + } + + public proto.Carkot.Upload.Method getDefaultInstanceForType() { + return proto.Carkot.Upload.Method.getDefaultInstance(); + } + + public proto.Carkot.Upload.Method build() { + proto.Carkot.Upload.Method result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + public proto.Carkot.Upload.Method buildPartial() { + proto.Carkot.Upload.Method result = new proto.Carkot.Upload.Method(this); + int from_bitField0_ = bitField0_; + int to_bitField0_ = 0; + result.type_ = type_; + result.port_ = port_; + result.device_ = device_; + if (((bitField0_ & 0x00000008) == 0x00000008)) { + arguments_ = arguments_.getUnmodifiableView(); + bitField0_ = (bitField0_ & ~0x00000008); + } + result.arguments_ = arguments_; + result.bitField0_ = to_bitField0_; + onBuilt(); + return result; + } + + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof proto.Carkot.Upload.Method) { + return mergeFrom((proto.Carkot.Upload.Method)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(proto.Carkot.Upload.Method other) { + if (other == proto.Carkot.Upload.Method.getDefaultInstance()) return this; + if (other.type_ != 0) { + setTypeValue(other.getTypeValue()); + } + if (!other.getPort().isEmpty()) { + port_ = other.port_; + onChanged(); + } + if (!other.getDevice().isEmpty()) { + device_ = other.device_; + onChanged(); + } + if (!other.arguments_.isEmpty()) { + if (arguments_.isEmpty()) { + arguments_ = other.arguments_; + bitField0_ = (bitField0_ & ~0x00000008); + } else { + ensureArgumentsIsMutable(); + arguments_.addAll(other.arguments_); + } + onChanged(); + } + onChanged(); + return this; + } + + public final boolean isInitialized() { + return true; + } + + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + proto.Carkot.Upload.Method parsedMessage = null; + try { + parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + parsedMessage = (proto.Carkot.Upload.Method) e.getUnfinishedMessage(); + throw e.unwrapIOException(); + } finally { + if (parsedMessage != null) { + mergeFrom(parsedMessage); + } + } + return this; + } + private int bitField0_; + + private int type_ = 0; + /** + *
+         * Type of upload method.
+         * 
+ * + * optional .carkot.Upload.Method.TYPE type = 1; + */ + public int getTypeValue() { + return type_; + } + /** + *
+         * Type of upload method.
+         * 
+ * + * optional .carkot.Upload.Method.TYPE type = 1; + */ + public Builder setTypeValue(int value) { + type_ = value; + onChanged(); + return this; + } + /** + *
+         * Type of upload method.
+         * 
+ * + * optional .carkot.Upload.Method.TYPE type = 1; + */ + public proto.Carkot.Upload.Method.TYPE getType() { + proto.Carkot.Upload.Method.TYPE result = proto.Carkot.Upload.Method.TYPE.forNumber(type_); + return result == null ? proto.Carkot.Upload.Method.TYPE.UNRECOGNIZED : result; + } + /** + *
+         * Type of upload method.
+         * 
+ * + * optional .carkot.Upload.Method.TYPE type = 1; + */ + public Builder setType(proto.Carkot.Upload.Method.TYPE value) { + if (value == null) { + throw new NullPointerException(); + } + + type_ = value.getNumber(); + onChanged(); + return this; + } + /** + *
+         * Type of upload method.
+         * 
+ * + * optional .carkot.Upload.Method.TYPE type = 1; + */ + public Builder clearType() { + + type_ = 0; + onChanged(); + return this; + } + + private java.lang.Object port_ = ""; + /** + *
+         * Upload port.
+         * 
+ * + * optional string port = 2; + */ + public java.lang.String getPort() { + java.lang.Object ref = port_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + port_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + *
+         * Upload port.
+         * 
+ * + * optional string port = 2; + */ + public com.google.protobuf.ByteString + getPortBytes() { + java.lang.Object ref = port_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + port_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + *
+         * Upload port.
+         * 
+ * + * optional string port = 2; + */ + public Builder setPort( + java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + + port_ = value; + onChanged(); + return this; + } + /** + *
+         * Upload port.
+         * 
+ * + * optional string port = 2; + */ + public Builder clearPort() { + + port_ = getDefaultInstance().getPort(); + onChanged(); + return this; + } + /** + *
+         * Upload port.
+         * 
+ * + * optional string port = 2; + */ + public Builder setPortBytes( + com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + + port_ = value; + onChanged(); + return this; + } + + private java.lang.Object device_ = ""; + /** + *
+         * Device address, smth like 8087:0ABA.
+         * 
+ * + * optional string device = 3; + */ + public java.lang.String getDevice() { + java.lang.Object ref = device_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + device_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + *
+         * Device address, smth like 8087:0ABA.
+         * 
+ * + * optional string device = 3; + */ + public com.google.protobuf.ByteString + getDeviceBytes() { + java.lang.Object ref = device_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + device_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + *
+         * Device address, smth like 8087:0ABA.
+         * 
+ * + * optional string device = 3; + */ + public Builder setDevice( + java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + + device_ = value; + onChanged(); + return this; + } + /** + *
+         * Device address, smth like 8087:0ABA.
+         * 
+ * + * optional string device = 3; + */ + public Builder clearDevice() { + + device_ = getDefaultInstance().getDevice(); + onChanged(); + return this; + } + /** + *
+         * Device address, smth like 8087:0ABA.
+         * 
+ * + * optional string device = 3; + */ + public Builder setDeviceBytes( + com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + + device_ = value; + onChanged(); + return this; + } + + private com.google.protobuf.LazyStringList arguments_ = com.google.protobuf.LazyStringArrayList.EMPTY; + private void ensureArgumentsIsMutable() { + if (!((bitField0_ & 0x00000008) == 0x00000008)) { + arguments_ = new com.google.protobuf.LazyStringArrayList(arguments_); + bitField0_ |= 0x00000008; + } + } + /** + *
+         * Additional programmator-specific arguments.
+         * 
+ * + * repeated string arguments = 4; + */ + public com.google.protobuf.ProtocolStringList + getArgumentsList() { + return arguments_.getUnmodifiableView(); + } + /** + *
+         * Additional programmator-specific arguments.
+         * 
+ * + * repeated string arguments = 4; + */ + public int getArgumentsCount() { + return arguments_.size(); + } + /** + *
+         * Additional programmator-specific arguments.
+         * 
+ * + * repeated string arguments = 4; + */ + public java.lang.String getArguments(int index) { + return arguments_.get(index); + } + /** + *
+         * Additional programmator-specific arguments.
+         * 
+ * + * repeated string arguments = 4; + */ + public com.google.protobuf.ByteString + getArgumentsBytes(int index) { + return arguments_.getByteString(index); + } + /** + *
+         * Additional programmator-specific arguments.
+         * 
+ * + * repeated string arguments = 4; + */ + public Builder setArguments( + int index, java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + ensureArgumentsIsMutable(); + arguments_.set(index, value); + onChanged(); + return this; + } + /** + *
+         * Additional programmator-specific arguments.
+         * 
+ * + * repeated string arguments = 4; + */ + public Builder addArguments( + java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + ensureArgumentsIsMutable(); + arguments_.add(value); + onChanged(); + return this; + } + /** + *
+         * Additional programmator-specific arguments.
+         * 
+ * + * repeated string arguments = 4; + */ + public Builder addAllArguments( + java.lang.Iterable values) { + ensureArgumentsIsMutable(); + com.google.protobuf.AbstractMessageLite.Builder.addAll( + values, arguments_); + onChanged(); + return this; + } + /** + *
+         * Additional programmator-specific arguments.
+         * 
+ * + * repeated string arguments = 4; + */ + public Builder clearArguments() { + arguments_ = com.google.protobuf.LazyStringArrayList.EMPTY; + bitField0_ = (bitField0_ & ~0x00000008); + onChanged(); + return this; + } + /** + *
+         * Additional programmator-specific arguments.
+         * 
+ * + * repeated string arguments = 4; + */ + public Builder addArgumentsBytes( + com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + ensureArgumentsIsMutable(); + arguments_.add(value); + onChanged(); + return this; + } + public final Builder setUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return this; + } + + public final Builder mergeUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return this; + } + + + // @@protoc_insertion_point(builder_scope:carkot.Upload.Method) + } + + // @@protoc_insertion_point(class_scope:carkot.Upload.Method) + private static final proto.Carkot.Upload.Method DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new proto.Carkot.Upload.Method(); + } + + public static proto.Carkot.Upload.Method getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + public Method parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return new Method(input, extensionRegistry); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + public proto.Carkot.Upload.Method getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + public static final int DATA_FIELD_NUMBER = 1; + private com.google.protobuf.ByteString data_; + /** + *
+     * Firmware data.
+     * 
+ * + * optional bytes data = 1; + */ + public com.google.protobuf.ByteString getData() { + return data_; + } + + public static final int BASE_FIELD_NUMBER = 2; + private volatile java.lang.Object base_; + /** + *
+     * Firmware load address (string, to avoid 64-bit woes).
+     * 
+ * + * optional string base = 2; + */ + public java.lang.String getBase() { + java.lang.Object ref = base_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + base_ = s; + return s; + } + } + /** + *
+     * Firmware load address (string, to avoid 64-bit woes).
+     * 
+ * + * optional string base = 2; + */ + public com.google.protobuf.ByteString + getBaseBytes() { + java.lang.Object ref = base_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + base_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int METHOD_FIELD_NUMBER = 3; + private proto.Carkot.Upload.Method method_; + /** + *
+     * Method of firmware upload.
+     * 
+ * + * optional .carkot.Upload.Method method = 3; + */ + public boolean hasMethod() { + return method_ != null; + } + /** + *
+     * Method of firmware upload.
+     * 
+ * + * optional .carkot.Upload.Method method = 3; + */ + public proto.Carkot.Upload.Method getMethod() { + return method_ == null ? proto.Carkot.Upload.Method.getDefaultInstance() : method_; + } + /** + *
+     * Method of firmware upload.
+     * 
+ * + * optional .carkot.Upload.Method method = 3; + */ + public proto.Carkot.Upload.MethodOrBuilder getMethodOrBuilder() { + return getMethod(); + } + + private byte memoizedIsInitialized = -1; + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + if (!data_.isEmpty()) { + output.writeBytes(1, data_); + } + if (!getBaseBytes().isEmpty()) { + com.google.protobuf.GeneratedMessage.writeString(output, 2, base_); + } + if (method_ != null) { + output.writeMessage(3, getMethod()); + } + } + + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (!data_.isEmpty()) { + size += com.google.protobuf.CodedOutputStream + .computeBytesSize(1, data_); + } + if (!getBaseBytes().isEmpty()) { + size += com.google.protobuf.GeneratedMessage.computeStringSize(2, base_); + } + if (method_ != null) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(3, getMethod()); + } + memoizedSize = size; + return size; + } + + private static final long serialVersionUID = 0L; + public static proto.Carkot.Upload parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static proto.Carkot.Upload parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static proto.Carkot.Upload parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static proto.Carkot.Upload parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static proto.Carkot.Upload parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static proto.Carkot.Upload parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } + public static proto.Carkot.Upload parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input); + } + public static proto.Carkot.Upload parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static proto.Carkot.Upload parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static proto.Carkot.Upload parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } + + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(proto.Carkot.Upload prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + * Protobuf type {@code carkot.Upload} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessage.Builder implements + // @@protoc_insertion_point(builder_implements:carkot.Upload) + proto.Carkot.UploadOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return proto.Carkot.internal_static_carkot_Upload_descriptor; + } + + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return proto.Carkot.internal_static_carkot_Upload_fieldAccessorTable + .ensureFieldAccessorsInitialized( + proto.Carkot.Upload.class, proto.Carkot.Upload.Builder.class); + } + + // Construct using proto.Carkot.Upload.newBuilder() + private Builder() { + maybeForceBuilderInitialization(); + } + + private Builder( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + super(parent); + maybeForceBuilderInitialization(); + } + private void maybeForceBuilderInitialization() { + if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) { + } + } + public Builder clear() { + super.clear(); + data_ = com.google.protobuf.ByteString.EMPTY; + + base_ = ""; + + if (methodBuilder_ == null) { + method_ = null; + } else { + method_ = null; + methodBuilder_ = null; + } + return this; + } + + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return proto.Carkot.internal_static_carkot_Upload_descriptor; + } + + public proto.Carkot.Upload getDefaultInstanceForType() { + return proto.Carkot.Upload.getDefaultInstance(); + } + + public proto.Carkot.Upload build() { + proto.Carkot.Upload result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + public proto.Carkot.Upload buildPartial() { + proto.Carkot.Upload result = new proto.Carkot.Upload(this); + result.data_ = data_; + result.base_ = base_; + if (methodBuilder_ == null) { + result.method_ = method_; + } else { + result.method_ = methodBuilder_.build(); + } + onBuilt(); + return result; + } + + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof proto.Carkot.Upload) { + return mergeFrom((proto.Carkot.Upload)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(proto.Carkot.Upload other) { + if (other == proto.Carkot.Upload.getDefaultInstance()) return this; + if (other.getData() != com.google.protobuf.ByteString.EMPTY) { + setData(other.getData()); + } + if (!other.getBase().isEmpty()) { + base_ = other.base_; + onChanged(); + } + if (other.hasMethod()) { + mergeMethod(other.getMethod()); + } + onChanged(); + return this; + } + + public final boolean isInitialized() { + return true; + } + + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + proto.Carkot.Upload parsedMessage = null; + try { + parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + parsedMessage = (proto.Carkot.Upload) e.getUnfinishedMessage(); + throw e.unwrapIOException(); + } finally { + if (parsedMessage != null) { + mergeFrom(parsedMessage); + } + } + return this; + } + + private com.google.protobuf.ByteString data_ = com.google.protobuf.ByteString.EMPTY; + /** + *
+       * Firmware data.
+       * 
+ * + * optional bytes data = 1; + */ + public com.google.protobuf.ByteString getData() { + return data_; + } + /** + *
+       * Firmware data.
+       * 
+ * + * optional bytes data = 1; + */ + public Builder setData(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + + data_ = value; + onChanged(); + return this; + } + /** + *
+       * Firmware data.
+       * 
+ * + * optional bytes data = 1; + */ + public Builder clearData() { + + data_ = getDefaultInstance().getData(); + onChanged(); + return this; + } + + private java.lang.Object base_ = ""; + /** + *
+       * Firmware load address (string, to avoid 64-bit woes).
+       * 
+ * + * optional string base = 2; + */ + public java.lang.String getBase() { + java.lang.Object ref = base_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + base_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + *
+       * Firmware load address (string, to avoid 64-bit woes).
+       * 
+ * + * optional string base = 2; + */ + public com.google.protobuf.ByteString + getBaseBytes() { + java.lang.Object ref = base_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + base_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + *
+       * Firmware load address (string, to avoid 64-bit woes).
+       * 
+ * + * optional string base = 2; + */ + public Builder setBase( + java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + + base_ = value; + onChanged(); + return this; + } + /** + *
+       * Firmware load address (string, to avoid 64-bit woes).
+       * 
+ * + * optional string base = 2; + */ + public Builder clearBase() { + + base_ = getDefaultInstance().getBase(); + onChanged(); + return this; + } + /** + *
+       * Firmware load address (string, to avoid 64-bit woes).
+       * 
+ * + * optional string base = 2; + */ + public Builder setBaseBytes( + com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + + base_ = value; + onChanged(); + return this; + } + + private proto.Carkot.Upload.Method method_ = null; + private com.google.protobuf.SingleFieldBuilder< + proto.Carkot.Upload.Method, proto.Carkot.Upload.Method.Builder, proto.Carkot.Upload.MethodOrBuilder> methodBuilder_; + /** + *
+       * Method of firmware upload.
+       * 
+ * + * optional .carkot.Upload.Method method = 3; + */ + public boolean hasMethod() { + return methodBuilder_ != null || method_ != null; + } + /** + *
+       * Method of firmware upload.
+       * 
+ * + * optional .carkot.Upload.Method method = 3; + */ + public proto.Carkot.Upload.Method getMethod() { + if (methodBuilder_ == null) { + return method_ == null ? proto.Carkot.Upload.Method.getDefaultInstance() : method_; + } else { + return methodBuilder_.getMessage(); + } + } + /** + *
+       * Method of firmware upload.
+       * 
+ * + * optional .carkot.Upload.Method method = 3; + */ + public Builder setMethod(proto.Carkot.Upload.Method value) { + if (methodBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + method_ = value; + onChanged(); + } else { + methodBuilder_.setMessage(value); + } + + return this; + } + /** + *
+       * Method of firmware upload.
+       * 
+ * + * optional .carkot.Upload.Method method = 3; + */ + public Builder setMethod( + proto.Carkot.Upload.Method.Builder builderForValue) { + if (methodBuilder_ == null) { + method_ = builderForValue.build(); + onChanged(); + } else { + methodBuilder_.setMessage(builderForValue.build()); + } + + return this; + } + /** + *
+       * Method of firmware upload.
+       * 
+ * + * optional .carkot.Upload.Method method = 3; + */ + public Builder mergeMethod(proto.Carkot.Upload.Method value) { + if (methodBuilder_ == null) { + if (method_ != null) { + method_ = + proto.Carkot.Upload.Method.newBuilder(method_).mergeFrom(value).buildPartial(); + } else { + method_ = value; + } + onChanged(); + } else { + methodBuilder_.mergeFrom(value); + } + + return this; + } + /** + *
+       * Method of firmware upload.
+       * 
+ * + * optional .carkot.Upload.Method method = 3; + */ + public Builder clearMethod() { + if (methodBuilder_ == null) { + method_ = null; + onChanged(); + } else { + method_ = null; + methodBuilder_ = null; + } + + return this; + } + /** + *
+       * Method of firmware upload.
+       * 
+ * + * optional .carkot.Upload.Method method = 3; + */ + public proto.Carkot.Upload.Method.Builder getMethodBuilder() { + + onChanged(); + return getMethodFieldBuilder().getBuilder(); + } + /** + *
+       * Method of firmware upload.
+       * 
+ * + * optional .carkot.Upload.Method method = 3; + */ + public proto.Carkot.Upload.MethodOrBuilder getMethodOrBuilder() { + if (methodBuilder_ != null) { + return methodBuilder_.getMessageOrBuilder(); + } else { + return method_ == null ? + proto.Carkot.Upload.Method.getDefaultInstance() : method_; + } + } + /** + *
+       * Method of firmware upload.
+       * 
+ * + * optional .carkot.Upload.Method method = 3; + */ + private com.google.protobuf.SingleFieldBuilder< + proto.Carkot.Upload.Method, proto.Carkot.Upload.Method.Builder, proto.Carkot.Upload.MethodOrBuilder> + getMethodFieldBuilder() { + if (methodBuilder_ == null) { + methodBuilder_ = new com.google.protobuf.SingleFieldBuilder< + proto.Carkot.Upload.Method, proto.Carkot.Upload.Method.Builder, proto.Carkot.Upload.MethodOrBuilder>( + getMethod(), + getParentForChildren(), + isClean()); + method_ = null; + } + return methodBuilder_; + } + public final Builder setUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return this; + } + + public final Builder mergeUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return this; + } + + + // @@protoc_insertion_point(builder_scope:carkot.Upload) + } + + // @@protoc_insertion_point(class_scope:carkot.Upload) + private static final proto.Carkot.Upload DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new proto.Carkot.Upload(); + } + + public static proto.Carkot.Upload getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + public Upload parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return new Upload(input, extensionRegistry); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + public proto.Carkot.Upload getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + public interface UploadResultOrBuilder extends + // @@protoc_insertion_point(interface_extends:carkot.UploadResult) + com.google.protobuf.MessageOrBuilder { + + /** + * optional string stdOut = 1; + */ + java.lang.String getStdOut(); + /** + * optional string stdOut = 1; + */ + com.google.protobuf.ByteString + getStdOutBytes(); + + /** + * optional string stdErr = 2; + */ + java.lang.String getStdErr(); + /** + * optional string stdErr = 2; + */ + com.google.protobuf.ByteString + getStdErrBytes(); + + /** + * optional int32 resultCode = 3; + */ + int getResultCode(); + } + /** + * Protobuf type {@code carkot.UploadResult} + */ + public static final class UploadResult extends + com.google.protobuf.GeneratedMessage implements + // @@protoc_insertion_point(message_implements:carkot.UploadResult) + UploadResultOrBuilder { + // Use UploadResult.newBuilder() to construct. + private UploadResult(com.google.protobuf.GeneratedMessage.Builder builder) { + super(builder); + } + private UploadResult() { + stdOut_ = ""; + stdErr_ = ""; + resultCode_ = 0; + } + + @java.lang.Override + public final com.google.protobuf.UnknownFieldSet + getUnknownFields() { + return com.google.protobuf.UnknownFieldSet.getDefaultInstance(); + } + private UploadResult( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + this(); + int mutable_bitField0_ = 0; + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + default: { + if (!input.skipField(tag)) { + done = true; + } + break; + } + case 10: { + java.lang.String s = input.readStringRequireUtf8(); + + stdOut_ = s; + break; + } + case 18: { + java.lang.String s = input.readStringRequireUtf8(); + + stdErr_ = s; + break; + } + case 24: { + + resultCode_ = input.readInt32(); + break; + } + } + } + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(this); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException( + e).setUnfinishedMessage(this); + } finally { + makeExtensionsImmutable(); + } + } + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return proto.Carkot.internal_static_carkot_UploadResult_descriptor; + } + + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return proto.Carkot.internal_static_carkot_UploadResult_fieldAccessorTable + .ensureFieldAccessorsInitialized( + proto.Carkot.UploadResult.class, proto.Carkot.UploadResult.Builder.class); + } + + public static final int STDOUT_FIELD_NUMBER = 1; + private volatile java.lang.Object stdOut_; + /** + * optional string stdOut = 1; + */ + public java.lang.String getStdOut() { + java.lang.Object ref = stdOut_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + stdOut_ = s; + return s; + } + } + /** + * optional string stdOut = 1; + */ + public com.google.protobuf.ByteString + getStdOutBytes() { + java.lang.Object ref = stdOut_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + stdOut_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int STDERR_FIELD_NUMBER = 2; + private volatile java.lang.Object stdErr_; + /** + * optional string stdErr = 2; + */ + public java.lang.String getStdErr() { + java.lang.Object ref = stdErr_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + stdErr_ = s; + return s; + } + } + /** + * optional string stdErr = 2; + */ + public com.google.protobuf.ByteString + getStdErrBytes() { + java.lang.Object ref = stdErr_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + stdErr_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int RESULTCODE_FIELD_NUMBER = 3; + private int resultCode_; + /** + * optional int32 resultCode = 3; + */ + public int getResultCode() { + return resultCode_; + } + + private byte memoizedIsInitialized = -1; + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + if (!getStdOutBytes().isEmpty()) { + com.google.protobuf.GeneratedMessage.writeString(output, 1, stdOut_); + } + if (!getStdErrBytes().isEmpty()) { + com.google.protobuf.GeneratedMessage.writeString(output, 2, stdErr_); + } + if (resultCode_ != 0) { + output.writeInt32(3, resultCode_); + } + } + + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (!getStdOutBytes().isEmpty()) { + size += com.google.protobuf.GeneratedMessage.computeStringSize(1, stdOut_); + } + if (!getStdErrBytes().isEmpty()) { + size += com.google.protobuf.GeneratedMessage.computeStringSize(2, stdErr_); + } + if (resultCode_ != 0) { + size += com.google.protobuf.CodedOutputStream + .computeInt32Size(3, resultCode_); + } + memoizedSize = size; + return size; + } + + private static final long serialVersionUID = 0L; + public static proto.Carkot.UploadResult parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static proto.Carkot.UploadResult parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static proto.Carkot.UploadResult parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static proto.Carkot.UploadResult parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static proto.Carkot.UploadResult parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static proto.Carkot.UploadResult parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } + public static proto.Carkot.UploadResult parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input); + } + public static proto.Carkot.UploadResult parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static proto.Carkot.UploadResult parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static proto.Carkot.UploadResult parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } + + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(proto.Carkot.UploadResult prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + * Protobuf type {@code carkot.UploadResult} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessage.Builder implements + // @@protoc_insertion_point(builder_implements:carkot.UploadResult) + proto.Carkot.UploadResultOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return proto.Carkot.internal_static_carkot_UploadResult_descriptor; + } + + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return proto.Carkot.internal_static_carkot_UploadResult_fieldAccessorTable + .ensureFieldAccessorsInitialized( + proto.Carkot.UploadResult.class, proto.Carkot.UploadResult.Builder.class); + } + + // Construct using proto.Carkot.UploadResult.newBuilder() + private Builder() { + maybeForceBuilderInitialization(); + } + + private Builder( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + super(parent); + maybeForceBuilderInitialization(); + } + private void maybeForceBuilderInitialization() { + if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) { + } + } + public Builder clear() { + super.clear(); + stdOut_ = ""; + + stdErr_ = ""; + + resultCode_ = 0; + + return this; + } + + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return proto.Carkot.internal_static_carkot_UploadResult_descriptor; + } + + public proto.Carkot.UploadResult getDefaultInstanceForType() { + return proto.Carkot.UploadResult.getDefaultInstance(); + } + + public proto.Carkot.UploadResult build() { + proto.Carkot.UploadResult result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + public proto.Carkot.UploadResult buildPartial() { + proto.Carkot.UploadResult result = new proto.Carkot.UploadResult(this); + result.stdOut_ = stdOut_; + result.stdErr_ = stdErr_; + result.resultCode_ = resultCode_; + onBuilt(); + return result; + } + + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof proto.Carkot.UploadResult) { + return mergeFrom((proto.Carkot.UploadResult)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(proto.Carkot.UploadResult other) { + if (other == proto.Carkot.UploadResult.getDefaultInstance()) return this; + if (!other.getStdOut().isEmpty()) { + stdOut_ = other.stdOut_; + onChanged(); + } + if (!other.getStdErr().isEmpty()) { + stdErr_ = other.stdErr_; + onChanged(); + } + if (other.getResultCode() != 0) { + setResultCode(other.getResultCode()); + } + onChanged(); + return this; + } + + public final boolean isInitialized() { + return true; + } + + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + proto.Carkot.UploadResult parsedMessage = null; + try { + parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + parsedMessage = (proto.Carkot.UploadResult) e.getUnfinishedMessage(); + throw e.unwrapIOException(); + } finally { + if (parsedMessage != null) { + mergeFrom(parsedMessage); + } + } + return this; + } + + private java.lang.Object stdOut_ = ""; + /** + * optional string stdOut = 1; + */ + public java.lang.String getStdOut() { + java.lang.Object ref = stdOut_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + stdOut_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + * optional string stdOut = 1; + */ + public com.google.protobuf.ByteString + getStdOutBytes() { + java.lang.Object ref = stdOut_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + stdOut_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + * optional string stdOut = 1; + */ + public Builder setStdOut( + java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + + stdOut_ = value; + onChanged(); + return this; + } + /** + * optional string stdOut = 1; + */ + public Builder clearStdOut() { + + stdOut_ = getDefaultInstance().getStdOut(); + onChanged(); + return this; + } + /** + * optional string stdOut = 1; + */ + public Builder setStdOutBytes( + com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + + stdOut_ = value; + onChanged(); + return this; + } + + private java.lang.Object stdErr_ = ""; + /** + * optional string stdErr = 2; + */ + public java.lang.String getStdErr() { + java.lang.Object ref = stdErr_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + stdErr_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + * optional string stdErr = 2; + */ + public com.google.protobuf.ByteString + getStdErrBytes() { + java.lang.Object ref = stdErr_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + stdErr_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + * optional string stdErr = 2; + */ + public Builder setStdErr( + java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + + stdErr_ = value; + onChanged(); + return this; + } + /** + * optional string stdErr = 2; + */ + public Builder clearStdErr() { + + stdErr_ = getDefaultInstance().getStdErr(); + onChanged(); + return this; + } + /** + * optional string stdErr = 2; + */ + public Builder setStdErrBytes( + com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + + stdErr_ = value; + onChanged(); + return this; + } + + private int resultCode_ ; + /** + * optional int32 resultCode = 3; + */ + public int getResultCode() { + return resultCode_; + } + /** + * optional int32 resultCode = 3; + */ + public Builder setResultCode(int value) { + + resultCode_ = value; + onChanged(); + return this; + } + /** + * optional int32 resultCode = 3; + */ + public Builder clearResultCode() { + + resultCode_ = 0; + onChanged(); + return this; + } + public final Builder setUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return this; + } + + public final Builder mergeUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return this; + } + + + // @@protoc_insertion_point(builder_scope:carkot.UploadResult) + } + + // @@protoc_insertion_point(class_scope:carkot.UploadResult) + private static final proto.Carkot.UploadResult DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new proto.Carkot.UploadResult(); + } + + public static proto.Carkot.UploadResult getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + public UploadResult parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return new UploadResult(input, extensionRegistry); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + public proto.Carkot.UploadResult getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + public interface LogMessageOrBuilder extends + // @@protoc_insertion_point(interface_extends:carkot.LogMessage) + com.google.protobuf.MessageOrBuilder { + + /** + * optional string source = 1; + */ + java.lang.String getSource(); + /** + * optional string source = 1; + */ + com.google.protobuf.ByteString + getSourceBytes(); + + /** + * optional bytes message = 2; + */ + com.google.protobuf.ByteString getMessage(); + } + /** + * Protobuf type {@code carkot.LogMessage} + */ + public static final class LogMessage extends + com.google.protobuf.GeneratedMessage implements + // @@protoc_insertion_point(message_implements:carkot.LogMessage) + LogMessageOrBuilder { + // Use LogMessage.newBuilder() to construct. + private LogMessage(com.google.protobuf.GeneratedMessage.Builder builder) { + super(builder); + } + private LogMessage() { + source_ = ""; + message_ = com.google.protobuf.ByteString.EMPTY; + } + + @java.lang.Override + public final com.google.protobuf.UnknownFieldSet + getUnknownFields() { + return com.google.protobuf.UnknownFieldSet.getDefaultInstance(); + } + private LogMessage( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + this(); + int mutable_bitField0_ = 0; + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + default: { + if (!input.skipField(tag)) { + done = true; + } + break; + } + case 10: { + java.lang.String s = input.readStringRequireUtf8(); + + source_ = s; + break; + } + case 18: { + + message_ = input.readBytes(); + break; + } + } + } + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(this); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException( + e).setUnfinishedMessage(this); + } finally { + makeExtensionsImmutable(); + } + } + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return proto.Carkot.internal_static_carkot_LogMessage_descriptor; + } + + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return proto.Carkot.internal_static_carkot_LogMessage_fieldAccessorTable + .ensureFieldAccessorsInitialized( + proto.Carkot.LogMessage.class, proto.Carkot.LogMessage.Builder.class); + } + + public static final int SOURCE_FIELD_NUMBER = 1; + private volatile java.lang.Object source_; + /** + * optional string source = 1; + */ + public java.lang.String getSource() { + java.lang.Object ref = source_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + source_ = s; + return s; + } + } + /** + * optional string source = 1; + */ + public com.google.protobuf.ByteString + getSourceBytes() { + java.lang.Object ref = source_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + source_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int MESSAGE_FIELD_NUMBER = 2; + private com.google.protobuf.ByteString message_; + /** + * optional bytes message = 2; + */ + public com.google.protobuf.ByteString getMessage() { + return message_; + } + + private byte memoizedIsInitialized = -1; + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + if (!getSourceBytes().isEmpty()) { + com.google.protobuf.GeneratedMessage.writeString(output, 1, source_); + } + if (!message_.isEmpty()) { + output.writeBytes(2, message_); + } + } + + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (!getSourceBytes().isEmpty()) { + size += com.google.protobuf.GeneratedMessage.computeStringSize(1, source_); + } + if (!message_.isEmpty()) { + size += com.google.protobuf.CodedOutputStream + .computeBytesSize(2, message_); + } + memoizedSize = size; + return size; + } + + private static final long serialVersionUID = 0L; + public static proto.Carkot.LogMessage parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static proto.Carkot.LogMessage parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static proto.Carkot.LogMessage parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static proto.Carkot.LogMessage parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static proto.Carkot.LogMessage parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static proto.Carkot.LogMessage parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } + public static proto.Carkot.LogMessage parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input); + } + public static proto.Carkot.LogMessage parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static proto.Carkot.LogMessage parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static proto.Carkot.LogMessage parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } + + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(proto.Carkot.LogMessage prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + * Protobuf type {@code carkot.LogMessage} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessage.Builder implements + // @@protoc_insertion_point(builder_implements:carkot.LogMessage) + proto.Carkot.LogMessageOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return proto.Carkot.internal_static_carkot_LogMessage_descriptor; + } + + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return proto.Carkot.internal_static_carkot_LogMessage_fieldAccessorTable + .ensureFieldAccessorsInitialized( + proto.Carkot.LogMessage.class, proto.Carkot.LogMessage.Builder.class); + } + + // Construct using proto.Carkot.LogMessage.newBuilder() + private Builder() { + maybeForceBuilderInitialization(); + } + + private Builder( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + super(parent); + maybeForceBuilderInitialization(); + } + private void maybeForceBuilderInitialization() { + if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) { + } + } + public Builder clear() { + super.clear(); + source_ = ""; + + message_ = com.google.protobuf.ByteString.EMPTY; + + return this; + } + + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return proto.Carkot.internal_static_carkot_LogMessage_descriptor; + } + + public proto.Carkot.LogMessage getDefaultInstanceForType() { + return proto.Carkot.LogMessage.getDefaultInstance(); + } + + public proto.Carkot.LogMessage build() { + proto.Carkot.LogMessage result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + public proto.Carkot.LogMessage buildPartial() { + proto.Carkot.LogMessage result = new proto.Carkot.LogMessage(this); + result.source_ = source_; + result.message_ = message_; + onBuilt(); + return result; + } + + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof proto.Carkot.LogMessage) { + return mergeFrom((proto.Carkot.LogMessage)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(proto.Carkot.LogMessage other) { + if (other == proto.Carkot.LogMessage.getDefaultInstance()) return this; + if (!other.getSource().isEmpty()) { + source_ = other.source_; + onChanged(); + } + if (other.getMessage() != com.google.protobuf.ByteString.EMPTY) { + setMessage(other.getMessage()); + } + onChanged(); + return this; + } + + public final boolean isInitialized() { + return true; + } + + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + proto.Carkot.LogMessage parsedMessage = null; + try { + parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + parsedMessage = (proto.Carkot.LogMessage) e.getUnfinishedMessage(); + throw e.unwrapIOException(); + } finally { + if (parsedMessage != null) { + mergeFrom(parsedMessage); + } + } + return this; + } + + private java.lang.Object source_ = ""; + /** + * optional string source = 1; + */ + public java.lang.String getSource() { + java.lang.Object ref = source_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + source_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + * optional string source = 1; + */ + public com.google.protobuf.ByteString + getSourceBytes() { + java.lang.Object ref = source_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + source_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + * optional string source = 1; + */ + public Builder setSource( + java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + + source_ = value; + onChanged(); + return this; + } + /** + * optional string source = 1; + */ + public Builder clearSource() { + + source_ = getDefaultInstance().getSource(); + onChanged(); + return this; + } + /** + * optional string source = 1; + */ + public Builder setSourceBytes( + com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + + source_ = value; + onChanged(); + return this; + } + + private com.google.protobuf.ByteString message_ = com.google.protobuf.ByteString.EMPTY; + /** + * optional bytes message = 2; + */ + public com.google.protobuf.ByteString getMessage() { + return message_; + } + /** + * optional bytes message = 2; + */ + public Builder setMessage(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + + message_ = value; + onChanged(); + return this; + } + /** + * optional bytes message = 2; + */ + public Builder clearMessage() { + + message_ = getDefaultInstance().getMessage(); + onChanged(); + return this; + } + public final Builder setUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return this; + } + + public final Builder mergeUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return this; + } + + + // @@protoc_insertion_point(builder_scope:carkot.LogMessage) + } + + // @@protoc_insertion_point(class_scope:carkot.LogMessage) + private static final proto.Carkot.LogMessage DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new proto.Carkot.LogMessage(); + } + + public static proto.Carkot.LogMessage getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + public LogMessage parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return new LogMessage(input, extensionRegistry); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + public proto.Carkot.LogMessage getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_carkot_Upload_descriptor; + private static final + com.google.protobuf.GeneratedMessage.FieldAccessorTable + internal_static_carkot_Upload_fieldAccessorTable; + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_carkot_Upload_Method_descriptor; + private static final + com.google.protobuf.GeneratedMessage.FieldAccessorTable + internal_static_carkot_Upload_Method_fieldAccessorTable; + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_carkot_UploadResult_descriptor; + private static final + com.google.protobuf.GeneratedMessage.FieldAccessorTable + internal_static_carkot_UploadResult_fieldAccessorTable; + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_carkot_LogMessage_descriptor; + private static final + com.google.protobuf.GeneratedMessage.FieldAccessorTable + internal_static_carkot_LogMessage_fieldAccessorTable; + + public static com.google.protobuf.Descriptors.FileDescriptor + getDescriptor() { + return descriptor; + } + private static com.google.protobuf.Descriptors.FileDescriptor + descriptor; + static { + java.lang.String[] descriptorData = { + "\n\014carkot.proto\022\006carkot\"\316\001\n\006Upload\022\014\n\004dat" + + "a\030\001 \001(\014\022\014\n\004base\030\002 \001(\t\022%\n\006method\030\003 \001(\0132\025." + + "carkot.Upload.Method\032\200\001\n\006Method\022(\n\004type\030" + + "\001 \001(\0162\032.carkot.Upload.Method.TYPE\022\014\n\004por" + + "t\030\002 \001(\t\022\016\n\006device\030\003 \001(\t\022\021\n\targuments\030\004 \003" + + "(\t\"\033\n\004TYPE\022\007\n\003DFU\020\000\022\n\n\006STLINK\020\001\"B\n\014Uploa" + + "dResult\022\016\n\006stdOut\030\001 \001(\t\022\016\n\006stdErr\030\002 \001(\t\022" + + "\022\n\nresultCode\030\003 \001(\005\"-\n\nLogMessage\022\016\n\006sou" + + "rce\030\001 \001(\t\022\017\n\007message\030\002 \001(\014B\017\n\005protoB\006Car" + + "kotb\006proto3" + }; + com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner assigner = + new com.google.protobuf.Descriptors.FileDescriptor. InternalDescriptorAssigner() { + public com.google.protobuf.ExtensionRegistry assignDescriptors( + com.google.protobuf.Descriptors.FileDescriptor root) { + descriptor = root; + return null; + } + }; + com.google.protobuf.Descriptors.FileDescriptor + .internalBuildGeneratedFileFrom(descriptorData, + new com.google.protobuf.Descriptors.FileDescriptor[] { + }, assigner); + internal_static_carkot_Upload_descriptor = + getDescriptor().getMessageTypes().get(0); + internal_static_carkot_Upload_fieldAccessorTable = new + com.google.protobuf.GeneratedMessage.FieldAccessorTable( + internal_static_carkot_Upload_descriptor, + new java.lang.String[] { "Data", "Base", "Method", }); + internal_static_carkot_Upload_Method_descriptor = + internal_static_carkot_Upload_descriptor.getNestedTypes().get(0); + internal_static_carkot_Upload_Method_fieldAccessorTable = new + com.google.protobuf.GeneratedMessage.FieldAccessorTable( + internal_static_carkot_Upload_Method_descriptor, + new java.lang.String[] { "Type", "Port", "Device", "Arguments", }); + internal_static_carkot_UploadResult_descriptor = + getDescriptor().getMessageTypes().get(1); + internal_static_carkot_UploadResult_fieldAccessorTable = new + com.google.protobuf.GeneratedMessage.FieldAccessorTable( + internal_static_carkot_UploadResult_descriptor, + new java.lang.String[] { "StdOut", "StdErr", "ResultCode", }); + internal_static_carkot_LogMessage_descriptor = + getDescriptor().getMessageTypes().get(2); + internal_static_carkot_LogMessage_fieldAccessorTable = new + com.google.protobuf.GeneratedMessage.FieldAccessorTable( + internal_static_carkot_LogMessage_descriptor, + new java.lang.String[] { "Source", "Message", }); + } + + // @@protoc_insertion_point(outer_class_scope) +} diff --git a/car_net/stFlashClient/stFlashClient.iml b/car_net/stFlashClient/stFlashClient.iml new file mode 100644 index 00000000000..a1e5a5a5b41 --- /dev/null +++ b/car_net/stFlashClient/stFlashClient.iml @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/car_net/stFlashServer/.gitignore b/car_net/stFlashServer/.gitignore new file mode 100644 index 00000000000..28e0ca18aae --- /dev/null +++ b/car_net/stFlashServer/.gitignore @@ -0,0 +1,4 @@ +.idea/workspace.xml +.idea/uiDesigner.xml +protobufjs +out diff --git a/car_net/stFlashServer/.idea/misc.xml b/car_net/stFlashServer/.idea/misc.xml new file mode 100644 index 00000000000..72abef0a732 --- /dev/null +++ b/car_net/stFlashServer/.idea/misc.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/car_net/stFlashServer/.idea/modules.xml b/car_net/stFlashServer/.idea/modules.xml new file mode 100644 index 00000000000..2e66e1cf2f8 --- /dev/null +++ b/car_net/stFlashServer/.idea/modules.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/car_net/stFlashServer/.idea/stFlashServer.iml b/car_net/stFlashServer/.idea/stFlashServer.iml new file mode 100644 index 00000000000..c956989b29a --- /dev/null +++ b/car_net/stFlashServer/.idea/stFlashServer.iml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/car_net/stFlashServer/f.bin b/car_net/stFlashServer/f.bin new file mode 100644 index 00000000000..e8d1c43c776 Binary files /dev/null and b/car_net/stFlashServer/f.bin differ diff --git a/car_net/stFlashServer/handlers.js b/car_net/stFlashServer/handlers.js new file mode 100644 index 00000000000..ca4e9d84364 --- /dev/null +++ b/car_net/stFlashServer/handlers.js @@ -0,0 +1,48 @@ +/** + * Created by user on 7/11/16. + */ +const fs = require("fs"); +const protoBuf = require("./protobufjs"); +const builder = protoBuf.loadProtoFile("./proto/carkot.proto");//todo перенести как аргумент при запуске. +const protoConstructor = builder.build("carkot"); +var commandPrefix = "./data/macosx-x86_64/st-flash write"; +var binFilePath = "./f.bin"; + +function loadBin(httpContent, response) { + + var uploadClass = protoConstructor.Upload; + var uploadObject = uploadClass.decode(httpContent); + fs.writeFile(binFilePath, uploadObject.data.buffer, "binary", function (error) { + var uploadResultClass = protoConstructor.UploadResult; + var code = 0; + if (error) { + code = 2; + } else { + code = 0; + console.log(commandPrefix + " " + binFilePath + " " + uploadObject.base); + } + var resultObject = new uploadResultClass({ + "stdOut": "", + "resultCode": code, + "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(); + }); +} + +function other(request, response) { + console.log("other"); + response.writeHead(200, {"Content-Type": "text/plain"}); + response.end(); +} + + +exports.loadBin = loadBin; +exports.other = other; \ No newline at end of file diff --git a/car_net/stFlashServer/main.js b/car_net/stFlashServer/main.js new file mode 100644 index 00000000000..685490834b0 --- /dev/null +++ b/car_net/stFlashServer/main.js @@ -0,0 +1,71 @@ +/** + * Created by user on 7/11/16. + */ + +var server = require("./server.js"); +var router = require("./router.js"); +var handlers = require("./handlers.js"); + +var handle = {}; +handle["/"] = handlers.other; +handle["/loadBin"] = handlers.loadBin; +handle["/other"] = handlers.other; + + +// UploadR = upRes.UploadResult; +// var res = new UploadR({"error": "test error!"}); +// console.log(res.encode()); +// +// +// var testBack = UploadR.decode(res.encode()); +// console.log(testBack); + +// console.log(process.argv); +server.start(router.route, handle); + +// var http = require("http"); +// +// var global_closure = null; +// +// // nodejs/javascript closures +// http.createServer(function(request, response) { +// // console.log("test"); +// global_closure && global_closure(); +// +// // console.log(request); +// // response.writeHead(200, {"Content-Type": "text/plain"}); +// // response.write("Hello World"); +// +// function closure() { +// console.log(request.toString()); +// } +// global_closure = closure; +// +// //writeToJournal().getDBData().processDBData().sendResponse().commitJournal(); +// function writeToJournal() { +// console.log(request); +// getDBData(processDBData); +// getDBData(function() {}); +// } +// +// function getDBData(callback) { +// db.getData({ id : request.query['id'] }, onDbDataReady); +// var i = 0; +// +// function onDbDataReady(err, someDBData) { +// if (err) { +// return response.error(); +// } +// console.log(i); +// callback(someDBData); +// } +// } +// +// function processDBData(dbData) { +// function sendResponse() { +// +// } +// } +// +// response.end(); +// }).listen(8888); diff --git a/car_net/stFlashServer/proto/carkot.proto b/car_net/stFlashServer/proto/carkot.proto new file mode 100644 index 00000000000..410af522d1c --- /dev/null +++ b/car_net/stFlashServer/proto/carkot.proto @@ -0,0 +1,39 @@ +syntax = "proto3"; +package carkot; + +option java_package = "proto"; +option java_outer_classname = "Carkot"; + +message Upload { + message Method { + enum TYPE { + DFU = 0; + STLINK = 1; + } + // Type of upload method. + TYPE type = 1; + // Upload port. + string port = 2; + // Device address, smth like 8087:0ABA. + string device = 3; + // Additional programmator-specific arguments. + repeated string arguments = 4; + } + // Firmware data. + bytes data = 1; + // Firmware load address (string, to avoid 64-bit woes). + string base = 2; + // Method of firmware upload. + Method method = 3; +} + +message UploadResult { + string stdOut = 1; + string stdErr = 2; + int32 resultCode = 3; +} + +message LogMessage { + string source = 1; + bytes message = 2; +} diff --git a/car_net/stFlashServer/router.js b/car_net/stFlashServer/router.js new file mode 100644 index 00000000000..708db286210 --- /dev/null +++ b/car_net/stFlashServer/router.js @@ -0,0 +1,15 @@ +/** + * Created by user on 7/11/16. + */ +function route(handle, pathname, httpContent, response) { + if (typeof handle[pathname] === 'function') { + handle[pathname](httpContent, response); + } else { + console.log("No request handler found for " + pathname); + response.writeHead(404, {"Content-Type": "text/plain"}); + response.write("404 Not found"); + response.end(); + } +} + +exports.route = route; \ No newline at end of file diff --git a/car_net/stFlashServer/server.js b/car_net/stFlashServer/server.js new file mode 100644 index 00000000000..ba9ce8a704b --- /dev/null +++ b/car_net/stFlashServer/server.js @@ -0,0 +1,25 @@ +/** + * Created by user on 7/11/16. + */ +var http = require("http"); +var url = require("url"); + +function start(route, handlers) { + function onRequest(request, response) { + var pathname = url.parse(request.url).pathname; + var httpContent = []; + request.on("data", function (datas) { + var strDatas = datas.toString(); + for (var i = 0; i < datas.length; ++i) { + httpContent.push(strDatas.charCodeAt(i)); + } + }); + request.on("end", function () { + route(handlers, pathname, httpContent, response); + }); + } + + http.createServer(onRequest).listen(8888); + console.log("Server has started."); +} +exports.start = start; \ No newline at end of file