car_fmw: add metric route, improve Engine module
This commit is contained in:
+18
-1
@@ -1,4 +1,3 @@
|
|||||||
|
|
||||||
object Control {
|
object Control {
|
||||||
val BLINK_DURATION = 1000
|
val BLINK_DURATION = 1000
|
||||||
|
|
||||||
@@ -18,6 +17,7 @@ object Control {
|
|||||||
when (task.type.id) {
|
when (task.type.id) {
|
||||||
TaskRequest.Type.DEBUG.id -> debugTask()
|
TaskRequest.Type.DEBUG.id -> debugTask()
|
||||||
TaskRequest.Type.ROUTE.id -> routeTask()
|
TaskRequest.Type.ROUTE.id -> routeTask()
|
||||||
|
TaskRequest.Type.ROUTE_METRIC.id -> routeMetricTask()
|
||||||
TaskRequest.Type.SONAR.id -> sonarTask()
|
TaskRequest.Type.SONAR.id -> sonarTask()
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -55,6 +55,23 @@ object Control {
|
|||||||
Writer.writeRoute(response)
|
Writer.writeRoute(response)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private fun routeMetricTask() {
|
||||||
|
val route = Reader.readMetricRoute()
|
||||||
|
val distances = route.distances
|
||||||
|
var i = 0
|
||||||
|
|
||||||
|
while (i < distances.size) {
|
||||||
|
val distance = distances[i]
|
||||||
|
val direction = route.directions[i]
|
||||||
|
Engine.drive(direction, distance)
|
||||||
|
|
||||||
|
i++
|
||||||
|
}
|
||||||
|
|
||||||
|
val response = RouteResponse.BuilderRouteResponse(0).build()
|
||||||
|
Writer.writeRoute(response)
|
||||||
|
}
|
||||||
|
|
||||||
private fun sonarTask() {
|
private fun sonarTask() {
|
||||||
val request = Reader.readSonar()
|
val request = Reader.readSonar()
|
||||||
val size = request.angles.size
|
val size = request.angles.size
|
||||||
|
|||||||
@@ -4,6 +4,11 @@ object Reader {
|
|||||||
return RouteRequest.BuilderRouteRequest(IntArray(0), IntArray(0)).parseFrom(stream).build()
|
return RouteRequest.BuilderRouteRequest(IntArray(0), IntArray(0)).parseFrom(stream).build()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fun readMetricRoute(): RouteMetricRequest {
|
||||||
|
val stream = getInputStream()
|
||||||
|
return RouteMetricRequest.BuilderRouteMetricRequest(IntArray(0), IntArray(0)).parseFrom(stream).build()
|
||||||
|
}
|
||||||
|
|
||||||
fun readTask(): TaskRequest {
|
fun readTask(): TaskRequest {
|
||||||
val stream = getInputStream()
|
val stream = getInputStream()
|
||||||
return TaskRequest.BuilderTaskRequest(TaskRequest.Type.DEBUG).parseFrom(stream).build()
|
return TaskRequest.BuilderTaskRequest(TaskRequest.Type.DEBUG).parseFrom(stream).build()
|
||||||
|
|||||||
@@ -12,7 +12,7 @@ object Voyager {
|
|||||||
distance = Sonar.getSmoothDistance(0)
|
distance = Sonar.getSmoothDistance(0)
|
||||||
}
|
}
|
||||||
|
|
||||||
Engine.rotate(RouteType.LEFT.id, 45)
|
Engine.drive(RouteType.LEFT.id, 45)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -51,14 +51,16 @@ object Engine {
|
|||||||
}
|
}
|
||||||
|
|
||||||
fun drive(direction: Int, distance: Int) {
|
fun drive(direction: Int, distance: Int) {
|
||||||
go(direction)
|
val duration = when (direction) {
|
||||||
Time.wait((distance.toDouble() / VELOCITY_DRIVE).toInt())
|
RouteType.FORWARD.id,
|
||||||
stop()
|
RouteType.BACKWARD.id -> (distance.toDouble() / VELOCITY_DRIVE).toInt()
|
||||||
}
|
RouteType.LEFT.id,
|
||||||
|
RouteType.RIGHT.id -> (distance.toDouble() / VEL0CITY_ROTATE).toInt()
|
||||||
|
else -> 0
|
||||||
|
}
|
||||||
|
|
||||||
fun rotate(direction: Int, degree: Int) {
|
|
||||||
go(direction)
|
go(direction)
|
||||||
Time.wait((degree.toDouble() / VEL0CITY_ROTATE).toInt())
|
Time.wait(duration)
|
||||||
stop()
|
stop()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -6,6 +6,11 @@ message RouteRequest {
|
|||||||
repeated int32 directions = 2;
|
repeated int32 directions = 2;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
message RouteMetricRequest {
|
||||||
|
repeated int32 distances = 1;
|
||||||
|
repeated int32 directions = 2;
|
||||||
|
}
|
||||||
|
|
||||||
message RouteResponse {
|
message RouteResponse {
|
||||||
int32 code = 1;
|
int32 code = 1;
|
||||||
}
|
}
|
||||||
@@ -9,5 +9,6 @@ message TaskRequest {
|
|||||||
DEBUG = 0;
|
DEBUG = 0;
|
||||||
ROUTE = 1;
|
ROUTE = 1;
|
||||||
SONAR = 2;
|
SONAR = 2;
|
||||||
|
ROUTE_METRIC = 3;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -384,6 +384,392 @@ class RouteRequest private constructor (var times: IntArray, var directions: Int
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
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) {
|
class RouteResponse private constructor (var code: Int) {
|
||||||
//========== Properties ===========
|
//========== Properties ===========
|
||||||
//int32 code = 1
|
//int32 code = 1
|
||||||
|
|||||||
@@ -9,7 +9,8 @@ class TaskRequest private constructor (var type: TaskRequest.Type) {
|
|||||||
DEBUG (0),
|
DEBUG (0),
|
||||||
ROUTE (1),
|
ROUTE (1),
|
||||||
SONAR (2),
|
SONAR (2),
|
||||||
Unexpected(3);
|
ROUTE_METRIC (3),
|
||||||
|
Unexpected(4);
|
||||||
|
|
||||||
companion object {
|
companion object {
|
||||||
fun fromIntToType (ord: Int): Type {
|
fun fromIntToType (ord: Int): Type {
|
||||||
@@ -17,6 +18,7 @@ class TaskRequest private constructor (var type: TaskRequest.Type) {
|
|||||||
0 -> Type.DEBUG
|
0 -> Type.DEBUG
|
||||||
1 -> Type.ROUTE
|
1 -> Type.ROUTE
|
||||||
2 -> Type.SONAR
|
2 -> Type.SONAR
|
||||||
|
3 -> Type.ROUTE_METRIC
|
||||||
else -> Unexpected
|
else -> Unexpected
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,7 +2,6 @@ syntax = "proto3";
|
|||||||
package carkot;
|
package carkot;
|
||||||
|
|
||||||
message DebugRequest {
|
message DebugRequest {
|
||||||
|
|
||||||
Type type = 1;
|
Type type = 1;
|
||||||
|
|
||||||
enum Type {
|
enum Type {
|
||||||
|
|||||||
@@ -2,7 +2,6 @@ syntax = "proto3";
|
|||||||
package carkot;
|
package carkot;
|
||||||
|
|
||||||
message LocationResponse {
|
message LocationResponse {
|
||||||
|
|
||||||
LocationData locationResponseData = 1;
|
LocationData locationResponseData = 1;
|
||||||
int32 code = 2;
|
int32 code = 2;
|
||||||
|
|
||||||
|
|||||||
@@ -6,6 +6,11 @@ message RouteRequest {
|
|||||||
repeated int32 directions = 2;
|
repeated int32 directions = 2;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
message RouteMetricRequest {
|
||||||
|
repeated int32 distances = 1;
|
||||||
|
repeated int32 directions = 2;
|
||||||
|
}
|
||||||
|
|
||||||
message RouteResponse {
|
message RouteResponse {
|
||||||
int32 code = 1;
|
int32 code = 1;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,13 +2,10 @@ syntax = "proto3";
|
|||||||
package carkot;
|
package carkot;
|
||||||
|
|
||||||
message SonarRequest {
|
message SonarRequest {
|
||||||
|
|
||||||
repeated int32 angles = 1;
|
repeated int32 angles = 1;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
message SonarResponse {
|
message SonarResponse {
|
||||||
|
|
||||||
repeated int32 distances = 1;
|
repeated int32 distances = 1;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user