car_fmw: support smoothing scan, get sonar mode from request; kotstd: IntArray operations
This commit is contained in:
+2
-5
@@ -4,6 +4,7 @@ LIB_DIR=$(PWD)/lib
|
||||
TRANSLATOR_DIR=$(PWD)/../translator
|
||||
KOTSTD_DIR=$(PWD)/../kotstd
|
||||
CAR_HW_DIR=$(PWD)/../car_hw
|
||||
PROTO_DIR=$(PWD)/../proto/protofiles_sources/out
|
||||
|
||||
OS_ARCH=linux-x86_64
|
||||
|
||||
@@ -22,7 +23,6 @@ KT=$(TRANSLATOR_DIR)/build/libs/translator-1.0.jar
|
||||
LD=arm-none-eabi-ld
|
||||
OBJ_COPY=arm-none-eabi-objcopy
|
||||
GDB=arm-none-eabi-gdb
|
||||
PROTOC=$(PWD)/../proto/compiler/build/protoc
|
||||
|
||||
LL=llc-3.6
|
||||
LLINK=llvm-link-3.6
|
||||
@@ -69,15 +69,12 @@ $(BIN_DIR)/kotlib.ll: $(LIB_DIR)/app.ll $(LIB_KOTSTD)
|
||||
$(LIB_KOTSTD):
|
||||
cd $(KOTSTD_DIR) && make
|
||||
|
||||
$(LIB_DIR)/app.ll: $(SRC_DIR)/**/*.kt $(SRC_DIR)/*.kt
|
||||
$(LIB_DIR)/app.ll: $(SRC_DIR)/**/*.kt $(SRC_DIR)/*.kt $(PROTO_DIR)/*.kt
|
||||
$(KT_ALL_DEPS)
|
||||
|
||||
$(KT):
|
||||
cd $(TRANSLATOR_DIR) && ./gradlew jar
|
||||
|
||||
proto:
|
||||
$(PROTOC) -I$(SRC_DIR)/proto --kotlin_out=$(SRC_DIR)/proto_src $(SRC_DIR)/proto/*.proto
|
||||
|
||||
flash: $(CAR_FMW_BIN)
|
||||
$(ST_DIR)/st-flash write $(CAR_FMW_BIN) 0x8000000
|
||||
|
||||
|
||||
+24
-5
@@ -68,19 +68,38 @@ object Control {
|
||||
|
||||
private fun sonarTask() {
|
||||
val request = Reader.readSonar()
|
||||
val size = request.angles.size
|
||||
val angles = request.angles
|
||||
val size = angles.size
|
||||
val attempts = request.attempts
|
||||
|
||||
val distances = IntArray(size)
|
||||
|
||||
var i = 0
|
||||
while (i < size) {
|
||||
distances[i] = Sonar.getSmoothDistance(request.angles[i])
|
||||
i++
|
||||
for (i in 0..(size - 1)) {
|
||||
distances[i] = sonarMeasure(request.smoothing, attempts[i], angles[i], request.windowSize)
|
||||
}
|
||||
|
||||
val response = SonarResponse.BuilderSonarResponse(distances).build()
|
||||
Writer.writeSonar(response)
|
||||
}
|
||||
|
||||
private fun sonarMeasure(smoothing: SonarRequest.Smoothing, attempts: Int, angle: Int, windowSize: Int): Int {
|
||||
val data = IntArray(attempts)
|
||||
|
||||
for (i in 0..(attempts - 1)) {
|
||||
data[i] = Sonar.getSmoothDistance(angle, windowSize)
|
||||
|
||||
if (smoothing.id == SonarRequest.Smoothing.NONE.id && data[i] != -1) {
|
||||
return data[i]
|
||||
}
|
||||
}
|
||||
|
||||
return when (smoothing.id) {
|
||||
SonarRequest.Smoothing.MEAN.id -> data.mean()
|
||||
SonarRequest.Smoothing.MEDIAN.id -> data.median()
|
||||
else -> -1
|
||||
}
|
||||
}
|
||||
|
||||
private fun sendMemoryStats() {
|
||||
val stats = DebugResponseMemoryStats.BuilderDebugResponseMemoryStats(
|
||||
DebugInfo.getDynamicHeapTail(),
|
||||
|
||||
@@ -21,7 +21,7 @@ object Reader {
|
||||
|
||||
fun readSonar(): SonarRequest {
|
||||
val stream = getInputStream()
|
||||
return SonarRequest.BuilderSonarRequest(IntArray(0)).parseFrom(stream).build()
|
||||
return SonarRequest.BuilderSonarRequest(IntArray(0), IntArray(0), 0, SonarRequest.Smoothing.NONE, 0).parseFrom(stream).build()
|
||||
}
|
||||
|
||||
private fun getInputStream(): CodedInputStream {
|
||||
|
||||
@@ -1,14 +1,15 @@
|
||||
|
||||
object Voyager {
|
||||
val MAX_ANGLE: Int = 180 // angle
|
||||
val SEGMENT_SIZE: Int = 30 // centimeter
|
||||
private val MAX_ANGLE: Int = 180 // angle
|
||||
private val SEGMENT_SIZE: Int = 30 // centimeter
|
||||
private var DEFAULT_WINDOW = 10 // angle
|
||||
|
||||
fun run() {
|
||||
while (true) {
|
||||
var distance = Sonar.getSmoothDistance(0)
|
||||
var distance = Sonar.getSmoothDistance(0, DEFAULT_WINDOW)
|
||||
while (distance == -1 || distance > 4 * SEGMENT_SIZE) {
|
||||
Engine.drive(RouteType.FORWARD.id, SEGMENT_SIZE)
|
||||
distance = Sonar.getSmoothDistance(0)
|
||||
distance = Sonar.getSmoothDistance(0, DEFAULT_WINDOW)
|
||||
}
|
||||
|
||||
Engine.drive(RouteType.LEFT.id, 45)
|
||||
|
||||
@@ -2,26 +2,23 @@ external fun car_sonar_init()
|
||||
external fun car_sonar_get_dist(degree: Byte): Short
|
||||
|
||||
object Sonar {
|
||||
private var ATTEMPTS_COUNT = 5
|
||||
private var DEVIATION = 10
|
||||
private var SCAN_STEP = 1
|
||||
|
||||
fun init() {
|
||||
car_sonar_init()
|
||||
}
|
||||
|
||||
fun getDistance(angle: Int): Int {
|
||||
return car_sonar_get_dist(angle.toByte()).toInt()
|
||||
}
|
||||
fun getDistance(angle: Int): Int =
|
||||
car_sonar_get_dist(angle.toByte()).toInt()
|
||||
|
||||
fun getSmoothDistance(angle: Int): Int {
|
||||
fun getSmoothDistance(angle: Int, windowSize: Int): Int {
|
||||
val distance = getDistance(angle)
|
||||
if (distance != -1) {
|
||||
if (distance != -1 || windowSize == 0) {
|
||||
return distance
|
||||
}
|
||||
|
||||
val start = if (angle - DEVIATION < 0) 0 else angle - DEVIATION
|
||||
return getOneOfRange(start, angle + DEVIATION, SCAN_STEP)
|
||||
val start = if (angle - windowSize < 0) 0 else angle - windowSize
|
||||
return getOneOfRange(start, angle + windowSize, SCAN_STEP)
|
||||
}
|
||||
|
||||
fun getOneOfRange(start: Int, stop: Int, step: Int): Int {
|
||||
|
||||
@@ -1,18 +0,0 @@
|
||||
syntax = "proto3";
|
||||
package carkot;
|
||||
|
||||
message DebugRequest {
|
||||
|
||||
Type type = 1;
|
||||
|
||||
enum Type {
|
||||
MEMORY_STATS = 0;
|
||||
}
|
||||
}
|
||||
|
||||
message DebugResponseMemoryStats {
|
||||
int32 heapDynamicTail = 1;
|
||||
int32 heapStaticTail = 2;
|
||||
int32 heapDynamicMaxBytes = 3;
|
||||
int32 heapDynamicTotalBytes = 4;
|
||||
}
|
||||
@@ -1,21 +0,0 @@
|
||||
syntax = "proto3";
|
||||
package carkot;
|
||||
|
||||
option java_package = "proto.car";
|
||||
option java_outer_classname = "Direction";
|
||||
|
||||
message DirectionRequest {
|
||||
enum Command {
|
||||
STOP = 0;
|
||||
FORWARD = 1;
|
||||
BACKWARD = 2;
|
||||
LEFT = 3;
|
||||
RIGHT = 4;
|
||||
}
|
||||
Command command = 1;
|
||||
int32 sid = 2;
|
||||
}
|
||||
|
||||
message DirectionResponse {
|
||||
int32 code = 1;
|
||||
}
|
||||
@@ -1,16 +0,0 @@
|
||||
syntax = "proto3";
|
||||
package carkot;
|
||||
|
||||
message RouteRequest {
|
||||
repeated int32 times = 1;
|
||||
repeated int32 directions = 2;
|
||||
}
|
||||
|
||||
message RouteMetricRequest {
|
||||
repeated int32 distances = 1;
|
||||
repeated int32 directions = 2;
|
||||
}
|
||||
|
||||
message RouteResponse {
|
||||
int32 code = 1;
|
||||
}
|
||||
@@ -1,10 +0,0 @@
|
||||
syntax = "proto3";
|
||||
package carkot;
|
||||
|
||||
message SonarRequest {
|
||||
repeated int32 angles = 1;
|
||||
}
|
||||
|
||||
message SonarResponse {
|
||||
repeated int32 distances = 1;
|
||||
}
|
||||
@@ -1,14 +0,0 @@
|
||||
syntax = "proto3";
|
||||
package carkot;
|
||||
|
||||
message TaskRequest {
|
||||
|
||||
Type type = 1;
|
||||
|
||||
enum Type {
|
||||
DEBUG = 0;
|
||||
ROUTE = 1;
|
||||
SONAR = 2;
|
||||
ROUTE_METRIC = 3;
|
||||
}
|
||||
}
|
||||
@@ -1,388 +0,0 @@
|
||||
class DebugRequest private constructor (var type: DebugRequest.Type) {
|
||||
//========== Properties ===========
|
||||
//enum type = 1
|
||||
|
||||
var errorCode: Int = 0
|
||||
|
||||
//========== Nested enums declarations ===========
|
||||
enum class Type(val id: Int) {
|
||||
MEMORY_STATS (0),
|
||||
Unexpected(1);
|
||||
|
||||
companion object {
|
||||
fun fromIntToType (ord: Int): Type {
|
||||
return when (ord) {
|
||||
0 -> Type.MEMORY_STATS
|
||||
else -> Unexpected
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
//========== Serialization methods ===========
|
||||
fun writeTo (output: CodedOutputStream) {
|
||||
//enum type = 1
|
||||
if (type.id != DebugRequest.Type.fromIntToType(0).id) {
|
||||
output.writeEnum (1, type.id)
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
fun mergeWith (other: DebugRequest) {
|
||||
type = other.type
|
||||
this.errorCode = other.errorCode
|
||||
}
|
||||
|
||||
fun mergeFromWithSize (input: CodedInputStream, expectedSize: Int) {
|
||||
val builder = DebugRequest.BuilderDebugRequest(DebugRequest.Type.fromIntToType(0))
|
||||
mergeWith(builder.parseFromWithSize(input, expectedSize).build())
|
||||
}
|
||||
|
||||
fun mergeFrom (input: CodedInputStream) {
|
||||
val builder = DebugRequest.BuilderDebugRequest(DebugRequest.Type.fromIntToType(0))
|
||||
mergeWith(builder.parseFrom(input).build())
|
||||
}
|
||||
|
||||
//========== Size-related methods ===========
|
||||
fun getSize(fieldNumber: Int): Int {
|
||||
var size = 0
|
||||
if (type != DebugRequest.Type.fromIntToType(0)) {
|
||||
size += WireFormat.getEnumSize(1, type.id)
|
||||
}
|
||||
size += WireFormat.getVarint32Size(size) + WireFormat.getTagSize(fieldNumber, WireType.LENGTH_DELIMITED)
|
||||
return size
|
||||
}
|
||||
|
||||
fun getSizeNoTag(): Int {
|
||||
var size = 0
|
||||
if (type != DebugRequest.Type.fromIntToType(0)) {
|
||||
size += WireFormat.getEnumSize(1, type.id)
|
||||
}
|
||||
return size
|
||||
}
|
||||
|
||||
//========== Builder ===========
|
||||
class BuilderDebugRequest constructor (var type: DebugRequest.Type) {
|
||||
//========== Properties ===========
|
||||
//enum type = 1
|
||||
fun setType(value: DebugRequest.Type): DebugRequest.BuilderDebugRequest {
|
||||
type = value
|
||||
return this
|
||||
}
|
||||
|
||||
var errorCode: Int = 0
|
||||
|
||||
//========== Serialization methods ===========
|
||||
fun writeTo (output: CodedOutputStream) {
|
||||
//enum type = 1
|
||||
if (type.id != DebugRequest.Type.fromIntToType(0).id) {
|
||||
output.writeEnum (1, type.id)
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
//========== Mutating methods ===========
|
||||
fun build(): DebugRequest {
|
||||
val res = DebugRequest(type)
|
||||
res.errorCode = errorCode
|
||||
return res
|
||||
}
|
||||
|
||||
fun parseFieldFrom(input: CodedInputStream): Boolean {
|
||||
if (input.isAtEnd()) { return false }
|
||||
val tag = input.readInt32NoTag()
|
||||
if (tag == 0) { return false }
|
||||
val fieldNumber = WireFormat.getTagFieldNumber(tag)
|
||||
val wireType = WireFormat.getTagWireType(tag)
|
||||
when(fieldNumber) {
|
||||
1 -> {
|
||||
if (wireType.id != WireType.VARINT.id) {
|
||||
errorCode = 1
|
||||
return false
|
||||
}
|
||||
type = DebugRequest.Type.fromIntToType(input.readEnumNoTag())
|
||||
}
|
||||
else -> errorCode = 4
|
||||
}
|
||||
return true
|
||||
}
|
||||
|
||||
fun parseFromWithSize(input: CodedInputStream, expectedSize: Int): DebugRequest.BuilderDebugRequest {
|
||||
while(getSizeNoTag() < expectedSize) {
|
||||
parseFieldFrom(input)
|
||||
}
|
||||
if (getSizeNoTag() > expectedSize) { errorCode = 2 }
|
||||
return this
|
||||
}
|
||||
|
||||
fun parseFrom(input: CodedInputStream): DebugRequest.BuilderDebugRequest {
|
||||
while(parseFieldFrom(input)) {}
|
||||
return this
|
||||
}
|
||||
|
||||
//========== Size-related methods ===========
|
||||
fun getSize(fieldNumber: Int): Int {
|
||||
var size = 0
|
||||
if (type != DebugRequest.Type.fromIntToType(0)) {
|
||||
size += WireFormat.getEnumSize(1, type.id)
|
||||
}
|
||||
size += WireFormat.getVarint32Size(size) + WireFormat.getTagSize(fieldNumber, WireType.LENGTH_DELIMITED)
|
||||
return size
|
||||
}
|
||||
|
||||
fun getSizeNoTag(): Int {
|
||||
var size = 0
|
||||
if (type != DebugRequest.Type.fromIntToType(0)) {
|
||||
size += WireFormat.getEnumSize(1, type.id)
|
||||
}
|
||||
return size
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
class DebugResponseMemoryStats private constructor (var heapDynamicTail: Int, var heapStaticTail: Int, var heapDynamicMaxBytes: Int, var heapDynamicTotalBytes: Int) {
|
||||
//========== Properties ===========
|
||||
//int32 heapDynamicTail = 1
|
||||
|
||||
//int32 heapStaticTail = 2
|
||||
|
||||
//int32 heapDynamicMaxBytes = 3
|
||||
|
||||
//int32 heapDynamicTotalBytes = 4
|
||||
|
||||
var errorCode: Int = 0
|
||||
|
||||
//========== Serialization methods ===========
|
||||
fun writeTo (output: CodedOutputStream) {
|
||||
//int32 heapDynamicTail = 1
|
||||
if (heapDynamicTail != 0) {
|
||||
output.writeInt32 (1, heapDynamicTail)
|
||||
}
|
||||
|
||||
//int32 heapStaticTail = 2
|
||||
if (heapStaticTail != 0) {
|
||||
output.writeInt32 (2, heapStaticTail)
|
||||
}
|
||||
|
||||
//int32 heapDynamicMaxBytes = 3
|
||||
if (heapDynamicMaxBytes != 0) {
|
||||
output.writeInt32 (3, heapDynamicMaxBytes)
|
||||
}
|
||||
|
||||
//int32 heapDynamicTotalBytes = 4
|
||||
if (heapDynamicTotalBytes != 0) {
|
||||
output.writeInt32 (4, heapDynamicTotalBytes)
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
fun mergeWith (other: DebugResponseMemoryStats) {
|
||||
heapDynamicTail = other.heapDynamicTail
|
||||
heapStaticTail = other.heapStaticTail
|
||||
heapDynamicMaxBytes = other.heapDynamicMaxBytes
|
||||
heapDynamicTotalBytes = other.heapDynamicTotalBytes
|
||||
this.errorCode = other.errorCode
|
||||
}
|
||||
|
||||
fun mergeFromWithSize (input: CodedInputStream, expectedSize: Int) {
|
||||
val builder = DebugResponseMemoryStats.BuilderDebugResponseMemoryStats(0, 0, 0, 0)
|
||||
mergeWith(builder.parseFromWithSize(input, expectedSize).build())
|
||||
}
|
||||
|
||||
fun mergeFrom (input: CodedInputStream) {
|
||||
val builder = DebugResponseMemoryStats.BuilderDebugResponseMemoryStats(0, 0, 0, 0)
|
||||
mergeWith(builder.parseFrom(input).build())
|
||||
}
|
||||
|
||||
//========== Size-related methods ===========
|
||||
fun getSize(fieldNumber: Int): Int {
|
||||
var size = 0
|
||||
if (heapDynamicTail != 0) {
|
||||
size += WireFormat.getInt32Size(1, heapDynamicTail)
|
||||
}
|
||||
if (heapStaticTail != 0) {
|
||||
size += WireFormat.getInt32Size(2, heapStaticTail)
|
||||
}
|
||||
if (heapDynamicMaxBytes != 0) {
|
||||
size += WireFormat.getInt32Size(3, heapDynamicMaxBytes)
|
||||
}
|
||||
if (heapDynamicTotalBytes != 0) {
|
||||
size += WireFormat.getInt32Size(4, heapDynamicTotalBytes)
|
||||
}
|
||||
size += WireFormat.getVarint32Size(size) + WireFormat.getTagSize(fieldNumber, WireType.LENGTH_DELIMITED)
|
||||
return size
|
||||
}
|
||||
|
||||
fun getSizeNoTag(): Int {
|
||||
var size = 0
|
||||
if (heapDynamicTail != 0) {
|
||||
size += WireFormat.getInt32Size(1, heapDynamicTail)
|
||||
}
|
||||
if (heapStaticTail != 0) {
|
||||
size += WireFormat.getInt32Size(2, heapStaticTail)
|
||||
}
|
||||
if (heapDynamicMaxBytes != 0) {
|
||||
size += WireFormat.getInt32Size(3, heapDynamicMaxBytes)
|
||||
}
|
||||
if (heapDynamicTotalBytes != 0) {
|
||||
size += WireFormat.getInt32Size(4, heapDynamicTotalBytes)
|
||||
}
|
||||
return size
|
||||
}
|
||||
|
||||
//========== Builder ===========
|
||||
class BuilderDebugResponseMemoryStats constructor (var heapDynamicTail: Int, var heapStaticTail: Int, var heapDynamicMaxBytes: Int, var heapDynamicTotalBytes: Int) {
|
||||
//========== Properties ===========
|
||||
//int32 heapDynamicTail = 1
|
||||
fun setHeapDynamicTail(value: Int): DebugResponseMemoryStats.BuilderDebugResponseMemoryStats {
|
||||
heapDynamicTail = value
|
||||
return this
|
||||
}
|
||||
|
||||
//int32 heapStaticTail = 2
|
||||
fun setHeapStaticTail(value: Int): DebugResponseMemoryStats.BuilderDebugResponseMemoryStats {
|
||||
heapStaticTail = value
|
||||
return this
|
||||
}
|
||||
|
||||
//int32 heapDynamicMaxBytes = 3
|
||||
fun setHeapDynamicMaxBytes(value: Int): DebugResponseMemoryStats.BuilderDebugResponseMemoryStats {
|
||||
heapDynamicMaxBytes = value
|
||||
return this
|
||||
}
|
||||
|
||||
//int32 heapDynamicTotalBytes = 4
|
||||
fun setHeapDynamicTotalBytes(value: Int): DebugResponseMemoryStats.BuilderDebugResponseMemoryStats {
|
||||
heapDynamicTotalBytes = value
|
||||
return this
|
||||
}
|
||||
|
||||
var errorCode: Int = 0
|
||||
|
||||
//========== Serialization methods ===========
|
||||
fun writeTo (output: CodedOutputStream) {
|
||||
//int32 heapDynamicTail = 1
|
||||
if (heapDynamicTail != 0) {
|
||||
output.writeInt32 (1, heapDynamicTail)
|
||||
}
|
||||
|
||||
//int32 heapStaticTail = 2
|
||||
if (heapStaticTail != 0) {
|
||||
output.writeInt32 (2, heapStaticTail)
|
||||
}
|
||||
|
||||
//int32 heapDynamicMaxBytes = 3
|
||||
if (heapDynamicMaxBytes != 0) {
|
||||
output.writeInt32 (3, heapDynamicMaxBytes)
|
||||
}
|
||||
|
||||
//int32 heapDynamicTotalBytes = 4
|
||||
if (heapDynamicTotalBytes != 0) {
|
||||
output.writeInt32 (4, heapDynamicTotalBytes)
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
//========== Mutating methods ===========
|
||||
fun build(): DebugResponseMemoryStats {
|
||||
val res = DebugResponseMemoryStats(heapDynamicTail, heapStaticTail, heapDynamicMaxBytes, heapDynamicTotalBytes)
|
||||
res.errorCode = errorCode
|
||||
return res
|
||||
}
|
||||
|
||||
fun parseFieldFrom(input: CodedInputStream): Boolean {
|
||||
if (input.isAtEnd()) { return false }
|
||||
val tag = input.readInt32NoTag()
|
||||
if (tag == 0) { return false }
|
||||
val fieldNumber = WireFormat.getTagFieldNumber(tag)
|
||||
val wireType = WireFormat.getTagWireType(tag)
|
||||
when(fieldNumber) {
|
||||
1 -> {
|
||||
if (wireType.id != WireType.VARINT.id) {
|
||||
errorCode = 1
|
||||
return false
|
||||
}
|
||||
heapDynamicTail = input.readInt32NoTag()
|
||||
}
|
||||
2 -> {
|
||||
if (wireType.id != WireType.VARINT.id) {
|
||||
errorCode = 1
|
||||
return false
|
||||
}
|
||||
heapStaticTail = input.readInt32NoTag()
|
||||
}
|
||||
3 -> {
|
||||
if (wireType.id != WireType.VARINT.id) {
|
||||
errorCode = 1
|
||||
return false
|
||||
}
|
||||
heapDynamicMaxBytes = input.readInt32NoTag()
|
||||
}
|
||||
4 -> {
|
||||
if (wireType.id != WireType.VARINT.id) {
|
||||
errorCode = 1
|
||||
return false
|
||||
}
|
||||
heapDynamicTotalBytes = input.readInt32NoTag()
|
||||
}
|
||||
else -> errorCode = 4
|
||||
}
|
||||
return true
|
||||
}
|
||||
|
||||
fun parseFromWithSize(input: CodedInputStream, expectedSize: Int): DebugResponseMemoryStats.BuilderDebugResponseMemoryStats {
|
||||
while(getSizeNoTag() < expectedSize) {
|
||||
parseFieldFrom(input)
|
||||
}
|
||||
if (getSizeNoTag() > expectedSize) { errorCode = 2 }
|
||||
return this
|
||||
}
|
||||
|
||||
fun parseFrom(input: CodedInputStream): DebugResponseMemoryStats.BuilderDebugResponseMemoryStats {
|
||||
while(parseFieldFrom(input)) {}
|
||||
return this
|
||||
}
|
||||
|
||||
//========== Size-related methods ===========
|
||||
fun getSize(fieldNumber: Int): Int {
|
||||
var size = 0
|
||||
if (heapDynamicTail != 0) {
|
||||
size += WireFormat.getInt32Size(1, heapDynamicTail)
|
||||
}
|
||||
if (heapStaticTail != 0) {
|
||||
size += WireFormat.getInt32Size(2, heapStaticTail)
|
||||
}
|
||||
if (heapDynamicMaxBytes != 0) {
|
||||
size += WireFormat.getInt32Size(3, heapDynamicMaxBytes)
|
||||
}
|
||||
if (heapDynamicTotalBytes != 0) {
|
||||
size += WireFormat.getInt32Size(4, heapDynamicTotalBytes)
|
||||
}
|
||||
size += WireFormat.getVarint32Size(size) + WireFormat.getTagSize(fieldNumber, WireType.LENGTH_DELIMITED)
|
||||
return size
|
||||
}
|
||||
|
||||
fun getSizeNoTag(): Int {
|
||||
var size = 0
|
||||
if (heapDynamicTail != 0) {
|
||||
size += WireFormat.getInt32Size(1, heapDynamicTail)
|
||||
}
|
||||
if (heapStaticTail != 0) {
|
||||
size += WireFormat.getInt32Size(2, heapStaticTail)
|
||||
}
|
||||
if (heapDynamicMaxBytes != 0) {
|
||||
size += WireFormat.getInt32Size(3, heapDynamicMaxBytes)
|
||||
}
|
||||
if (heapDynamicTotalBytes != 0) {
|
||||
size += WireFormat.getInt32Size(4, heapDynamicTotalBytes)
|
||||
}
|
||||
return size
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -1,320 +0,0 @@
|
||||
class DirectionRequest private constructor (var command: DirectionRequest.Command, var sid: Int) {
|
||||
//========== Properties ===========
|
||||
//enum command = 1
|
||||
|
||||
//int32 sid = 2
|
||||
|
||||
var errorCode: Int = 0
|
||||
|
||||
//========== Nested enums declarations ===========
|
||||
enum class Command(val id: Int) {
|
||||
STOP (0),
|
||||
FORWARD (1),
|
||||
BACKWARD (2),
|
||||
LEFT (3),
|
||||
RIGHT (4),
|
||||
Unexpected(5);
|
||||
|
||||
companion object {
|
||||
fun fromIntToCommand (ord: Int): Command {
|
||||
return when (ord) {
|
||||
0 -> Command.STOP
|
||||
1 -> Command.FORWARD
|
||||
2 -> Command.BACKWARD
|
||||
3 -> Command.LEFT
|
||||
4 -> Command.RIGHT
|
||||
else -> Unexpected
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
//========== Serialization methods ===========
|
||||
fun writeTo (output: CodedOutputStream) {
|
||||
//enum command = 1
|
||||
if (command.id != DirectionRequest.Command.fromIntToCommand(0).id) {
|
||||
output.writeEnum (1, command.id)
|
||||
}
|
||||
|
||||
//int32 sid = 2
|
||||
if (sid != 0) {
|
||||
output.writeInt32 (2, sid)
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
fun mergeWith (other: DirectionRequest) {
|
||||
command = other.command
|
||||
sid = other.sid
|
||||
this.errorCode = other.errorCode
|
||||
}
|
||||
|
||||
fun mergeFromWithSize (input: CodedInputStream, expectedSize: Int) {
|
||||
val builder = DirectionRequest.BuilderDirectionRequest(DirectionRequest.Command.fromIntToCommand(0), 0)
|
||||
mergeWith(builder.parseFromWithSize(input, expectedSize).build())
|
||||
}
|
||||
|
||||
fun mergeFrom (input: CodedInputStream) {
|
||||
val builder = DirectionRequest.BuilderDirectionRequest(DirectionRequest.Command.fromIntToCommand(0), 0)
|
||||
mergeWith(builder.parseFrom(input).build())
|
||||
}
|
||||
|
||||
//========== Size-related methods ===========
|
||||
fun getSize(fieldNumber: Int): Int {
|
||||
var size = 0
|
||||
if (command != DirectionRequest.Command.fromIntToCommand(0)) {
|
||||
size += WireFormat.getEnumSize(1, command.id)
|
||||
}
|
||||
if (sid != 0) {
|
||||
size += WireFormat.getInt32Size(2, sid)
|
||||
}
|
||||
size += WireFormat.getVarint32Size(size) + WireFormat.getTagSize(fieldNumber, WireType.LENGTH_DELIMITED)
|
||||
return size
|
||||
}
|
||||
|
||||
fun getSizeNoTag(): Int {
|
||||
var size = 0
|
||||
if (command != DirectionRequest.Command.fromIntToCommand(0)) {
|
||||
size += WireFormat.getEnumSize(1, command.id)
|
||||
}
|
||||
if (sid != 0) {
|
||||
size += WireFormat.getInt32Size(2, sid)
|
||||
}
|
||||
return size
|
||||
}
|
||||
|
||||
//========== Builder ===========
|
||||
class BuilderDirectionRequest constructor (var command: DirectionRequest.Command, var sid: Int) {
|
||||
//========== Properties ===========
|
||||
//enum command = 1
|
||||
fun setCommand(value: DirectionRequest.Command): DirectionRequest.BuilderDirectionRequest {
|
||||
command = value
|
||||
return this
|
||||
}
|
||||
|
||||
//int32 sid = 2
|
||||
fun setSid(value: Int): DirectionRequest.BuilderDirectionRequest {
|
||||
sid = value
|
||||
return this
|
||||
}
|
||||
|
||||
var errorCode: Int = 0
|
||||
|
||||
//========== Serialization methods ===========
|
||||
fun writeTo (output: CodedOutputStream) {
|
||||
//enum command = 1
|
||||
if (command.id != DirectionRequest.Command.fromIntToCommand(0).id) {
|
||||
output.writeEnum (1, command.id)
|
||||
}
|
||||
|
||||
//int32 sid = 2
|
||||
if (sid != 0) {
|
||||
output.writeInt32 (2, sid)
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
//========== Mutating methods ===========
|
||||
fun build(): DirectionRequest {
|
||||
val res = DirectionRequest(command, sid)
|
||||
res.errorCode = errorCode
|
||||
return res
|
||||
}
|
||||
|
||||
fun parseFieldFrom(input: CodedInputStream): Boolean {
|
||||
if (input.isAtEnd()) { return false }
|
||||
val tag = input.readInt32NoTag()
|
||||
if (tag == 0) { return false }
|
||||
val fieldNumber = WireFormat.getTagFieldNumber(tag)
|
||||
val wireType = WireFormat.getTagWireType(tag)
|
||||
when(fieldNumber) {
|
||||
1 -> {
|
||||
if (wireType.id != WireType.VARINT.id) {
|
||||
errorCode = 1
|
||||
return false
|
||||
}
|
||||
command = DirectionRequest.Command.fromIntToCommand(input.readEnumNoTag())
|
||||
}
|
||||
2 -> {
|
||||
if (wireType.id != WireType.VARINT.id) {
|
||||
errorCode = 1
|
||||
return false
|
||||
}
|
||||
sid = input.readInt32NoTag()
|
||||
}
|
||||
else -> errorCode = 4
|
||||
}
|
||||
return true
|
||||
}
|
||||
|
||||
fun parseFromWithSize(input: CodedInputStream, expectedSize: Int): DirectionRequest.BuilderDirectionRequest {
|
||||
while(getSizeNoTag() < expectedSize) {
|
||||
parseFieldFrom(input)
|
||||
}
|
||||
if (getSizeNoTag() > expectedSize) { errorCode = 2 }
|
||||
return this
|
||||
}
|
||||
|
||||
fun parseFrom(input: CodedInputStream): DirectionRequest.BuilderDirectionRequest {
|
||||
while(parseFieldFrom(input)) {}
|
||||
return this
|
||||
}
|
||||
|
||||
//========== Size-related methods ===========
|
||||
fun getSize(fieldNumber: Int): Int {
|
||||
var size = 0
|
||||
if (command != DirectionRequest.Command.fromIntToCommand(0)) {
|
||||
size += WireFormat.getEnumSize(1, command.id)
|
||||
}
|
||||
if (sid != 0) {
|
||||
size += WireFormat.getInt32Size(2, sid)
|
||||
}
|
||||
size += WireFormat.getVarint32Size(size) + WireFormat.getTagSize(fieldNumber, WireType.LENGTH_DELIMITED)
|
||||
return size
|
||||
}
|
||||
|
||||
fun getSizeNoTag(): Int {
|
||||
var size = 0
|
||||
if (command != DirectionRequest.Command.fromIntToCommand(0)) {
|
||||
size += WireFormat.getEnumSize(1, command.id)
|
||||
}
|
||||
if (sid != 0) {
|
||||
size += WireFormat.getInt32Size(2, sid)
|
||||
}
|
||||
return size
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
class DirectionResponse private constructor (var code: Int) {
|
||||
//========== Properties ===========
|
||||
//int32 code = 1
|
||||
|
||||
var errorCode: Int = 0
|
||||
|
||||
//========== Serialization methods ===========
|
||||
fun writeTo (output: CodedOutputStream) {
|
||||
//int32 code = 1
|
||||
if (code != 0) {
|
||||
output.writeInt32 (1, code)
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
fun mergeWith (other: DirectionResponse) {
|
||||
code = other.code
|
||||
this.errorCode = other.errorCode
|
||||
}
|
||||
|
||||
fun mergeFromWithSize (input: CodedInputStream, expectedSize: Int) {
|
||||
val builder = DirectionResponse.BuilderDirectionResponse(0)
|
||||
mergeWith(builder.parseFromWithSize(input, expectedSize).build())
|
||||
}
|
||||
|
||||
fun mergeFrom (input: CodedInputStream) {
|
||||
val builder = DirectionResponse.BuilderDirectionResponse(0)
|
||||
mergeWith(builder.parseFrom(input).build())
|
||||
}
|
||||
|
||||
//========== Size-related methods ===========
|
||||
fun getSize(fieldNumber: Int): Int {
|
||||
var size = 0
|
||||
if (code != 0) {
|
||||
size += WireFormat.getInt32Size(1, code)
|
||||
}
|
||||
size += WireFormat.getVarint32Size(size) + WireFormat.getTagSize(fieldNumber, WireType.LENGTH_DELIMITED)
|
||||
return size
|
||||
}
|
||||
|
||||
fun getSizeNoTag(): Int {
|
||||
var size = 0
|
||||
if (code != 0) {
|
||||
size += WireFormat.getInt32Size(1, code)
|
||||
}
|
||||
return size
|
||||
}
|
||||
|
||||
//========== Builder ===========
|
||||
class BuilderDirectionResponse constructor (var code: Int) {
|
||||
//========== Properties ===========
|
||||
//int32 code = 1
|
||||
fun setCode(value: Int): DirectionResponse.BuilderDirectionResponse {
|
||||
code = value
|
||||
return this
|
||||
}
|
||||
|
||||
var errorCode: Int = 0
|
||||
|
||||
//========== Serialization methods ===========
|
||||
fun writeTo (output: CodedOutputStream) {
|
||||
//int32 code = 1
|
||||
if (code != 0) {
|
||||
output.writeInt32 (1, code)
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
//========== Mutating methods ===========
|
||||
fun build(): DirectionResponse {
|
||||
val res = DirectionResponse(code)
|
||||
res.errorCode = errorCode
|
||||
return res
|
||||
}
|
||||
|
||||
fun parseFieldFrom(input: CodedInputStream): Boolean {
|
||||
if (input.isAtEnd()) { return false }
|
||||
val tag = input.readInt32NoTag()
|
||||
if (tag == 0) { return false }
|
||||
val fieldNumber = WireFormat.getTagFieldNumber(tag)
|
||||
val wireType = WireFormat.getTagWireType(tag)
|
||||
when(fieldNumber) {
|
||||
1 -> {
|
||||
if (wireType.id != WireType.VARINT.id) {
|
||||
errorCode = 1
|
||||
return false
|
||||
}
|
||||
code = input.readInt32NoTag()
|
||||
}
|
||||
else -> errorCode = 4
|
||||
}
|
||||
return true
|
||||
}
|
||||
|
||||
fun parseFromWithSize(input: CodedInputStream, expectedSize: Int): DirectionResponse.BuilderDirectionResponse {
|
||||
while(getSizeNoTag() < expectedSize) {
|
||||
parseFieldFrom(input)
|
||||
}
|
||||
if (getSizeNoTag() > expectedSize) { errorCode = 2 }
|
||||
return this
|
||||
}
|
||||
|
||||
fun parseFrom(input: CodedInputStream): DirectionResponse.BuilderDirectionResponse {
|
||||
while(parseFieldFrom(input)) {}
|
||||
return this
|
||||
}
|
||||
|
||||
//========== Size-related methods ===========
|
||||
fun getSize(fieldNumber: Int): Int {
|
||||
var size = 0
|
||||
if (code != 0) {
|
||||
size += WireFormat.getInt32Size(1, code)
|
||||
}
|
||||
size += WireFormat.getVarint32Size(size) + WireFormat.getTagSize(fieldNumber, WireType.LENGTH_DELIMITED)
|
||||
return size
|
||||
}
|
||||
|
||||
fun getSizeNoTag(): Int {
|
||||
var size = 0
|
||||
if (code != 0) {
|
||||
size += WireFormat.getInt32Size(1, code)
|
||||
}
|
||||
return size
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -1,902 +0,0 @@
|
||||
class RouteRequest private constructor (var times: IntArray, var directions: IntArray) {
|
||||
//========== Properties ===========
|
||||
//repeated int32 times = 1
|
||||
|
||||
//repeated int32 directions = 2
|
||||
|
||||
var errorCode: Int = 0
|
||||
|
||||
//========== Serialization methods ===========
|
||||
fun writeTo (output: CodedOutputStream) {
|
||||
//repeated int32 times = 1
|
||||
if (times.size > 0) {
|
||||
output.writeTag(1, WireType.LENGTH_DELIMITED)
|
||||
var arrayByteSize = 0
|
||||
|
||||
if (times.size != 0) {
|
||||
do {
|
||||
var arraySize = 0
|
||||
var i = 0
|
||||
while (i < times.size) {
|
||||
arraySize += WireFormat.getInt32SizeNoTag(times[i])
|
||||
i += 1
|
||||
}
|
||||
arrayByteSize += arraySize
|
||||
} while(false)
|
||||
}
|
||||
output.writeInt32NoTag(arrayByteSize)
|
||||
|
||||
do {
|
||||
var i = 0
|
||||
while (i < times.size) {
|
||||
output.writeInt32NoTag (times[i])
|
||||
i += 1
|
||||
}
|
||||
} while(false)
|
||||
}
|
||||
|
||||
//repeated int32 directions = 2
|
||||
if (directions.size > 0) {
|
||||
output.writeTag(2, WireType.LENGTH_DELIMITED)
|
||||
var arrayByteSize = 0
|
||||
|
||||
if (directions.size != 0) {
|
||||
do {
|
||||
var arraySize = 0
|
||||
var i = 0
|
||||
while (i < directions.size) {
|
||||
arraySize += WireFormat.getInt32SizeNoTag(directions[i])
|
||||
i += 1
|
||||
}
|
||||
arrayByteSize += arraySize
|
||||
} while(false)
|
||||
}
|
||||
output.writeInt32NoTag(arrayByteSize)
|
||||
|
||||
do {
|
||||
var i = 0
|
||||
while (i < directions.size) {
|
||||
output.writeInt32NoTag (directions[i])
|
||||
i += 1
|
||||
}
|
||||
} while(false)
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
fun mergeWith (other: RouteRequest) {
|
||||
times = times.plus((other.times))
|
||||
directions = directions.plus((other.directions))
|
||||
this.errorCode = other.errorCode
|
||||
}
|
||||
|
||||
fun mergeFromWithSize (input: CodedInputStream, expectedSize: Int) {
|
||||
val builder = RouteRequest.BuilderRouteRequest(IntArray(0), IntArray(0))
|
||||
mergeWith(builder.parseFromWithSize(input, expectedSize).build())
|
||||
}
|
||||
|
||||
fun mergeFrom (input: CodedInputStream) {
|
||||
val builder = RouteRequest.BuilderRouteRequest(IntArray(0), IntArray(0))
|
||||
mergeWith(builder.parseFrom(input).build())
|
||||
}
|
||||
|
||||
//========== Size-related methods ===========
|
||||
fun getSize(fieldNumber: Int): Int {
|
||||
var size = 0
|
||||
if (times.size != 0) {
|
||||
do {
|
||||
var arraySize = 0
|
||||
size += WireFormat.getTagSize(1, WireType.LENGTH_DELIMITED)
|
||||
var i = 0
|
||||
while (i < times.size) {
|
||||
arraySize += WireFormat.getInt32SizeNoTag(times[i])
|
||||
i += 1
|
||||
}
|
||||
size += arraySize
|
||||
size += WireFormat.getInt32SizeNoTag(arraySize)
|
||||
} while(false)
|
||||
}
|
||||
if (directions.size != 0) {
|
||||
do {
|
||||
var arraySize = 0
|
||||
size += WireFormat.getTagSize(2, WireType.LENGTH_DELIMITED)
|
||||
var i = 0
|
||||
while (i < directions.size) {
|
||||
arraySize += WireFormat.getInt32SizeNoTag(directions[i])
|
||||
i += 1
|
||||
}
|
||||
size += arraySize
|
||||
size += WireFormat.getInt32SizeNoTag(arraySize)
|
||||
} while(false)
|
||||
}
|
||||
size += WireFormat.getVarint32Size(size) + WireFormat.getTagSize(fieldNumber, WireType.LENGTH_DELIMITED)
|
||||
return size
|
||||
}
|
||||
|
||||
fun getSizeNoTag(): Int {
|
||||
var size = 0
|
||||
if (times.size != 0) {
|
||||
do {
|
||||
var arraySize = 0
|
||||
size += WireFormat.getTagSize(1, WireType.LENGTH_DELIMITED)
|
||||
var i = 0
|
||||
while (i < times.size) {
|
||||
arraySize += WireFormat.getInt32SizeNoTag(times[i])
|
||||
i += 1
|
||||
}
|
||||
size += arraySize
|
||||
size += WireFormat.getInt32SizeNoTag(arraySize)
|
||||
} while(false)
|
||||
}
|
||||
if (directions.size != 0) {
|
||||
do {
|
||||
var arraySize = 0
|
||||
size += WireFormat.getTagSize(2, WireType.LENGTH_DELIMITED)
|
||||
var i = 0
|
||||
while (i < directions.size) {
|
||||
arraySize += WireFormat.getInt32SizeNoTag(directions[i])
|
||||
i += 1
|
||||
}
|
||||
size += arraySize
|
||||
size += WireFormat.getInt32SizeNoTag(arraySize)
|
||||
} while(false)
|
||||
}
|
||||
return size
|
||||
}
|
||||
|
||||
//========== Builder ===========
|
||||
class BuilderRouteRequest constructor (var times: IntArray, var directions: IntArray) {
|
||||
//========== Properties ===========
|
||||
//repeated int32 times = 1
|
||||
fun setTimes(value: IntArray): RouteRequest.BuilderRouteRequest {
|
||||
times = value
|
||||
return this
|
||||
}
|
||||
fun settimesByIndex(index: Int, value: Int): RouteRequest.BuilderRouteRequest {
|
||||
times[index] = value
|
||||
return this
|
||||
}
|
||||
|
||||
//repeated int32 directions = 2
|
||||
fun setDirections(value: IntArray): RouteRequest.BuilderRouteRequest {
|
||||
directions = value
|
||||
return this
|
||||
}
|
||||
fun setdirectionsByIndex(index: Int, value: Int): RouteRequest.BuilderRouteRequest {
|
||||
directions[index] = value
|
||||
return this
|
||||
}
|
||||
|
||||
var errorCode: Int = 0
|
||||
|
||||
//========== Serialization methods ===========
|
||||
fun writeTo (output: CodedOutputStream) {
|
||||
//repeated int32 times = 1
|
||||
if (times.size > 0) {
|
||||
output.writeTag(1, WireType.LENGTH_DELIMITED)
|
||||
var arrayByteSize = 0
|
||||
|
||||
if (times.size != 0) {
|
||||
do {
|
||||
var arraySize = 0
|
||||
var i = 0
|
||||
while (i < times.size) {
|
||||
arraySize += WireFormat.getInt32SizeNoTag(times[i])
|
||||
i += 1
|
||||
}
|
||||
arrayByteSize += arraySize
|
||||
} while(false)
|
||||
}
|
||||
output.writeInt32NoTag(arrayByteSize)
|
||||
|
||||
do {
|
||||
var i = 0
|
||||
while (i < times.size) {
|
||||
output.writeInt32NoTag (times[i])
|
||||
i += 1
|
||||
}
|
||||
} while(false)
|
||||
}
|
||||
|
||||
//repeated int32 directions = 2
|
||||
if (directions.size > 0) {
|
||||
output.writeTag(2, WireType.LENGTH_DELIMITED)
|
||||
var arrayByteSize = 0
|
||||
|
||||
if (directions.size != 0) {
|
||||
do {
|
||||
var arraySize = 0
|
||||
var i = 0
|
||||
while (i < directions.size) {
|
||||
arraySize += WireFormat.getInt32SizeNoTag(directions[i])
|
||||
i += 1
|
||||
}
|
||||
arrayByteSize += arraySize
|
||||
} while(false)
|
||||
}
|
||||
output.writeInt32NoTag(arrayByteSize)
|
||||
|
||||
do {
|
||||
var i = 0
|
||||
while (i < directions.size) {
|
||||
output.writeInt32NoTag (directions[i])
|
||||
i += 1
|
||||
}
|
||||
} while(false)
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
//========== Mutating methods ===========
|
||||
fun build(): RouteRequest {
|
||||
val res = RouteRequest(times, directions)
|
||||
res.errorCode = errorCode
|
||||
return res
|
||||
}
|
||||
|
||||
fun parseFieldFrom(input: CodedInputStream): Boolean {
|
||||
if (input.isAtEnd()) { return false }
|
||||
val tag = input.readInt32NoTag()
|
||||
if (tag == 0) { return false }
|
||||
val fieldNumber = WireFormat.getTagFieldNumber(tag)
|
||||
val wireType = WireFormat.getTagWireType(tag)
|
||||
when(fieldNumber) {
|
||||
1 -> {
|
||||
if (wireType.id != WireType.LENGTH_DELIMITED.id) {
|
||||
errorCode = 1
|
||||
return false
|
||||
}
|
||||
val expectedByteSize = input.readInt32NoTag()
|
||||
var readSize = 0
|
||||
var arraySize = 0
|
||||
input.mark()
|
||||
do {
|
||||
var i = 0
|
||||
while(readSize < expectedByteSize) {
|
||||
var tmp = 0
|
||||
tmp = input.readInt32NoTag()
|
||||
arraySize += 1
|
||||
readSize += WireFormat.getInt32SizeNoTag(tmp)
|
||||
}
|
||||
} while (false)
|
||||
var newArray = IntArray(arraySize)
|
||||
input.reset()
|
||||
do {
|
||||
var i = 0
|
||||
while(i < arraySize) {
|
||||
newArray[i] = input.readInt32NoTag()
|
||||
i += 1}
|
||||
times = newArray
|
||||
} while (false)
|
||||
}
|
||||
2 -> {
|
||||
if (wireType.id != WireType.LENGTH_DELIMITED.id) {
|
||||
errorCode = 1
|
||||
return false
|
||||
}
|
||||
val expectedByteSize = input.readInt32NoTag()
|
||||
var readSize = 0
|
||||
var arraySize = 0
|
||||
input.mark()
|
||||
do {
|
||||
var i = 0
|
||||
while(readSize < expectedByteSize) {
|
||||
var tmp = 0
|
||||
tmp = input.readInt32NoTag()
|
||||
arraySize += 1
|
||||
readSize += WireFormat.getInt32SizeNoTag(tmp)
|
||||
}
|
||||
} while (false)
|
||||
var newArray = IntArray(arraySize)
|
||||
input.reset()
|
||||
do {
|
||||
var i = 0
|
||||
while(i < arraySize) {
|
||||
newArray[i] = input.readInt32NoTag()
|
||||
i += 1}
|
||||
directions = newArray
|
||||
} while (false)
|
||||
}
|
||||
else -> errorCode = 4
|
||||
}
|
||||
return true
|
||||
}
|
||||
|
||||
fun parseFromWithSize(input: CodedInputStream, expectedSize: Int): RouteRequest.BuilderRouteRequest {
|
||||
while(getSizeNoTag() < expectedSize) {
|
||||
parseFieldFrom(input)
|
||||
}
|
||||
if (getSizeNoTag() > expectedSize) { errorCode = 2 }
|
||||
return this
|
||||
}
|
||||
|
||||
fun parseFrom(input: CodedInputStream): RouteRequest.BuilderRouteRequest {
|
||||
while(parseFieldFrom(input)) {}
|
||||
return this
|
||||
}
|
||||
|
||||
//========== Size-related methods ===========
|
||||
fun getSize(fieldNumber: Int): Int {
|
||||
var size = 0
|
||||
if (times.size != 0) {
|
||||
do {
|
||||
var arraySize = 0
|
||||
size += WireFormat.getTagSize(1, WireType.LENGTH_DELIMITED)
|
||||
var i = 0
|
||||
while (i < times.size) {
|
||||
arraySize += WireFormat.getInt32SizeNoTag(times[i])
|
||||
i += 1
|
||||
}
|
||||
size += arraySize
|
||||
size += WireFormat.getInt32SizeNoTag(arraySize)
|
||||
} while(false)
|
||||
}
|
||||
if (directions.size != 0) {
|
||||
do {
|
||||
var arraySize = 0
|
||||
size += WireFormat.getTagSize(2, WireType.LENGTH_DELIMITED)
|
||||
var i = 0
|
||||
while (i < directions.size) {
|
||||
arraySize += WireFormat.getInt32SizeNoTag(directions[i])
|
||||
i += 1
|
||||
}
|
||||
size += arraySize
|
||||
size += WireFormat.getInt32SizeNoTag(arraySize)
|
||||
} while(false)
|
||||
}
|
||||
size += WireFormat.getVarint32Size(size) + WireFormat.getTagSize(fieldNumber, WireType.LENGTH_DELIMITED)
|
||||
return size
|
||||
}
|
||||
|
||||
fun getSizeNoTag(): Int {
|
||||
var size = 0
|
||||
if (times.size != 0) {
|
||||
do {
|
||||
var arraySize = 0
|
||||
size += WireFormat.getTagSize(1, WireType.LENGTH_DELIMITED)
|
||||
var i = 0
|
||||
while (i < times.size) {
|
||||
arraySize += WireFormat.getInt32SizeNoTag(times[i])
|
||||
i += 1
|
||||
}
|
||||
size += arraySize
|
||||
size += WireFormat.getInt32SizeNoTag(arraySize)
|
||||
} while(false)
|
||||
}
|
||||
if (directions.size != 0) {
|
||||
do {
|
||||
var arraySize = 0
|
||||
size += WireFormat.getTagSize(2, WireType.LENGTH_DELIMITED)
|
||||
var i = 0
|
||||
while (i < directions.size) {
|
||||
arraySize += WireFormat.getInt32SizeNoTag(directions[i])
|
||||
i += 1
|
||||
}
|
||||
size += arraySize
|
||||
size += WireFormat.getInt32SizeNoTag(arraySize)
|
||||
} while(false)
|
||||
}
|
||||
return size
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
class RouteMetricRequest private constructor (var distances: IntArray, var directions: IntArray) {
|
||||
//========== Properties ===========
|
||||
//repeated int32 distances = 1
|
||||
|
||||
//repeated int32 directions = 2
|
||||
|
||||
var errorCode: Int = 0
|
||||
|
||||
//========== Serialization methods ===========
|
||||
fun writeTo (output: CodedOutputStream) {
|
||||
//repeated int32 distances = 1
|
||||
if (distances.size > 0) {
|
||||
output.writeTag(1, WireType.LENGTH_DELIMITED)
|
||||
var arrayByteSize = 0
|
||||
|
||||
if (distances.size != 0) {
|
||||
do {
|
||||
var arraySize = 0
|
||||
var i = 0
|
||||
while (i < distances.size) {
|
||||
arraySize += WireFormat.getInt32SizeNoTag(distances[i])
|
||||
i += 1
|
||||
}
|
||||
arrayByteSize += arraySize
|
||||
} while(false)
|
||||
}
|
||||
output.writeInt32NoTag(arrayByteSize)
|
||||
|
||||
do {
|
||||
var i = 0
|
||||
while (i < distances.size) {
|
||||
output.writeInt32NoTag (distances[i])
|
||||
i += 1
|
||||
}
|
||||
} while(false)
|
||||
}
|
||||
|
||||
//repeated int32 directions = 2
|
||||
if (directions.size > 0) {
|
||||
output.writeTag(2, WireType.LENGTH_DELIMITED)
|
||||
var arrayByteSize = 0
|
||||
|
||||
if (directions.size != 0) {
|
||||
do {
|
||||
var arraySize = 0
|
||||
var i = 0
|
||||
while (i < directions.size) {
|
||||
arraySize += WireFormat.getInt32SizeNoTag(directions[i])
|
||||
i += 1
|
||||
}
|
||||
arrayByteSize += arraySize
|
||||
} while(false)
|
||||
}
|
||||
output.writeInt32NoTag(arrayByteSize)
|
||||
|
||||
do {
|
||||
var i = 0
|
||||
while (i < directions.size) {
|
||||
output.writeInt32NoTag (directions[i])
|
||||
i += 1
|
||||
}
|
||||
} while(false)
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
fun mergeWith (other: RouteMetricRequest) {
|
||||
distances = distances.plus((other.distances))
|
||||
directions = directions.plus((other.directions))
|
||||
this.errorCode = other.errorCode
|
||||
}
|
||||
|
||||
fun mergeFromWithSize (input: CodedInputStream, expectedSize: Int) {
|
||||
val builder = RouteMetricRequest.BuilderRouteMetricRequest(IntArray(0), IntArray(0))
|
||||
mergeWith(builder.parseFromWithSize(input, expectedSize).build())
|
||||
}
|
||||
|
||||
fun mergeFrom (input: CodedInputStream) {
|
||||
val builder = RouteMetricRequest.BuilderRouteMetricRequest(IntArray(0), IntArray(0))
|
||||
mergeWith(builder.parseFrom(input).build())
|
||||
}
|
||||
|
||||
//========== Size-related methods ===========
|
||||
fun getSize(fieldNumber: Int): Int {
|
||||
var size = 0
|
||||
if (distances.size != 0) {
|
||||
do {
|
||||
var arraySize = 0
|
||||
size += WireFormat.getTagSize(1, WireType.LENGTH_DELIMITED)
|
||||
var i = 0
|
||||
while (i < distances.size) {
|
||||
arraySize += WireFormat.getInt32SizeNoTag(distances[i])
|
||||
i += 1
|
||||
}
|
||||
size += arraySize
|
||||
size += WireFormat.getInt32SizeNoTag(arraySize)
|
||||
} while(false)
|
||||
}
|
||||
if (directions.size != 0) {
|
||||
do {
|
||||
var arraySize = 0
|
||||
size += WireFormat.getTagSize(2, WireType.LENGTH_DELIMITED)
|
||||
var i = 0
|
||||
while (i < directions.size) {
|
||||
arraySize += WireFormat.getInt32SizeNoTag(directions[i])
|
||||
i += 1
|
||||
}
|
||||
size += arraySize
|
||||
size += WireFormat.getInt32SizeNoTag(arraySize)
|
||||
} while(false)
|
||||
}
|
||||
size += WireFormat.getVarint32Size(size) + WireFormat.getTagSize(fieldNumber, WireType.LENGTH_DELIMITED)
|
||||
return size
|
||||
}
|
||||
|
||||
fun getSizeNoTag(): Int {
|
||||
var size = 0
|
||||
if (distances.size != 0) {
|
||||
do {
|
||||
var arraySize = 0
|
||||
size += WireFormat.getTagSize(1, WireType.LENGTH_DELIMITED)
|
||||
var i = 0
|
||||
while (i < distances.size) {
|
||||
arraySize += WireFormat.getInt32SizeNoTag(distances[i])
|
||||
i += 1
|
||||
}
|
||||
size += arraySize
|
||||
size += WireFormat.getInt32SizeNoTag(arraySize)
|
||||
} while(false)
|
||||
}
|
||||
if (directions.size != 0) {
|
||||
do {
|
||||
var arraySize = 0
|
||||
size += WireFormat.getTagSize(2, WireType.LENGTH_DELIMITED)
|
||||
var i = 0
|
||||
while (i < directions.size) {
|
||||
arraySize += WireFormat.getInt32SizeNoTag(directions[i])
|
||||
i += 1
|
||||
}
|
||||
size += arraySize
|
||||
size += WireFormat.getInt32SizeNoTag(arraySize)
|
||||
} while(false)
|
||||
}
|
||||
return size
|
||||
}
|
||||
|
||||
//========== Builder ===========
|
||||
class BuilderRouteMetricRequest constructor (var distances: IntArray, var directions: IntArray) {
|
||||
//========== Properties ===========
|
||||
//repeated int32 distances = 1
|
||||
fun setDistances(value: IntArray): RouteMetricRequest.BuilderRouteMetricRequest {
|
||||
distances = value
|
||||
return this
|
||||
}
|
||||
fun setdistancesByIndex(index: Int, value: Int): RouteMetricRequest.BuilderRouteMetricRequest {
|
||||
distances[index] = value
|
||||
return this
|
||||
}
|
||||
|
||||
//repeated int32 directions = 2
|
||||
fun setDirections(value: IntArray): RouteMetricRequest.BuilderRouteMetricRequest {
|
||||
directions = value
|
||||
return this
|
||||
}
|
||||
fun setdirectionsByIndex(index: Int, value: Int): RouteMetricRequest.BuilderRouteMetricRequest {
|
||||
directions[index] = value
|
||||
return this
|
||||
}
|
||||
|
||||
var errorCode: Int = 0
|
||||
|
||||
//========== Serialization methods ===========
|
||||
fun writeTo (output: CodedOutputStream) {
|
||||
//repeated int32 distances = 1
|
||||
if (distances.size > 0) {
|
||||
output.writeTag(1, WireType.LENGTH_DELIMITED)
|
||||
var arrayByteSize = 0
|
||||
|
||||
if (distances.size != 0) {
|
||||
do {
|
||||
var arraySize = 0
|
||||
var i = 0
|
||||
while (i < distances.size) {
|
||||
arraySize += WireFormat.getInt32SizeNoTag(distances[i])
|
||||
i += 1
|
||||
}
|
||||
arrayByteSize += arraySize
|
||||
} while(false)
|
||||
}
|
||||
output.writeInt32NoTag(arrayByteSize)
|
||||
|
||||
do {
|
||||
var i = 0
|
||||
while (i < distances.size) {
|
||||
output.writeInt32NoTag (distances[i])
|
||||
i += 1
|
||||
}
|
||||
} while(false)
|
||||
}
|
||||
|
||||
//repeated int32 directions = 2
|
||||
if (directions.size > 0) {
|
||||
output.writeTag(2, WireType.LENGTH_DELIMITED)
|
||||
var arrayByteSize = 0
|
||||
|
||||
if (directions.size != 0) {
|
||||
do {
|
||||
var arraySize = 0
|
||||
var i = 0
|
||||
while (i < directions.size) {
|
||||
arraySize += WireFormat.getInt32SizeNoTag(directions[i])
|
||||
i += 1
|
||||
}
|
||||
arrayByteSize += arraySize
|
||||
} while(false)
|
||||
}
|
||||
output.writeInt32NoTag(arrayByteSize)
|
||||
|
||||
do {
|
||||
var i = 0
|
||||
while (i < directions.size) {
|
||||
output.writeInt32NoTag (directions[i])
|
||||
i += 1
|
||||
}
|
||||
} while(false)
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
//========== Mutating methods ===========
|
||||
fun build(): RouteMetricRequest {
|
||||
val res = RouteMetricRequest(distances, directions)
|
||||
res.errorCode = errorCode
|
||||
return res
|
||||
}
|
||||
|
||||
fun parseFieldFrom(input: CodedInputStream): Boolean {
|
||||
if (input.isAtEnd()) { return false }
|
||||
val tag = input.readInt32NoTag()
|
||||
if (tag == 0) { return false }
|
||||
val fieldNumber = WireFormat.getTagFieldNumber(tag)
|
||||
val wireType = WireFormat.getTagWireType(tag)
|
||||
when(fieldNumber) {
|
||||
1 -> {
|
||||
if (wireType.id != WireType.LENGTH_DELIMITED.id) {
|
||||
errorCode = 1
|
||||
return false
|
||||
}
|
||||
val expectedByteSize = input.readInt32NoTag()
|
||||
var readSize = 0
|
||||
var arraySize = 0
|
||||
input.mark()
|
||||
do {
|
||||
var i = 0
|
||||
while(readSize < expectedByteSize) {
|
||||
var tmp = 0
|
||||
tmp = input.readInt32NoTag()
|
||||
arraySize += 1
|
||||
readSize += WireFormat.getInt32SizeNoTag(tmp)
|
||||
}
|
||||
} while (false)
|
||||
var newArray = IntArray(arraySize)
|
||||
input.reset()
|
||||
do {
|
||||
var i = 0
|
||||
while(i < arraySize) {
|
||||
newArray[i] = input.readInt32NoTag()
|
||||
i += 1}
|
||||
distances = newArray
|
||||
} while (false)
|
||||
}
|
||||
2 -> {
|
||||
if (wireType.id != WireType.LENGTH_DELIMITED.id) {
|
||||
errorCode = 1
|
||||
return false
|
||||
}
|
||||
val expectedByteSize = input.readInt32NoTag()
|
||||
var readSize = 0
|
||||
var arraySize = 0
|
||||
input.mark()
|
||||
do {
|
||||
var i = 0
|
||||
while(readSize < expectedByteSize) {
|
||||
var tmp = 0
|
||||
tmp = input.readInt32NoTag()
|
||||
arraySize += 1
|
||||
readSize += WireFormat.getInt32SizeNoTag(tmp)
|
||||
}
|
||||
} while (false)
|
||||
var newArray = IntArray(arraySize)
|
||||
input.reset()
|
||||
do {
|
||||
var i = 0
|
||||
while(i < arraySize) {
|
||||
newArray[i] = input.readInt32NoTag()
|
||||
i += 1}
|
||||
directions = newArray
|
||||
} while (false)
|
||||
}
|
||||
else -> errorCode = 4
|
||||
}
|
||||
return true
|
||||
}
|
||||
|
||||
fun parseFromWithSize(input: CodedInputStream, expectedSize: Int): RouteMetricRequest.BuilderRouteMetricRequest {
|
||||
while(getSizeNoTag() < expectedSize) {
|
||||
parseFieldFrom(input)
|
||||
}
|
||||
if (getSizeNoTag() > expectedSize) { errorCode = 2 }
|
||||
return this
|
||||
}
|
||||
|
||||
fun parseFrom(input: CodedInputStream): RouteMetricRequest.BuilderRouteMetricRequest {
|
||||
while(parseFieldFrom(input)) {}
|
||||
return this
|
||||
}
|
||||
|
||||
//========== Size-related methods ===========
|
||||
fun getSize(fieldNumber: Int): Int {
|
||||
var size = 0
|
||||
if (distances.size != 0) {
|
||||
do {
|
||||
var arraySize = 0
|
||||
size += WireFormat.getTagSize(1, WireType.LENGTH_DELIMITED)
|
||||
var i = 0
|
||||
while (i < distances.size) {
|
||||
arraySize += WireFormat.getInt32SizeNoTag(distances[i])
|
||||
i += 1
|
||||
}
|
||||
size += arraySize
|
||||
size += WireFormat.getInt32SizeNoTag(arraySize)
|
||||
} while(false)
|
||||
}
|
||||
if (directions.size != 0) {
|
||||
do {
|
||||
var arraySize = 0
|
||||
size += WireFormat.getTagSize(2, WireType.LENGTH_DELIMITED)
|
||||
var i = 0
|
||||
while (i < directions.size) {
|
||||
arraySize += WireFormat.getInt32SizeNoTag(directions[i])
|
||||
i += 1
|
||||
}
|
||||
size += arraySize
|
||||
size += WireFormat.getInt32SizeNoTag(arraySize)
|
||||
} while(false)
|
||||
}
|
||||
size += WireFormat.getVarint32Size(size) + WireFormat.getTagSize(fieldNumber, WireType.LENGTH_DELIMITED)
|
||||
return size
|
||||
}
|
||||
|
||||
fun getSizeNoTag(): Int {
|
||||
var size = 0
|
||||
if (distances.size != 0) {
|
||||
do {
|
||||
var arraySize = 0
|
||||
size += WireFormat.getTagSize(1, WireType.LENGTH_DELIMITED)
|
||||
var i = 0
|
||||
while (i < distances.size) {
|
||||
arraySize += WireFormat.getInt32SizeNoTag(distances[i])
|
||||
i += 1
|
||||
}
|
||||
size += arraySize
|
||||
size += WireFormat.getInt32SizeNoTag(arraySize)
|
||||
} while(false)
|
||||
}
|
||||
if (directions.size != 0) {
|
||||
do {
|
||||
var arraySize = 0
|
||||
size += WireFormat.getTagSize(2, WireType.LENGTH_DELIMITED)
|
||||
var i = 0
|
||||
while (i < directions.size) {
|
||||
arraySize += WireFormat.getInt32SizeNoTag(directions[i])
|
||||
i += 1
|
||||
}
|
||||
size += arraySize
|
||||
size += WireFormat.getInt32SizeNoTag(arraySize)
|
||||
} while(false)
|
||||
}
|
||||
return size
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
class RouteResponse private constructor (var code: Int) {
|
||||
//========== Properties ===========
|
||||
//int32 code = 1
|
||||
|
||||
var errorCode: Int = 0
|
||||
|
||||
//========== Serialization methods ===========
|
||||
fun writeTo (output: CodedOutputStream) {
|
||||
//int32 code = 1
|
||||
if (code != 0) {
|
||||
output.writeInt32 (1, code)
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
fun mergeWith (other: RouteResponse) {
|
||||
code = other.code
|
||||
this.errorCode = other.errorCode
|
||||
}
|
||||
|
||||
fun mergeFromWithSize (input: CodedInputStream, expectedSize: Int) {
|
||||
val builder = RouteResponse.BuilderRouteResponse(0)
|
||||
mergeWith(builder.parseFromWithSize(input, expectedSize).build())
|
||||
}
|
||||
|
||||
fun mergeFrom (input: CodedInputStream) {
|
||||
val builder = RouteResponse.BuilderRouteResponse(0)
|
||||
mergeWith(builder.parseFrom(input).build())
|
||||
}
|
||||
|
||||
//========== Size-related methods ===========
|
||||
fun getSize(fieldNumber: Int): Int {
|
||||
var size = 0
|
||||
if (code != 0) {
|
||||
size += WireFormat.getInt32Size(1, code)
|
||||
}
|
||||
size += WireFormat.getVarint32Size(size) + WireFormat.getTagSize(fieldNumber, WireType.LENGTH_DELIMITED)
|
||||
return size
|
||||
}
|
||||
|
||||
fun getSizeNoTag(): Int {
|
||||
var size = 0
|
||||
if (code != 0) {
|
||||
size += WireFormat.getInt32Size(1, code)
|
||||
}
|
||||
return size
|
||||
}
|
||||
|
||||
//========== Builder ===========
|
||||
class BuilderRouteResponse constructor (var code: Int) {
|
||||
//========== Properties ===========
|
||||
//int32 code = 1
|
||||
fun setCode(value: Int): RouteResponse.BuilderRouteResponse {
|
||||
code = value
|
||||
return this
|
||||
}
|
||||
|
||||
var errorCode: Int = 0
|
||||
|
||||
//========== Serialization methods ===========
|
||||
fun writeTo (output: CodedOutputStream) {
|
||||
//int32 code = 1
|
||||
if (code != 0) {
|
||||
output.writeInt32 (1, code)
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
//========== Mutating methods ===========
|
||||
fun build(): RouteResponse {
|
||||
val res = RouteResponse(code)
|
||||
res.errorCode = errorCode
|
||||
return res
|
||||
}
|
||||
|
||||
fun parseFieldFrom(input: CodedInputStream): Boolean {
|
||||
if (input.isAtEnd()) { return false }
|
||||
val tag = input.readInt32NoTag()
|
||||
if (tag == 0) { return false }
|
||||
val fieldNumber = WireFormat.getTagFieldNumber(tag)
|
||||
val wireType = WireFormat.getTagWireType(tag)
|
||||
when(fieldNumber) {
|
||||
1 -> {
|
||||
if (wireType.id != WireType.VARINT.id) {
|
||||
errorCode = 1
|
||||
return false
|
||||
}
|
||||
code = input.readInt32NoTag()
|
||||
}
|
||||
else -> errorCode = 4
|
||||
}
|
||||
return true
|
||||
}
|
||||
|
||||
fun parseFromWithSize(input: CodedInputStream, expectedSize: Int): RouteResponse.BuilderRouteResponse {
|
||||
while(getSizeNoTag() < expectedSize) {
|
||||
parseFieldFrom(input)
|
||||
}
|
||||
if (getSizeNoTag() > expectedSize) { errorCode = 2 }
|
||||
return this
|
||||
}
|
||||
|
||||
fun parseFrom(input: CodedInputStream): RouteResponse.BuilderRouteResponse {
|
||||
while(parseFieldFrom(input)) {}
|
||||
return this
|
||||
}
|
||||
|
||||
//========== Size-related methods ===========
|
||||
fun getSize(fieldNumber: Int): Int {
|
||||
var size = 0
|
||||
if (code != 0) {
|
||||
size += WireFormat.getInt32Size(1, code)
|
||||
}
|
||||
size += WireFormat.getVarint32Size(size) + WireFormat.getTagSize(fieldNumber, WireType.LENGTH_DELIMITED)
|
||||
return size
|
||||
}
|
||||
|
||||
fun getSizeNoTag(): Int {
|
||||
var size = 0
|
||||
if (code != 0) {
|
||||
size += WireFormat.getInt32Size(1, code)
|
||||
}
|
||||
return size
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -1,478 +0,0 @@
|
||||
class SonarRequest private constructor (var angles: IntArray) {
|
||||
//========== Properties ===========
|
||||
//repeated int32 angles = 1
|
||||
|
||||
var errorCode: Int = 0
|
||||
|
||||
//========== Serialization methods ===========
|
||||
fun writeTo (output: CodedOutputStream) {
|
||||
//repeated int32 angles = 1
|
||||
if (angles.size > 0) {
|
||||
output.writeTag(1, WireType.LENGTH_DELIMITED)
|
||||
var arrayByteSize = 0
|
||||
|
||||
if (angles.size != 0) {
|
||||
do {
|
||||
var arraySize = 0
|
||||
var i = 0
|
||||
while (i < angles.size) {
|
||||
arraySize += WireFormat.getInt32SizeNoTag(angles[i])
|
||||
i += 1
|
||||
}
|
||||
arrayByteSize += arraySize
|
||||
} while(false)
|
||||
}
|
||||
output.writeInt32NoTag(arrayByteSize)
|
||||
|
||||
do {
|
||||
var i = 0
|
||||
while (i < angles.size) {
|
||||
output.writeInt32NoTag (angles[i])
|
||||
i += 1
|
||||
}
|
||||
} while(false)
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
fun mergeWith (other: SonarRequest) {
|
||||
angles = angles.plus((other.angles))
|
||||
this.errorCode = other.errorCode
|
||||
}
|
||||
|
||||
fun mergeFromWithSize (input: CodedInputStream, expectedSize: Int) {
|
||||
val builder = SonarRequest.BuilderSonarRequest(IntArray(0))
|
||||
mergeWith(builder.parseFromWithSize(input, expectedSize).build())
|
||||
}
|
||||
|
||||
fun mergeFrom (input: CodedInputStream) {
|
||||
val builder = SonarRequest.BuilderSonarRequest(IntArray(0))
|
||||
mergeWith(builder.parseFrom(input).build())
|
||||
}
|
||||
|
||||
//========== Size-related methods ===========
|
||||
fun getSize(fieldNumber: Int): Int {
|
||||
var size = 0
|
||||
if (angles.size != 0) {
|
||||
do {
|
||||
var arraySize = 0
|
||||
size += WireFormat.getTagSize(1, WireType.LENGTH_DELIMITED)
|
||||
var i = 0
|
||||
while (i < angles.size) {
|
||||
arraySize += WireFormat.getInt32SizeNoTag(angles[i])
|
||||
i += 1
|
||||
}
|
||||
size += arraySize
|
||||
size += WireFormat.getInt32SizeNoTag(arraySize)
|
||||
} while(false)
|
||||
}
|
||||
size += WireFormat.getVarint32Size(size) + WireFormat.getTagSize(fieldNumber, WireType.LENGTH_DELIMITED)
|
||||
return size
|
||||
}
|
||||
|
||||
fun getSizeNoTag(): Int {
|
||||
var size = 0
|
||||
if (angles.size != 0) {
|
||||
do {
|
||||
var arraySize = 0
|
||||
size += WireFormat.getTagSize(1, WireType.LENGTH_DELIMITED)
|
||||
var i = 0
|
||||
while (i < angles.size) {
|
||||
arraySize += WireFormat.getInt32SizeNoTag(angles[i])
|
||||
i += 1
|
||||
}
|
||||
size += arraySize
|
||||
size += WireFormat.getInt32SizeNoTag(arraySize)
|
||||
} while(false)
|
||||
}
|
||||
return size
|
||||
}
|
||||
|
||||
//========== Builder ===========
|
||||
class BuilderSonarRequest constructor (var angles: IntArray) {
|
||||
//========== Properties ===========
|
||||
//repeated int32 angles = 1
|
||||
fun setAngles(value: IntArray): SonarRequest.BuilderSonarRequest {
|
||||
angles = value
|
||||
return this
|
||||
}
|
||||
fun setanglesByIndex(index: Int, value: Int): SonarRequest.BuilderSonarRequest {
|
||||
angles[index] = value
|
||||
return this
|
||||
}
|
||||
|
||||
var errorCode: Int = 0
|
||||
|
||||
//========== Serialization methods ===========
|
||||
fun writeTo (output: CodedOutputStream) {
|
||||
//repeated int32 angles = 1
|
||||
if (angles.size > 0) {
|
||||
output.writeTag(1, WireType.LENGTH_DELIMITED)
|
||||
var arrayByteSize = 0
|
||||
|
||||
if (angles.size != 0) {
|
||||
do {
|
||||
var arraySize = 0
|
||||
var i = 0
|
||||
while (i < angles.size) {
|
||||
arraySize += WireFormat.getInt32SizeNoTag(angles[i])
|
||||
i += 1
|
||||
}
|
||||
arrayByteSize += arraySize
|
||||
} while(false)
|
||||
}
|
||||
output.writeInt32NoTag(arrayByteSize)
|
||||
|
||||
do {
|
||||
var i = 0
|
||||
while (i < angles.size) {
|
||||
output.writeInt32NoTag (angles[i])
|
||||
i += 1
|
||||
}
|
||||
} while(false)
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
//========== Mutating methods ===========
|
||||
fun build(): SonarRequest {
|
||||
val res = SonarRequest(angles)
|
||||
res.errorCode = errorCode
|
||||
return res
|
||||
}
|
||||
|
||||
fun parseFieldFrom(input: CodedInputStream): Boolean {
|
||||
if (input.isAtEnd()) { return false }
|
||||
val tag = input.readInt32NoTag()
|
||||
if (tag == 0) { return false }
|
||||
val fieldNumber = WireFormat.getTagFieldNumber(tag)
|
||||
val wireType = WireFormat.getTagWireType(tag)
|
||||
when(fieldNumber) {
|
||||
1 -> {
|
||||
if (wireType.id != WireType.LENGTH_DELIMITED.id) {
|
||||
errorCode = 1
|
||||
return false
|
||||
}
|
||||
val expectedByteSize = input.readInt32NoTag()
|
||||
var readSize = 0
|
||||
var arraySize = 0
|
||||
input.mark()
|
||||
do {
|
||||
var i = 0
|
||||
while(readSize < expectedByteSize) {
|
||||
var tmp = 0
|
||||
tmp = input.readInt32NoTag()
|
||||
arraySize += 1
|
||||
readSize += WireFormat.getInt32SizeNoTag(tmp)
|
||||
}
|
||||
} while (false)
|
||||
var newArray = IntArray(arraySize)
|
||||
input.reset()
|
||||
do {
|
||||
var i = 0
|
||||
while(i < arraySize) {
|
||||
newArray[i] = input.readInt32NoTag()
|
||||
i += 1}
|
||||
angles = newArray
|
||||
} while (false)
|
||||
}
|
||||
else -> errorCode = 4
|
||||
}
|
||||
return true
|
||||
}
|
||||
|
||||
fun parseFromWithSize(input: CodedInputStream, expectedSize: Int): SonarRequest.BuilderSonarRequest {
|
||||
while(getSizeNoTag() < expectedSize) {
|
||||
parseFieldFrom(input)
|
||||
}
|
||||
if (getSizeNoTag() > expectedSize) { errorCode = 2 }
|
||||
return this
|
||||
}
|
||||
|
||||
fun parseFrom(input: CodedInputStream): SonarRequest.BuilderSonarRequest {
|
||||
while(parseFieldFrom(input)) {}
|
||||
return this
|
||||
}
|
||||
|
||||
//========== Size-related methods ===========
|
||||
fun getSize(fieldNumber: Int): Int {
|
||||
var size = 0
|
||||
if (angles.size != 0) {
|
||||
do {
|
||||
var arraySize = 0
|
||||
size += WireFormat.getTagSize(1, WireType.LENGTH_DELIMITED)
|
||||
var i = 0
|
||||
while (i < angles.size) {
|
||||
arraySize += WireFormat.getInt32SizeNoTag(angles[i])
|
||||
i += 1
|
||||
}
|
||||
size += arraySize
|
||||
size += WireFormat.getInt32SizeNoTag(arraySize)
|
||||
} while(false)
|
||||
}
|
||||
size += WireFormat.getVarint32Size(size) + WireFormat.getTagSize(fieldNumber, WireType.LENGTH_DELIMITED)
|
||||
return size
|
||||
}
|
||||
|
||||
fun getSizeNoTag(): Int {
|
||||
var size = 0
|
||||
if (angles.size != 0) {
|
||||
do {
|
||||
var arraySize = 0
|
||||
size += WireFormat.getTagSize(1, WireType.LENGTH_DELIMITED)
|
||||
var i = 0
|
||||
while (i < angles.size) {
|
||||
arraySize += WireFormat.getInt32SizeNoTag(angles[i])
|
||||
i += 1
|
||||
}
|
||||
size += arraySize
|
||||
size += WireFormat.getInt32SizeNoTag(arraySize)
|
||||
} while(false)
|
||||
}
|
||||
return size
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
class SonarResponse private constructor (var distances: IntArray) {
|
||||
//========== Properties ===========
|
||||
//repeated int32 distances = 1
|
||||
|
||||
var errorCode: Int = 0
|
||||
|
||||
//========== Serialization methods ===========
|
||||
fun writeTo (output: CodedOutputStream) {
|
||||
//repeated int32 distances = 1
|
||||
if (distances.size > 0) {
|
||||
output.writeTag(1, WireType.LENGTH_DELIMITED)
|
||||
var arrayByteSize = 0
|
||||
|
||||
if (distances.size != 0) {
|
||||
do {
|
||||
var arraySize = 0
|
||||
var i = 0
|
||||
while (i < distances.size) {
|
||||
arraySize += WireFormat.getInt32SizeNoTag(distances[i])
|
||||
i += 1
|
||||
}
|
||||
arrayByteSize += arraySize
|
||||
} while(false)
|
||||
}
|
||||
output.writeInt32NoTag(arrayByteSize)
|
||||
|
||||
do {
|
||||
var i = 0
|
||||
while (i < distances.size) {
|
||||
output.writeInt32NoTag (distances[i])
|
||||
i += 1
|
||||
}
|
||||
} while(false)
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
fun mergeWith (other: SonarResponse) {
|
||||
distances = distances.plus((other.distances))
|
||||
this.errorCode = other.errorCode
|
||||
}
|
||||
|
||||
fun mergeFromWithSize (input: CodedInputStream, expectedSize: Int) {
|
||||
val builder = SonarResponse.BuilderSonarResponse(IntArray(0))
|
||||
mergeWith(builder.parseFromWithSize(input, expectedSize).build())
|
||||
}
|
||||
|
||||
fun mergeFrom (input: CodedInputStream) {
|
||||
val builder = SonarResponse.BuilderSonarResponse(IntArray(0))
|
||||
mergeWith(builder.parseFrom(input).build())
|
||||
}
|
||||
|
||||
//========== Size-related methods ===========
|
||||
fun getSize(fieldNumber: Int): Int {
|
||||
var size = 0
|
||||
if (distances.size != 0) {
|
||||
do {
|
||||
var arraySize = 0
|
||||
size += WireFormat.getTagSize(1, WireType.LENGTH_DELIMITED)
|
||||
var i = 0
|
||||
while (i < distances.size) {
|
||||
arraySize += WireFormat.getInt32SizeNoTag(distances[i])
|
||||
i += 1
|
||||
}
|
||||
size += arraySize
|
||||
size += WireFormat.getInt32SizeNoTag(arraySize)
|
||||
} while(false)
|
||||
}
|
||||
size += WireFormat.getVarint32Size(size) + WireFormat.getTagSize(fieldNumber, WireType.LENGTH_DELIMITED)
|
||||
return size
|
||||
}
|
||||
|
||||
fun getSizeNoTag(): Int {
|
||||
var size = 0
|
||||
if (distances.size != 0) {
|
||||
do {
|
||||
var arraySize = 0
|
||||
size += WireFormat.getTagSize(1, WireType.LENGTH_DELIMITED)
|
||||
var i = 0
|
||||
while (i < distances.size) {
|
||||
arraySize += WireFormat.getInt32SizeNoTag(distances[i])
|
||||
i += 1
|
||||
}
|
||||
size += arraySize
|
||||
size += WireFormat.getInt32SizeNoTag(arraySize)
|
||||
} while(false)
|
||||
}
|
||||
return size
|
||||
}
|
||||
|
||||
//========== Builder ===========
|
||||
class BuilderSonarResponse constructor (var distances: IntArray) {
|
||||
//========== Properties ===========
|
||||
//repeated int32 distances = 1
|
||||
fun setDistances(value: IntArray): SonarResponse.BuilderSonarResponse {
|
||||
distances = value
|
||||
return this
|
||||
}
|
||||
fun setdistancesByIndex(index: Int, value: Int): SonarResponse.BuilderSonarResponse {
|
||||
distances[index] = value
|
||||
return this
|
||||
}
|
||||
|
||||
var errorCode: Int = 0
|
||||
|
||||
//========== Serialization methods ===========
|
||||
fun writeTo (output: CodedOutputStream) {
|
||||
//repeated int32 distances = 1
|
||||
if (distances.size > 0) {
|
||||
output.writeTag(1, WireType.LENGTH_DELIMITED)
|
||||
var arrayByteSize = 0
|
||||
|
||||
if (distances.size != 0) {
|
||||
do {
|
||||
var arraySize = 0
|
||||
var i = 0
|
||||
while (i < distances.size) {
|
||||
arraySize += WireFormat.getInt32SizeNoTag(distances[i])
|
||||
i += 1
|
||||
}
|
||||
arrayByteSize += arraySize
|
||||
} while(false)
|
||||
}
|
||||
output.writeInt32NoTag(arrayByteSize)
|
||||
|
||||
do {
|
||||
var i = 0
|
||||
while (i < distances.size) {
|
||||
output.writeInt32NoTag (distances[i])
|
||||
i += 1
|
||||
}
|
||||
} while(false)
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
//========== Mutating methods ===========
|
||||
fun build(): SonarResponse {
|
||||
val res = SonarResponse(distances)
|
||||
res.errorCode = errorCode
|
||||
return res
|
||||
}
|
||||
|
||||
fun parseFieldFrom(input: CodedInputStream): Boolean {
|
||||
if (input.isAtEnd()) { return false }
|
||||
val tag = input.readInt32NoTag()
|
||||
if (tag == 0) { return false }
|
||||
val fieldNumber = WireFormat.getTagFieldNumber(tag)
|
||||
val wireType = WireFormat.getTagWireType(tag)
|
||||
when(fieldNumber) {
|
||||
1 -> {
|
||||
if (wireType.id != WireType.LENGTH_DELIMITED.id) {
|
||||
errorCode = 1
|
||||
return false
|
||||
}
|
||||
val expectedByteSize = input.readInt32NoTag()
|
||||
var readSize = 0
|
||||
var arraySize = 0
|
||||
input.mark()
|
||||
do {
|
||||
var i = 0
|
||||
while(readSize < expectedByteSize) {
|
||||
var tmp = 0
|
||||
tmp = input.readInt32NoTag()
|
||||
arraySize += 1
|
||||
readSize += WireFormat.getInt32SizeNoTag(tmp)
|
||||
}
|
||||
} while (false)
|
||||
var newArray = IntArray(arraySize)
|
||||
input.reset()
|
||||
do {
|
||||
var i = 0
|
||||
while(i < arraySize) {
|
||||
newArray[i] = input.readInt32NoTag()
|
||||
i += 1}
|
||||
distances = newArray
|
||||
} while (false)
|
||||
}
|
||||
else -> errorCode = 4
|
||||
}
|
||||
return true
|
||||
}
|
||||
|
||||
fun parseFromWithSize(input: CodedInputStream, expectedSize: Int): SonarResponse.BuilderSonarResponse {
|
||||
while(getSizeNoTag() < expectedSize) {
|
||||
parseFieldFrom(input)
|
||||
}
|
||||
if (getSizeNoTag() > expectedSize) { errorCode = 2 }
|
||||
return this
|
||||
}
|
||||
|
||||
fun parseFrom(input: CodedInputStream): SonarResponse.BuilderSonarResponse {
|
||||
while(parseFieldFrom(input)) {}
|
||||
return this
|
||||
}
|
||||
|
||||
//========== Size-related methods ===========
|
||||
fun getSize(fieldNumber: Int): Int {
|
||||
var size = 0
|
||||
if (distances.size != 0) {
|
||||
do {
|
||||
var arraySize = 0
|
||||
size += WireFormat.getTagSize(1, WireType.LENGTH_DELIMITED)
|
||||
var i = 0
|
||||
while (i < distances.size) {
|
||||
arraySize += WireFormat.getInt32SizeNoTag(distances[i])
|
||||
i += 1
|
||||
}
|
||||
size += arraySize
|
||||
size += WireFormat.getInt32SizeNoTag(arraySize)
|
||||
} while(false)
|
||||
}
|
||||
size += WireFormat.getVarint32Size(size) + WireFormat.getTagSize(fieldNumber, WireType.LENGTH_DELIMITED)
|
||||
return size
|
||||
}
|
||||
|
||||
fun getSizeNoTag(): Int {
|
||||
var size = 0
|
||||
if (distances.size != 0) {
|
||||
do {
|
||||
var arraySize = 0
|
||||
size += WireFormat.getTagSize(1, WireType.LENGTH_DELIMITED)
|
||||
var i = 0
|
||||
while (i < distances.size) {
|
||||
arraySize += WireFormat.getInt32SizeNoTag(distances[i])
|
||||
i += 1
|
||||
}
|
||||
size += arraySize
|
||||
size += WireFormat.getInt32SizeNoTag(arraySize)
|
||||
} while(false)
|
||||
}
|
||||
return size
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -1,150 +0,0 @@
|
||||
class TaskRequest private constructor (var type: TaskRequest.Type) {
|
||||
//========== Properties ===========
|
||||
//enum type = 1
|
||||
|
||||
var errorCode: Int = 0
|
||||
|
||||
//========== Nested enums declarations ===========
|
||||
enum class Type(val id: Int) {
|
||||
DEBUG (0),
|
||||
ROUTE (1),
|
||||
SONAR (2),
|
||||
ROUTE_METRIC (3),
|
||||
Unexpected(4);
|
||||
|
||||
companion object {
|
||||
fun fromIntToType (ord: Int): Type {
|
||||
return when (ord) {
|
||||
0 -> Type.DEBUG
|
||||
1 -> Type.ROUTE
|
||||
2 -> Type.SONAR
|
||||
3 -> Type.ROUTE_METRIC
|
||||
else -> Unexpected
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
//========== Serialization methods ===========
|
||||
fun writeTo (output: CodedOutputStream) {
|
||||
//enum type = 1
|
||||
if (type.id != TaskRequest.Type.fromIntToType(0).id) {
|
||||
output.writeEnum (1, type.id)
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
fun mergeWith (other: TaskRequest) {
|
||||
type = other.type
|
||||
this.errorCode = other.errorCode
|
||||
}
|
||||
|
||||
fun mergeFromWithSize (input: CodedInputStream, expectedSize: Int) {
|
||||
val builder = TaskRequest.BuilderTaskRequest(TaskRequest.Type.fromIntToType(0))
|
||||
mergeWith(builder.parseFromWithSize(input, expectedSize).build())
|
||||
}
|
||||
|
||||
fun mergeFrom (input: CodedInputStream) {
|
||||
val builder = TaskRequest.BuilderTaskRequest(TaskRequest.Type.fromIntToType(0))
|
||||
mergeWith(builder.parseFrom(input).build())
|
||||
}
|
||||
|
||||
//========== Size-related methods ===========
|
||||
fun getSize(fieldNumber: Int): Int {
|
||||
var size = 0
|
||||
if (type != TaskRequest.Type.fromIntToType(0)) {
|
||||
size += WireFormat.getEnumSize(1, type.id)
|
||||
}
|
||||
size += WireFormat.getVarint32Size(size) + WireFormat.getTagSize(fieldNumber, WireType.LENGTH_DELIMITED)
|
||||
return size
|
||||
}
|
||||
|
||||
fun getSizeNoTag(): Int {
|
||||
var size = 0
|
||||
if (type != TaskRequest.Type.fromIntToType(0)) {
|
||||
size += WireFormat.getEnumSize(1, type.id)
|
||||
}
|
||||
return size
|
||||
}
|
||||
|
||||
//========== Builder ===========
|
||||
class BuilderTaskRequest constructor (var type: TaskRequest.Type) {
|
||||
//========== Properties ===========
|
||||
//enum type = 1
|
||||
fun setType(value: TaskRequest.Type): TaskRequest.BuilderTaskRequest {
|
||||
type = value
|
||||
return this
|
||||
}
|
||||
|
||||
var errorCode: Int = 0
|
||||
|
||||
//========== Serialization methods ===========
|
||||
fun writeTo (output: CodedOutputStream) {
|
||||
//enum type = 1
|
||||
if (type.id != TaskRequest.Type.fromIntToType(0).id) {
|
||||
output.writeEnum (1, type.id)
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
//========== Mutating methods ===========
|
||||
fun build(): TaskRequest {
|
||||
val res = TaskRequest(type)
|
||||
res.errorCode = errorCode
|
||||
return res
|
||||
}
|
||||
|
||||
fun parseFieldFrom(input: CodedInputStream): Boolean {
|
||||
if (input.isAtEnd()) { return false }
|
||||
val tag = input.readInt32NoTag()
|
||||
if (tag == 0) { return false }
|
||||
val fieldNumber = WireFormat.getTagFieldNumber(tag)
|
||||
val wireType = WireFormat.getTagWireType(tag)
|
||||
when(fieldNumber) {
|
||||
1 -> {
|
||||
if (wireType.id != WireType.VARINT.id) {
|
||||
errorCode = 1
|
||||
return false
|
||||
}
|
||||
type = TaskRequest.Type.fromIntToType(input.readEnumNoTag())
|
||||
}
|
||||
else -> errorCode = 4
|
||||
}
|
||||
return true
|
||||
}
|
||||
|
||||
fun parseFromWithSize(input: CodedInputStream, expectedSize: Int): TaskRequest.BuilderTaskRequest {
|
||||
while(getSizeNoTag() < expectedSize) {
|
||||
parseFieldFrom(input)
|
||||
}
|
||||
if (getSizeNoTag() > expectedSize) { errorCode = 2 }
|
||||
return this
|
||||
}
|
||||
|
||||
fun parseFrom(input: CodedInputStream): TaskRequest.BuilderTaskRequest {
|
||||
while(parseFieldFrom(input)) {}
|
||||
return this
|
||||
}
|
||||
|
||||
//========== Size-related methods ===========
|
||||
fun getSize(fieldNumber: Int): Int {
|
||||
var size = 0
|
||||
if (type != TaskRequest.Type.fromIntToType(0)) {
|
||||
size += WireFormat.getEnumSize(1, type.id)
|
||||
}
|
||||
size += WireFormat.getVarint32Size(size) + WireFormat.getTagSize(fieldNumber, WireType.LENGTH_DELIMITED)
|
||||
return size
|
||||
}
|
||||
|
||||
fun getSizeNoTag(): Int {
|
||||
var size = 0
|
||||
if (type != TaskRequest.Type.fromIntToType(0)) {
|
||||
size += WireFormat.getEnumSize(1, type.id)
|
||||
}
|
||||
return size
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -46,7 +46,6 @@ class IntArray(var size: Int) {
|
||||
|
||||
}
|
||||
|
||||
|
||||
fun IntArray.print() {
|
||||
var index = 0
|
||||
print('[')
|
||||
@@ -117,4 +116,46 @@ operator fun IntArray.plus(elements: IntArray): IntArray {
|
||||
}
|
||||
|
||||
return newInstance
|
||||
}
|
||||
}
|
||||
|
||||
fun IntArray.max(from: Int = 0): Int {
|
||||
var result = from
|
||||
for (i in (from + 1)..(size - 1)) {
|
||||
result = if (get(i) > get(result)) i else result
|
||||
}
|
||||
|
||||
return get(result)
|
||||
}
|
||||
|
||||
fun IntArray.min(from: Int = 0): Int {
|
||||
var result = from
|
||||
for (i in 1..(size - 1)) {
|
||||
result = if (this.get(i) < this.get(result)) i else result
|
||||
}
|
||||
|
||||
return this.get(result)
|
||||
}
|
||||
|
||||
fun IntArray.sum(): Int {
|
||||
var result = 0
|
||||
for (i in 0..(size - 1)) {
|
||||
result += this.get(i)
|
||||
}
|
||||
|
||||
return result
|
||||
}
|
||||
|
||||
fun IntArray.sort(): IntArray {
|
||||
val result = this.clone()
|
||||
for (i in 0..(size - 1)) {
|
||||
result[i] = this.max(i)
|
||||
}
|
||||
|
||||
return result
|
||||
}
|
||||
|
||||
fun IntArray.mean(): Int =
|
||||
this.sum() / this.size
|
||||
|
||||
fun IntArray.median(): Int =
|
||||
this.sort()[this.size / 2]
|
||||
|
||||
@@ -5,6 +5,7 @@ message SonarRequest {
|
||||
repeated int32 attempts = 2;
|
||||
int32 threshold = 3;
|
||||
Smoothing smoothing = 4;
|
||||
int32 windowSize = 5;
|
||||
|
||||
enum Smoothing {
|
||||
NONE = 0;
|
||||
|
||||
Reference in New Issue
Block a user