syntax = "proto2";

import "dccl/option_extensions.proto";

package jaiabot.protobuf;

message DivePowerDescentDebug
{
    option (dccl.msg) = {
        unit_system: "si"
    };

    optional double current_depth = 1 [
            default = 0,
            (dccl.field) = {
                precision: 0
                units { base_dimensions: "L" }
            }
        ];
    optional double last_depth = 2 [
            default = 0,
            (dccl.field) = {
                precision: 0
                units { base_dimensions: "L" }
            }
        ];
    optional double goal_depth = 3 [
            default = 0,
            (dccl.field) = {
                precision: 0
                units { base_dimensions: "L" }
            }
        ];
    optional double depth_eps = 4 [
            default = 0, 
            (dccl.field).units = 
                { base_dimensions: "L" }
        ];
    optional uint64 last_depth_change_time = 5 [
            (dccl.field) = {
                codec: "dccl.time2"
                units { prefix: "micro" derived_dimensions: "time" }
        }]; 
    optional double bottoming_timeout = 6 [
            default = 0, 
            (dccl.field).units = { base_dimensions: "T" }
        ];
    optional bool depth_reached = 7 [default = false];
    optional bool depth_changed = 8 [default = false];
    optional bool depth_change_timeout = 9 [default = false];
    optional bool bot_is_diving = 10 [default = false];
}

message DiveHoldDebug
{
    option (dccl.msg) = {
        unit_system: "si"
    };
    optional double current_depth = 1 [
            default = 0,
            (dccl.field) = {
                precision: 0
                units { base_dimensions: "L" }
            }
        ];
    optional double hold_timeout = 2 [
            default = 0, 
            (dccl.field).units = { base_dimensions: "T" }
        ];
    optional bool dive_complete = 3 [default = false];
    optional bool hold_complete = 4 [default = false];
}

message DiveUnpoweredAscentDebug
{
    option (dccl.msg) = {
        unit_system: "si"
    };
    optional double current_depth = 1 [
            default = 0,
            (dccl.field) = {
                precision: 0
                units { base_dimensions: "L" }
            }
        ];
    optional double depth_eps = 2 [
            default = 0, 
            (dccl.field).units = 
                { base_dimensions: "L" }
        ];
    optional double unpowered_ascent_timeout = 3 [
            default = 0, 
            (dccl.field).units = { base_dimensions: "T" }
        ];
    optional bool unpowered_ascent_timed_out = 4 [default = false];
    optional bool surfaced = 5 [default = false];
}

message DivePoweredAscentDebug
{
    option (dccl.msg) = {
        unit_system: "si"
    };
    optional double current_depth = 1 [
            default = 0,
            (dccl.field) = {
                precision: 0
                units { base_dimensions: "L" }
            }
        ];
    optional double depth_eps = 2 [
            default = 0, 
            (dccl.field).units = 
                { base_dimensions: "L" }
        ];
    optional bool surfaced = 3 [default = false];
}

