syntax = "proto2";

import "dccl/option_extensions.proto";
import "jaiabot/messages/control_surfaces.proto";
import "jaiabot/messages/geographic_coordinate.proto";

package jaiabot.protobuf;

message LowControl
{
    option (dccl.msg) = {
        unit_system: "si"
    };
    required uint32 id = 1;
    required uint32 vehicle = 2;
    required uint64 time = 3 [
        (dccl.field) = { units { prefix: "micro" derived_dimensions: "time" } }
    ];

    optional ControlSurfaces control_surfaces = 6;
}

message LowControlAck
{
    option (dccl.msg) = {
        unit_system: "si"
    };
    required uint32 id = 1;
    required uint32 vehicle = 2;
    required uint64 time = 3 [
        (dccl.field) = { units { prefix: "micro" derived_dimensions: "time" } }
    ];
    required uint64 command_time = 4 [
        (dccl.field) = { units { prefix: "micro" derived_dimensions: "time" } }
    ];
    required GeographicCoordinate location = 5;

    optional double range = 6
        [(dccl.field) = { units { base_dimensions: "L" } }];
    optional double speed = 7
        [(dccl.field) = { units { derived_dimensions: "length/time" } }];
    optional double eps = 12
        [(dccl.field) = { units { derived_dimensions: "length/time" } }];
}
