// ###############################################################
// Copyright(c) Carl Zeiss AG, Germany. All Rights Reserved.
//
// Permission is granted to use and distribute this code,
// as long as this copyright notice remains part of the code.
// ###############################################################

syntax = "proto3";
package zen_api.acquisition.v1beta;
import "google/protobuf/duration.proto";

// Status of an experiment.
// The index properties are 0-based.
// If a value is 0 or -1 it means the value is not initialized or
// the running experiment does not have the corresponding dimension.
// In case of indices, 0 value can also refer to the first element.
message ExperimentStatus {
   // The current or already acquired (depending of the dimension order) tiles position index
   // of the currently acquired scene.
   int32 tiles_index = 1;
   // The tiles count of the currently acquired scene.
   int32 tiles_count = 2;
   // The total tiles count of all scenes.
   int32 cumulated_tiles_count = 3;
   // The current or already acquired (depending of the dimension order) scene index (= tile region/position index).
   int32 scenes_index = 4;
   // The total scene count (= tile region/position count).
   int32 scenes_count = 5;
   // The current or already acquired (depending of the dimension order) time point index in time series.
   int32 time_points_index = 6;
   // The number of time points in time series.
   int32 time_points_count = 7;
   // The current or already acquired (depending of the dimension order) z-stack slice index.
   int32 zstack_slices_index = 8;
   // The total count of z-stack slices.
   int32 zstack_slices_count = 9;
   // The current or already acquired (depending of the dimension order) channel index.
   int32 channels_index = 10;
   // The total channel count.
   int32 channels_count = 11;
   // The number of acquired images over all dimensions (channels, time series, z-stack, cumulated tiles).
   int32 images_acquired_index = 12;
   // The images count over all dimensions (channels, time series, z-stack, cumulated tiles).
   // This value is relevant only for acquisition where end is determined (standard experiment and Snap),
   // therefore it is not relevant for Continuous and Live.
   int32 images_count = 13;
   // A value indicating whether the experiment is currently running.
   bool is_experiment_running = 14;
   // A value indicating whether an acquisition is currently running.
   bool is_acquisition_running = 15;
   // The total time that elapsed since the start of the running experiment.
   .google.protobuf.Duration total_elapsed_time = 16;
}
