channel_properties_pb2

channel_properties_pb2#

Generated protocol buffer code.

Full path: iqm.data_definitions.common.v1.channel_properties_pb2

Protobuf source code#
// Copyright 2019-2025 IQM
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
//     http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.

/*
 Definition of channel properties for hw devices
 */

syntax = "proto3";

package iqm.data_definitions.common.v1;


message ChannelPropertyDictionary {
    map<string, ChannelPropertyEntry> channel_property_mapping = 1;
}

message ChannelPropertyEntry {
    oneof value {
        AWGProperties awg = 1;
        ReadoutProperties ro = 2;
    }
}

message ChannelProperties {
    // sample rate of the instrument responsible for the channel (in Hz)
    double sampling_rate = 1;
    // Unused
    double instruction_duration_granularity = 2;
    // Unused
    double instruction_duration_min = 3;
    // instruction types that are allowed on this channel
    repeated string compatible_instructions = 4;

    // all instruction durations on this channel must be multiples of this granularity (in samples) 
    uint64 instruction_duration_granularity_samples = 5;
    // all instruction durations on this channel must at least this long (in samples)
    uint64 instruction_duration_min_samples = 6;
}


message AWGProperties {
    ChannelProperties channel_properties = 1;

    // Defines compatible fast feedback sources
    repeated string fast_feedback_sources = 3;

    // Whether this AWG contains a local oscillator or not.
    bool local_oscillator = 4;

    //  Whether this AWG has mixer correction or not.
    bool mixer_correction = 5;
}


message ReadoutProperties {
    ChannelProperties channel_properties = 1;
    // Unused.
    double integration_start_dead_time = 4;
    // Unused.
    double integration_stop_dead_time = 5;
     // Dead time samples before integration 
    uint64 integration_start_dead_time_samples = 6;
    // Dead time samples after integration.
    uint64 integration_stop_dead_time_samples = 7;
}

Classes